Commit Graph

1176 Commits

Author SHA1 Message Date
6169c2e12e
fix(typesense): correctly convert date values for typesense
All checks were successful
continuous-integration/drone/push Build is passing
Resolves vikunja/api#1636
2023-11-09 12:29:52 +01:00
Frederick [Bot]
91146f139b [skip ci] Updated swagger docs 2023-11-08 23:29:34 +00:00
46683a2516
feat(migration): migration from other services now happens in the background
All checks were successful
continuous-integration/drone/push Build is passing
2023-11-09 00:15:11 +01:00
707bb6f89e
fix(migration): make sub project hierarchy work when importing from other services
All checks were successful
continuous-integration/drone/push Build is passing
2023-11-08 22:56:10 +01:00
b2866ca3da
feat(api): enable notifications for api token routes
All checks were successful
continuous-integration/drone/push Build is passing
2023-11-07 14:58:46 +01:00
4d3ba495a7
fix(tests): use string IDs in Todoist test
All checks were successful
continuous-integration/drone/push Build is passing
2023-11-07 13:28:06 +01:00
27984157c1
fix(migration): use string for todoist project note id
Some checks failed
continuous-integration/drone/push Build is failing
2023-11-03 12:06:23 +01:00
Frederick [Bot]
1c416ae73e [skip ci] Updated swagger docs 2023-10-24 14:38:04 +00:00
a375223872
fix: properly tag bucket-related operations
All checks were successful
continuous-integration/drone/push Build is passing
2023-10-24 16:13:15 +02:00
a1ea77f751
feat: accept hex values which start with a #
Some checks failed
continuous-integration/drone/push Build is failing
2023-10-24 16:12:22 +02:00
Frederick [Bot]
4625377752 [skip ci] Updated swagger docs 2023-10-22 17:21:16 +00:00
8a4856ad87 feat: convert all markdown content to html (#1625)
Some checks failed
continuous-integration/drone/push Build is failing
Migration for vikunja/frontend#2222

Reviewed-on: vikunja/api#1625
Co-authored-by: kolaente <k@knt.li>
Co-committed-by: kolaente <k@knt.li>
2023-10-22 13:48:22 +00:00
10c9913e12
feat(notifications): add endpoint to mark all notifications as read
Some checks failed
continuous-integration/drone/push Build is failing
2023-10-20 16:40:47 +02:00
66cf7ab50a
feat(reminders): include project in reminder notification
All checks were successful
continuous-integration/drone/push Build is passing
2023-10-20 13:56:14 +02:00
Frederick [Bot]
b2b4b5423f [skip ci] Updated swagger docs 2023-10-20 11:39:17 +00:00
55d345e236
feat(webhooks): validate events and target url
All checks were successful
continuous-integration/drone/pr Build is passing
2023-10-20 12:42:28 +02:00
61cd08fa13
fix(webhooks): add created by user object when creating a webhook 2023-10-18 22:18:45 +02:00
72366a5b27
feat(webhooks): add created by user object when returning all webhooks 2023-10-18 20:06:07 +02:00
b4e3d8ee47
fix(webhooks): lint 2023-10-17 20:40:09 +02:00
7a74e491da
fix(webhooks): lint 2023-10-17 20:35:14 +02:00
2c84cec044
docs(webhooks): add swagger docs for all webhook endpoints 2023-10-17 20:35:14 +02:00
fc0029eed7
fix(webhooks): don't send the proxy auth header to the webhook target 2023-10-17 20:35:14 +02:00
177f367a8c
feat(webhooks): expose whether webhooks are enabled 2023-10-17 20:35:14 +02:00
1b82f26d3e
chore(webhooks): simplify registering webhook events 2023-10-17 20:35:13 +02:00
ec4aa606e2
chore(webhooks): reuse webhook client 2023-10-17 20:35:13 +02:00
831aa4a014
feat(webhooks): add support for webhook proxy 2023-10-17 20:35:13 +02:00
b38360c9a5
feat(webhooks): add timeout config option 2023-10-17 20:35:13 +02:00
34a92b759e
feat(webhooks): add setting to enable webhooks 2023-10-17 20:35:13 +02:00
8cc775ac4c
fix(webhooks): routes should use the common schema used for other routes already 2023-10-17 20:35:13 +02:00
a0d8b28813
feat(webhooks): add hmac signing 2023-10-17 20:35:13 +02:00
a3a323cbf1
feat(webhooks): set user agent header to Vikunja 2023-10-17 20:35:13 +02:00
4253d14367
chore(webhooks): remove WebhookEvent interface 2023-10-17 20:35:13 +02:00
96ccf6b923
feat(webhooks): add route to get all available webhook events 2023-10-17 20:35:13 +02:00
eb1b9247ad
feat(webhooks): prevent link shares from managing webhooks 2023-10-17 20:35:13 +02:00
57de44694c
feat(webhooks): add index on project id 2023-10-17 20:35:13 +02:00
8d7a492936
feat(webhooks): add filter based on project id 2023-10-17 20:35:13 +02:00
7d1c5c50c5
feat(webhooks): add basic sending of webhooks 2023-10-17 20:35:12 +02:00
7f3c300240
feat(webhooks): add routes 2023-10-17 20:35:12 +02:00
c5de41f183
feat(webhooks): add event listener to send webhook payload 2023-10-17 20:35:12 +02:00
e5b8d8bd2d
feat(webhooks): register task and project events as webhook 2023-10-17 20:35:12 +02:00
ad7d485eb5
feat(webhooks): add basic crud actions for webhooks 2023-10-17 20:35:12 +02:00
9a29b29a04
fix(user): allow openid users to request their deletion
Some checks failed
continuous-integration/drone/push Build is failing
Resolves https://community.vikunja.io/t/delete-user-not-possible-when-using-oidc/1689/4
2023-10-11 19:06:59 +02:00
58497f29e6
fix(kanban): filter for tasks in buckets by assignee should not modify the filter directly
Some checks failed
continuous-integration/drone/push Build is failing
Resolves https://github.com/go-vikunja/api/issues/84
2023-10-11 18:43:28 +02:00
Frederick [Bot]
775b98b729 [skip ci] Updated swagger docs 2023-10-11 08:50:34 +00:00
KaibutsuX
0769d59054
feat(cli): added --confirm/-c argument when deleting users to bypass prompt (#86)
Some checks failed
continuous-integration/drone/push Build is failing
Reviewed-On: https://github.com/go-vikunja/api/pull/86
2023-10-10 21:24:25 +02:00
56625b0b90
fix: lint
Some checks failed
continuous-integration/drone/push Build is failing
2023-10-10 20:35:43 +02:00
KaibutsuX
137f3bc151
chore: assume username instead of id when parsing fails for user commands (#87)
Some checks failed
continuous-integration/drone/push Build is failing
Reviewed-On: https://github.com/go-vikunja/api/pull/87
2023-10-10 18:06:10 +02:00
f5ac3abb2a
chore(test): add task deleted assertion to project deletion test
All checks were successful
continuous-integration/drone/push Build is passing
2023-10-03 15:52:38 +02:00
Peter H0ffmann
ad04d302af chore: reverse the coupling of module log and config (#1606)
All checks were successful
continuous-integration/drone/push Build is passing
This way the config module can already use the log module with the same result (default logging to StdOut with Level INFO, same output as before) but ENV variables can already change the logging of config file related log output). It is now possible to dump as a cronjob without having to filter the default log about the used config file.

Also:
- all logging modules are now configurable when initializing which makes testing easier
- viper dependency removed from logging
- log correct settings when configured error level is invalid
- deprecation of value "false" for log.standard and log.events (already not mentioned in https://vikunja.io/docs/config-options/)

Co-authored-by: Berengar W. Lehr <Berengar.Lehr@uni-jena.de>
Reviewed-on: vikunja/api#1606
Reviewed-by: konrad <k@knt.li>
Co-authored-by: Peter H0ffmann <hoffmannp@noreply.kolaente.de>
Co-committed-by: Peter H0ffmann <hoffmannp@noreply.kolaente.de>
2023-10-03 09:28:28 +00:00
c217233e08
fix(typesense): getting all data from typesense
All checks were successful
continuous-integration/drone/push Build is passing
2023-09-29 21:26:12 +02:00
98102e59f2
feat(typesense): add new tasks to typesense directly when they are created
Some checks failed
continuous-integration/drone/push Build is failing
2023-09-29 21:15:28 +02:00
8f4ee3a089
fix(typesense): make sure searching works when no task has a comment at index time
All checks were successful
continuous-integration/drone/push Build is passing
2023-09-29 16:35:59 +02:00
feacbbff74 fix(caldav): do not update dates of tasks when repositioning them (#1605)
Some checks failed
continuous-integration/drone/push Build is failing
When a task is updated, the position of the tasks of the whole project/bucket are updated. This leads to column "updated" of model Task to be updated quite often. However, that column is used for the ETag field of CALDAV.
Thus, changing a task marks all the other tasks as updated, which prevents clients from synchronizing their edited tasks.

Co-authored-by: Erwan Martin <erwan@pepper.com>
Reviewed-on: vikunja/api#1605
Co-authored-by: Erwan Martin <public@fzwte.net>
Co-committed-by: Erwan Martin <public@fzwte.net>
2023-09-27 16:17:52 +00:00
f065dcf4ad
fix(typesense): add typesense sync to initial structs
All checks were successful
continuous-integration/drone/push Build is passing
2023-09-15 12:53:29 +02:00
addcbdd8ca
fix(test): don't check for error
All checks were successful
continuous-integration/drone/push Build is passing
2023-09-13 12:52:42 +02:00
054f21821c
fix(typesense): don't try to index tasks if there are none
Some checks failed
continuous-integration/drone/push Build is failing
2023-09-13 12:19:09 +02:00
38a3a5c6e8
fix(typesense): explicitely create typesense sync table
Some checks failed
continuous-integration/drone/push Build is failing
2023-09-13 12:05:37 +02:00
1ee243f2bd
fix(project background): add more checks for whether a background file exists when duplicating or deleting a project
Some checks failed
continuous-integration/drone/push Build is failing
Related discussion: https://community.vikunja.io/t/500-internal-server-error-when-selecting-unsplash-background-image/778/18
2023-09-13 11:20:59 +02:00
c5c74e9537
chore(caldav): improve trimming .ics file ending
Some checks failed
continuous-integration/drone/push Build is failing
2023-09-07 15:52:37 +02:00
e34f503674
fix: lint
Some checks failed
continuous-integration/drone/push Build is failing
2023-09-07 11:31:35 +02:00
bfcefa0217
fix(caldav): check for related tasks synced back from a caldav client
Some checks failed
continuous-integration/drone/push Build is failing
Related discussion https://community.vikunja.io/t/tasks-org-subtask-syncing-issue/737/9
2023-09-07 11:29:44 +02:00
c6bdb5752a
fix(import): create related tasks without an id
Some checks failed
continuous-integration/drone/push Build is failing
2023-09-07 11:16:04 +02:00
68d4dcd7e6
fix(projects): don't limit results to top-level projects when searching
Some checks failed
continuous-integration/drone/push Build is failing
Resolves https://github.com/go-vikunja/api/issues/82
2023-09-07 10:56:59 +02:00
b2f3a23cb3
fix(import): correctly set child project relations
Some checks failed
continuous-integration/drone/push Build is failing
2023-09-07 10:45:15 +02:00
93795d2f29
fix(import): resolve task relations by old task ids 2023-09-07 10:24:15 +02:00
adf4b95ed3
fix(import): ignore duplicate project identifier 2023-09-07 10:12:15 +02:00
ce3a06f03b
fix(import): don't fail when importing from dev exports 2023-09-07 10:11:59 +02:00
2c0c3ea24e
fix(build): don't require swagger to build
Some checks failed
continuous-integration/drone/push Build is failing
2023-09-06 21:08:09 +02:00
107b0b791f
fix(swagger): add generated swagger docs to repo
Some checks failed
continuous-integration/drone/push Build is failing
2023-09-06 18:01:45 +02:00
424bf7647b
fix: lint
Some checks failed
continuous-integration/drone/push Build is failing
2023-09-06 14:56:25 +02:00
06bc92556e
fix(docs): add empty swagger file so that the package exists
Some checks failed
continuous-integration/drone/push Build is failing
2023-09-06 13:13:51 +02:00
b8e73f4fa5
fix: lint
Some checks failed
continuous-integration/drone/push Build is failing
2023-09-06 10:52:30 +02:00
bfb01898c2
fix(api tokens)!: make sure task create routes are available to use with the api
Some checks failed
continuous-integration/drone/push Build is failing
BREAKING CHANGE: The api route to create a new task is now /projects/:project/tasks instead of /projects/:project
2023-09-06 10:33:52 +02:00
d6db498853
fix: lint
Some checks failed
continuous-integration/drone/push Build is failing
2023-09-04 14:25:46 +02:00
80b40bb2c0
feat(notify): don't notify disabled users
Some checks failed
continuous-integration/drone/push Build is failing
2023-09-04 14:23:56 +02:00
c28d1af877
fix(cmd): do not initialize asnyc operations when running certain cli commands
Some checks failed
continuous-integration/drone/push Build is failing
2023-09-04 11:22:50 +02:00
f38535b2f4
fix(typesense): upsert all documents at once 2023-09-04 11:19:55 +02:00
093b5b99a0
fix(typesense): pass the correct user when fetching task comments
Some checks failed
continuous-integration/drone/push Build is failing
2023-09-04 10:42:10 +02:00
490d374cfd
fix(typesense): add more error logging
All checks were successful
continuous-integration/drone/push Build is passing
2023-09-04 10:20:51 +02:00
21a1f02ea3
fix(typesense): add more error logging
Some checks failed
continuous-integration/drone/push Build is failing
2023-09-03 22:54:50 +02:00
1a492722dd
fix(typesense): upsert one document at a time
All checks were successful
continuous-integration/drone/push Build is passing
2023-09-03 22:51:43 +02:00
8a15c91a4f
chore(tasks): better error messages when indexing tasks into Typesense
All checks were successful
continuous-integration/drone/push Build is passing
2023-09-03 22:22:27 +02:00
0e32d478d1
fix(projects): save done and default bucket when updating project
All checks were successful
continuous-integration/drone/pr Build is passing
2023-09-03 15:50:47 +02:00
60bd5c8a79
feat: make default bucket configurable
All checks were successful
continuous-integration/drone/pr Build is passing
2023-09-03 15:17:17 +02:00
bbbb45d224
feat: move done bucket setting to project 2023-09-03 15:01:35 +02:00
97b5cd306f
feat: add demo mode flag
All checks were successful
continuous-integration/drone/push Build is passing
Related to vikunja/frontend#2453
2023-09-01 17:47:43 +02:00
b3a847e581 fix(kanban): create missing kanban buckets (#1601)
Some checks failed
continuous-integration/drone/push Build is failing
Co-authored-by: edel <edel.altares@pm.me>
Reviewed-on: vikunja/api#1601
Co-authored-by: kolaente <k@knt.li>
Co-committed-by: kolaente <k@knt.li>
2023-09-01 15:41:31 +00:00
edel
11810c9b3e
fix: validate usernames on registration
Some checks failed
continuous-integration/drone/push Build is failing
2023-09-01 17:40:31 +02:00
60cd1250a0 feat: api tokens
Some checks failed
continuous-integration/drone/push Build is failing
Reviewed-on: vikunja/api#1600
2023-09-01 14:34:39 +00:00
edbfc06a41
fix(kanban): don't prevent setting a different bucket as done bucket
All checks were successful
continuous-integration/drone/push Build is passing
Resolves vikunja/frontend#3373
2023-09-01 16:18:59 +02:00
769b4f8d66
fix(task): remove task relation in the other direction as well
All checks were successful
continuous-integration/drone/push Build is passing
Resolves https://community.vikunja.io/t/removing-parent-relationship-doesnt-remove-the-subtask-relationship/1492/3
2023-09-01 16:12:20 +02:00
eac4e455fd
fix(api tokens): lint
All checks were successful
continuous-integration/drone/pr Build is passing
2023-09-01 15:56:35 +02:00
a4d946b4a9
fix(api tokens): test 2023-09-01 15:54:39 +02:00
974e1878f8
chore(api tokens): add swagger docs about api token auth 2023-09-01 15:53:27 +02:00
14c5a8ca5b
fix(api tokens): make sure read one routes show up in routes endpoint
Some checks failed
continuous-integration/drone/pr Build is failing
2023-09-01 12:58:29 +02:00
e3c5a93f4f
chore(api tokens): remove updated date from tokens as it can't be updated anyway 2023-09-01 11:16:36 +02:00
8f3d18a809
feat(api tokens): better error message for invalid tokens 2023-09-01 10:27:56 +02:00
e295d75e6e
feat(api tokens): move token validation middleware to new function 2023-09-01 10:19:55 +02:00
d9bfcdab8e
feat(api tokens): add tests 2023-09-01 10:19:31 +02:00
e3dac16398
feat(api tokens): check permissions when saving 2023-09-01 08:52:57 +02:00
e4c71123ef
fix: lint 2023-09-01 08:39:25 +02:00
5c6c6cd9f0
feat(api tokens): check for scopes 2023-09-01 08:36:15 +02:00
677bd5cfc9
feat(api tokens): check for expiry date 2023-09-01 08:36:15 +02:00
fb2a1c59db
feat(api tokens): check if a provided token matched a hashed on in the database 2023-09-01 08:36:15 +02:00
c88cbaa973
feat(api tokens): properly hash tokens 2023-09-01 08:36:11 +02:00
e6b25bd57b
feat(api tokens): add crud routes to manage api tokens 2023-09-01 08:35:54 +02:00
3faf48706a
feat(api tokens): add api token struct and migration 2023-09-01 08:35:54 +02:00
1ca93a678e
feat: endpoint to get all token routes 2023-09-01 08:35:54 +02:00
e518fb1191
chore: remove year from copyright headers
Some checks failed
continuous-integration/drone/push Build is failing
Resolves vikunja/api#1483
2023-09-01 08:32:28 +02:00
5811d2a13b
fix: order by clause in task comments
All checks were successful
continuous-integration/drone/push Build is passing
2023-08-31 15:44:59 +02:00
5392ca788c
fix(comments): make sure comment sort order is stable
Some checks reported errors
continuous-integration/drone/push Build was killed
Resolves https://community.vikunja.io/t/comment-order-is-not-by-time/1147/3?u=kolaente
2023-08-29 14:09:53 +02:00
02184663e5
fix(filter): assignee search by partial username test
All checks were successful
continuous-integration/drone/pr Build is passing
2023-08-29 11:40:53 +02:00
29317b980e
fix: lint
Some checks failed
continuous-integration/drone/pr Build is failing
2023-08-29 11:32:45 +02:00
4f2796ac58
fix(filters): make "in" filter comparator work with Typesense
Some checks failed
continuous-integration/drone/pr Build is failing
2023-08-29 11:14:36 +02:00
d0e3062bee
feat(tasks): allow filtering for reminders, assignees and labels with Typesense
Some checks failed
continuous-integration/drone/pr Build is failing
2023-08-29 10:54:18 +02:00
748651447a
feat(tasks): find tasks by their identifier when searching with Typesense
Some checks failed
continuous-integration/drone/pr Build is failing
2023-08-29 09:31:36 +02:00
2ca193e63b
feat(tasks): make sorting and filtering work with Typesense 2023-08-28 19:10:18 +02:00
09cfe41e4f
feat(tasks): remove deleted tasks from Typesense 2023-08-28 13:34:47 +02:00
1a82d6da44
feat(tasks): add periodic resync of updated tasks to Typesense 2023-08-28 13:26:40 +02:00
010b4ce783
feat(tasks): add searching via typesense 2023-08-28 12:14:50 +02:00
dee46d527a
feat(tasks): add typesense indexing 2023-08-28 11:11:30 +02:00
693a77ae51
fix(user): don't prevent deleting a user if their default project was shared
All checks were successful
continuous-integration/drone/push Build is passing
Resolves vikunja/api#1595
2023-08-25 15:14:25 +02:00
49d8713388
fix: typo
All checks were successful
continuous-integration/drone/push Build is passing
2023-08-24 11:16:07 +02:00
1b9c4204a8
fix(reminders): make sure reminders are only sent once per user
Some checks failed
continuous-integration/drone/push Build is failing
Previously, when a user was creator and assigned to a task, they would get two reminder notifications for the same task. This was caused by Vikunja first fetching all creators and then all assignees and not removing duplicates from that list.

Related: https://community.vikunja.io/t/duplicate-email-reminders/1505/3
2023-08-24 10:47:17 +02:00
5e8084c194
fix(project): duplicating a project should not create two backlog buckets
All checks were successful
continuous-integration/drone/push Build is passing
Resolves https://community.vikunja.io/t/when-duplicating-a-project-the-resulting-project-has-an-extra-bucket/1524
2023-08-23 16:19:42 +02:00
acb03c430e
fix(user): allow deleting a user if they have a default project
Some checks failed
continuous-integration/drone/push Build is failing
Resolves https://github.com/go-vikunja/api/issues/78
2023-08-23 16:10:51 +02:00
40037f25f2
fix(user): don't crash when attempting to change a user's password
All checks were successful
continuous-integration/drone/push Build is passing
Resolves vikunja/api#1587
Resolves https://github.com/go-vikunja/api/issues/79
2023-08-23 15:56:18 +02:00
86f25f253b
fix(project): duplicate project into parent project
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-07 12:56:15 +02:00
b5194624e0
fix: don't try to load subscriptions for nonexistent projects
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-03 18:18:13 +02:00
32689531ec
chore(docs): move login and register routes to auth category in api docs
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-03 18:10:01 +02:00
117c569721
fix(projects): return subprojects which were shared from another user
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-03 11:45:29 +02:00
895263f054
fix(filters): sorting tasks from filters
Some checks failed
continuous-integration/drone/push Build is failing
Resolves https://community.vikunja.io/t/filter-table-view-not-sorting/1416
2023-06-21 14:59:40 +02:00
1dc9c50d64 fix(deps): update module github.com/imdario/mergo to v1 (#1559)
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: vikunja/api#1559
Co-authored-by: renovate <renovatebot@kolaente.de>
Co-committed-by: renovate <renovatebot@kolaente.de>
2023-06-20 10:02:21 +00:00
04e2c51fac
feat: allow saving frontend settings via api
All checks were successful
continuous-integration/drone/push Build is passing
2023-06-11 17:49:14 +02:00
cernst
4a4ba041e0 chore: remove reminderDates after frontend is migrated to reminders (#1448)
All checks were successful
continuous-integration/drone/push Build is passing
Co-authored-by: ce72 <christoph.ernst72@googlemail.com>
Reviewed-on: vikunja/api#1448
Reviewed-by: konrad <k@knt.li>
Co-authored-by: cernst <ce72@noreply.kolaente.de>
Co-committed-by: cernst <ce72@noreply.kolaente.de>
2023-06-10 17:21:36 +00:00
d83e3a0a03
chore: remove cache options
All checks were successful
continuous-integration/drone/push Build is passing
Cache was not working correctly, added more complexity and actually made response times slower. Because of this, I'm removing all cache options until we figure out a better solution.

Resolves vikunja/api#1496
Resolves vikunja/api#907
2023-06-08 17:05:36 +02:00
72e0e22152
feat(kanban): return the total task count per bucket
All checks were successful
continuous-integration/drone/push Build is passing
2023-06-08 16:56:05 +02:00
ef94e0cf86
feat(projects): don't allow deleting or archiving the default project
All checks were successful
continuous-integration/drone/push Build is passing
2023-06-07 21:29:46 +02:00
ad0690369f
fix: lint
All checks were successful
continuous-integration/drone/push Build is passing
2023-06-07 21:00:12 +02:00
ebfb3f9aaa
fix(filter): don't try to get the real subscription for a saved filter project
Some checks failed
continuous-integration/drone/push Build is failing
2023-06-07 20:41:59 +02:00
4ed2d305f0
fix(task): don't build partial task identifier
Some checks failed
continuous-integration/drone/push Build is failing
2023-06-07 20:33:18 +02:00
7b7a914560
fix(test): use correct filter id
Some checks failed
continuous-integration/drone/push Build is failing
2023-06-07 20:30:28 +02:00
43ef5f98d8
fix(projects): don't fail to fetch a task if there's a broken subscription record associated to it 2023-06-07 20:30:14 +02:00
e66344c21e
fix(task): don't try to return a project identifier if there is no project 2023-06-07 20:29:35 +02:00
7755b9cd49
fix(projects): delete project in the correct order 2023-06-07 20:28:36 +02:00
67825425a4
fix(filters): return all filters with all projects, not grouped under a pseudo project 2023-06-07 18:55:36 +02:00
69bd023b62
fix(tasks): return a correct task identifier if the list does not have a good one set
Some checks failed
continuous-integration/drone/push Build is failing
2023-06-07 18:17:08 +02:00
1a840c8b87
fix(tasks): make sure task deleted notification actually has information about the deleted task
Some checks failed
continuous-integration/drone/push Build is failing
2023-06-07 18:14:20 +02:00
e3842b6df7
fix(projects): reset pagination limit when fetching subprojects
All checks were successful
continuous-integration/drone/push Build is passing
2023-06-06 17:24:27 +02:00
e17b63b920
fix: lint
All checks were successful
continuous-integration/drone/push Build is passing
2023-06-05 19:14:26 +02:00
d758bdc5e2
fix(projects): don't try to share for nonexisting namespace 2023-06-05 18:12:12 +02:00
d68338b649
fix(docs): clarify error codes in swagger docs
All checks were successful
continuous-integration/drone/push Build is passing
Resolves vikunja/api#1518
2023-05-30 21:37:40 +02:00
8c3ef34f75 fix(deps): update github.com/vectordotdev/go-datemath digest to 640a500 (#1532)
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: vikunja/api#1532
Co-authored-by: renovate <renovatebot@kolaente.de>
Co-committed-by: renovate <renovatebot@kolaente.de>
2023-05-30 18:11:31 +00:00
b56e45d743
fix: use rewrite when hosting frontend files via the api
All checks were successful
continuous-integration/drone/push Build is passing
Resolves vikunja/api#1531
2023-05-30 18:56:37 +02:00
a51bbd1159
fix: don't get favorite task projects filter multiple times 2023-05-24 15:52:33 +02:00
4b00f224d9
fix: reminder fixture 2023-05-24 15:52:33 +02:00
db3c7aa8b0
fix: make sure projects are correctly sorted 2023-05-24 15:52:33 +02:00
353279cbff
fix: fetch all tasks for all projects 2023-05-24 15:52:33 +02:00
3b0935d033
docs: remove all traces of namespaces 2023-05-24 15:52:33 +02:00
9011894a29
feat: check for cycles when creating or updating a project's parent 2023-05-24 15:52:33 +02:00
edcb806421
feat: remove ChildProjects project property 2023-05-24 15:52:33 +02:00
f2d943f5c4
fix: add missing error code 2023-05-24 15:52:33 +02:00
35964ce4a6
fix(projects): recalculate project's position after dragging when position would be 0 2023-05-24 15:52:33 +02:00
a8b76772ff
fix(migration): revert wrongly changed url 2023-05-24 15:52:33 +02:00
53b2ade5bb
feat(projects): return a favorites pseudo project when the user has favorite tasks 2023-05-24 15:52:32 +02:00
b482664d82
fix(projects): don't allow making a project child of itself 2023-05-24 15:52:32 +02:00
aafcb0bac4
fix(projects): don't return child projects twice 2023-05-24 15:52:32 +02:00
0110f93313
feat: make the new inbox project the default 2023-05-24 15:52:32 +02:00
f1cbe50605
fix: rename project receiver variable 2023-05-24 15:52:32 +02:00
746ac1098f
fix(test): adjust fixture bucket and list ids 2023-05-24 15:52:32 +02:00
d7396fac57
fix(test): adjust fixture id 2023-05-24 15:52:32 +02:00
3b00a5c200
fix(test): fixtures 2023-05-24 15:52:32 +02:00
a21bff3ffb
fix: compile errors 2023-05-24 15:52:32 +02:00
ebc3dd2b3e
fix: lint errors 2023-05-24 15:51:57 +02:00
017f771783
chore(test): show table content when db assertion failed 2023-05-24 15:51:56 +02:00
abe5f72493
fix(migration): enable insert from structure work recursively 2023-05-24 15:51:56 +02:00
4b55e2ce03
fix(migration): make file migration work with new structure 2023-05-24 15:51:56 +02:00
2f81791735
chore(export): remove unused events 2023-05-24 15:51:56 +02:00
8235c63f60
fix(tests): task collection fixtures 2023-05-24 15:51:56 +02:00
03b7fa6dd3
fix(tests): subscription test fixtures 2023-05-24 15:51:56 +02:00
5e6bff20f8
fix(tests): task permissions from parents 2023-05-24 15:51:56 +02:00
8e56fe558a
fix(tests): adjust parent projects 2023-05-24 15:51:56 +02:00
154ac61d7c
fix(projects): properly check if a user or link share is allowed to create a new project 2023-05-24 15:51:56 +02:00
03eb4ecd07
fix(tests): permission tests for parent projects 2023-05-24 15:51:56 +02:00
d4e644e91e
chore(project): fmt 2023-05-24 15:51:56 +02:00
48beb5f382
fix(project): don't allow un-archiving a project when its parent project is archived 2023-05-24 15:51:56 +02:00
0cd633981a
fix(project): recursively get all users from all parent projects 2023-05-24 15:51:56 +02:00
19f69419f7
fix(tasks): task relation test 2023-05-24 15:51:55 +02:00
6bb42ced9d
fix(tasks): read all tests 2023-05-24 15:51:55 +02:00
3b837a472b
fix(migration): remove wunderlist leftovers 2023-05-24 15:51:55 +02:00
537ba60f2d
fix(tasks): get all tasks from parent projects 2023-05-24 15:51:55 +02:00
ceaa9c0e03
feat(subscriptions): make sure all subscriptions are inherited properly 2023-05-24 15:51:55 +02:00
afe756e4c1
fix(tests): make the tests compile again 2023-05-24 15:51:55 +02:00
f4fc431b6f
fix(projects): permission check now works 2023-05-24 15:51:55 +02:00
438f5c8e12
fix(projects): don't check if new projects are archived 2023-05-24 15:51:55 +02:00
3e8d1b3667
chore(projects) use a slice again 2023-05-24 15:51:55 +02:00
18b9ff8512
feat(projects): check parent project when checking archived status 2023-05-24 15:51:55 +02:00
5e2567645a
feat(projects): check all parent projects for permissions 2023-05-24 15:51:55 +02:00
d799915e78
feat(projects): get all projects recursively 2023-05-24 15:51:55 +02:00
4c698dc7c7
fix: typo 2023-05-24 15:51:55 +02:00
e93a5ff11f
fix: rename after rebase 2023-05-24 15:51:54 +02:00
d79c393e5b
fix: make it compile again 2023-05-24 15:51:54 +02:00
5d02d93d31
fix(tasks): don't check for namespaces in filters 2023-05-24 15:51:54 +02:00
7c448c88a8
fix(project): don't check for namespaces in overdue reminders 2023-05-24 15:51:54 +02:00
906574adc9
fix(project): remove comments, clarifications, notifications about namespaces 2023-05-24 15:51:54 +02:00
d794a2c5ca
fix(project): remove namespaces checks 2023-05-24 15:51:54 +02:00
8cff813e9f
fix(project): remove namespaces from creating projects 2023-05-24 15:51:54 +02:00
2dcd6451a4
fix(project): remove namespaces from getting projects 2023-05-24 15:51:54 +02:00
ac0d84a7d8
feat(migration): ignore namespace changes 2023-05-24 15:51:54 +02:00
386e218b95
feat(migration): use new structure for migration 2023-05-24 15:51:54 +02:00
fef253312c
feat(projects): cleanup namespace leftovers 2023-05-24 15:51:54 +02:00
16de7cd591
feat(projects): remove namespaces 2023-05-24 15:51:54 +02:00
0795828a9f
feat(projects): add parent project, migrate namespaces 2023-05-24 15:51:54 +02:00
47c2da7f18
feat: rename lists to projects 2023-05-24 15:51:53 +02:00
fc73c84bf2
feat: rename lists to projects 2023-05-24 15:51:53 +02:00
87ed68e4c8
fix(migration): remove wunderlist leftovers 2023-05-24 15:51:53 +02:00
50c922b7d1
fix: lint 2023-05-24 15:51:53 +02:00
96a0f5e169
feat: rename lists to projects 2023-05-24 15:51:53 +02:00
359d0512cc
fix: upgrade jwt v5
All checks were successful
continuous-integration/drone/push Build is passing
2023-05-23 16:37:16 +02:00
7d9e8bd150
fix(cli): rename user project command
Some checks failed
continuous-integration/drone/push Build is failing
2023-05-10 22:37:37 +02:00
7d8c42ab98
fix(migration): remove unused is_deleted flag from Todoist api response
Some checks failed
continuous-integration/drone/push Build is failing
Related discussion: https://community.vikunja.io/t/importing-tasks-from-todoist/322
2023-05-08 15:32:27 +02:00
7ad256f6cd
fix: correctly pass unix socket to xorm
All checks were successful
continuous-integration/drone/push Build is passing
2023-04-17 19:39:38 +02:00
0a6bbc2efd fix: using mysql via a socket
All checks were successful
continuous-integration/drone/push Build is passing
2023-04-17 10:48:59 +00:00
aa43127e52
fix: provide a proper error message when viewing a link share with an invalid token
Some checks failed
continuous-integration/drone/push Build is failing
2023-04-17 11:08:38 +02:00
10f71c29b2
fix(saved filters): don't let query parameters override saved sorting parameters
All checks were successful
continuous-integration/drone/push Build is passing
Resolves vikunja/frontend#3380
2023-04-14 11:01:31 +02:00
2dad404217
fix: typo in email template
All checks were successful
continuous-integration/drone/push Build is passing
2023-04-14 10:29:54 +02:00
eb3b4e9ed9 fix(CalDAV): naming
All checks were successful
continuous-integration/drone/push Build is passing
2023-04-11 11:21:40 +00:00
5856f21f31
chore: fix comment url
Some checks failed
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is failing
2023-04-11 11:40:06 +02:00
9bf535d06f
fix: remove old saved openid provider settings from cache when starting Vikunja
All checks were successful
continuous-integration/drone/push Build is passing
Resolves vikunja/api#1487
2023-04-10 13:32:20 +02:00
47e42238ef
fix: make sure Vikunja is buildable without swagger docs present
Some checks failed
continuous-integration/drone/push Build is failing
2023-04-06 12:11:31 +02:00
Dominik Pschenitschni
cca430810d fix(image): json type of struct property (#1469)
Some checks failed
continuous-integration/drone/push Build is failing
Co-authored-by: Dominik Pschenitschni <mail@celement.de>
Co-authored-by: kolaente <k@knt.li>
Reviewed-on: vikunja/api#1469
Reviewed-by: konrad <k@knt.li>
Co-authored-by: Dominik Pschenitschni <dpschen@noreply.kolaente.de>
Co-committed-by: Dominik Pschenitschni <dpschen@noreply.kolaente.de>
2023-04-06 09:53:09 +00:00
f76bb2b4a9 fix: align task ID param
All checks were successful
continuous-integration/drone/push Build is passing
2023-04-05 12:14:10 +00:00
7ada82ea92 fix: align namespaceID param 2023-04-05 12:14:10 +00:00
cd90db3117 chore: fix spelling 2023-04-05 12:14:10 +00:00
b6d5605ef6 fix: align "ID" param for Delete and Update method of Task model 2023-04-05 12:14:10 +00:00
ac377a7a5d fix: align "otherTaskID" param for Delete method of TaskRelation model 2023-04-05 12:14:10 +00:00
c45ad112a2
fix(migration): don't try to fetch task details of tasks whose projects are deleted
All checks were successful
continuous-integration/drone/push Build is passing
2023-04-04 11:24:59 +02:00
84933c08cc
feat(users): don't hide user email if it was the search request
All checks were successful
continuous-integration/drone/push Build is passing
2023-04-03 19:41:20 +02:00
dff4e01327
fix: ILIKE helper
All checks were successful
continuous-integration/drone/push Build is passing
2023-04-03 19:19:51 +02:00
a7231e197e
feat: allow to find users with access to a project more freely
Some checks failed
continuous-integration/drone/push Build is failing
Related to vikunja/frontend#2196
2023-04-03 18:49:04 +02:00
eb93ccb827 chore(docs): add info about /buckets sorting
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
2023-04-03 05:20:42 +00:00
8edbca39cf fix: accept for migrations
Some checks failed
continuous-integration/drone/push Build is failing
2023-04-03 05:20:18 +00:00
441722372a feat: add token example
Some checks failed
continuous-integration/drone/push Build is failing
2023-04-03 05:20:01 +00:00
4f7d69a108 fix: docs auth openID method
Some checks failed
continuous-integration/drone/push Build is failing
2023-04-03 05:19:32 +00:00
fc2cc4a155 fix: spelling
Some checks failed
continuous-integration/drone/push Build is failing
2023-04-03 05:19:08 +00:00
Dominik Pschenitschni
cf7423fc1a fix(api): license (#1457)
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: vikunja/api#1457
Reviewed-by: konrad <k@knt.li>
Co-authored-by: Dominik Pschenitschni <dpschen@noreply.kolaente.de>
Co-committed-by: Dominik Pschenitschni <dpschen@noreply.kolaente.de>
2023-04-02 19:34:06 +00:00
efa24cec44
feat: generate swagger docs at build time
Some checks failed
continuous-integration/drone/push Build is failing
2023-04-02 16:52:54 +02:00
cernst
1cffef6908 fix(caldav): Incoming tasks do not get correct time zone (#1455)
All checks were successful
continuous-integration/drone/push Build is passing
Dates from tasks.org may be formatted like DUE;TZID=Europe/Berlin:20230402T150000
After this fix the parameter TZID is no longer ignored and the Vikunja task gets a DueDate of 13:00 UTC, which corresponds to 15:00 in Europe/Berlin. Before this fix, the time was parsed to 15:00 UTC.

Resolves vikunja/api#1453

Co-authored-by: ce72 <christoph.ernst72@googlemail.com>
Reviewed-on: vikunja/api#1455
Reviewed-by: konrad <k@knt.li>
Co-authored-by: cernst <ce72@noreply.kolaente.de>
Co-committed-by: cernst <ce72@noreply.kolaente.de>
2023-04-02 12:31:31 +00:00
cernst
f45648a6f7 feat(caldav): Sync Reminders / VALARM (#1415)
All checks were successful
continuous-integration/drone/push Build is passing
Co-authored-by: ce72 <christoph.ernst72@googlemail.com>
Co-authored-by: kolaente <k@knt.li>
Reviewed-on: vikunja/api#1415
Reviewed-by: konrad <k@knt.li>
Co-authored-by: cernst <ce72@noreply.kolaente.de>
Co-committed-by: cernst <ce72@noreply.kolaente.de>
2023-04-01 11:09:11 +00:00
cernst
3f5252dc24 feat: Add relative Reminders (#1427)
All checks were successful
continuous-integration/drone/push Build is passing
Partially resolves #1416

Co-authored-by: ce72 <christoph.ernst72@googlemail.com>
Reviewed-on: vikunja/api#1427
Reviewed-by: konrad <k@knt.li>
Co-authored-by: cernst <ce72@noreply.kolaente.de>
Co-committed-by: cernst <ce72@noreply.kolaente.de>
2023-03-27 20:07:06 +00:00
823c817b1f
fix(import): don't try to load a nonexistant attachment file
All checks were successful
continuous-integration/drone/push Build is passing
2023-03-26 15:42:25 +02:00
f4e12dab27 fix: add missing license header
All checks were successful
continuous-integration/drone/push Build is passing
2023-03-25 12:28:56 +00:00
f0dcce702f fix: lint 2023-03-25 12:28:56 +00:00
9590b82c11 feat: add logging options to mailer settings 2023-03-25 12:28:56 +00:00
cernst
5961e56d16 fix(caldav): Do not create label if it exists by title (#1444)
All checks were successful
continuous-integration/drone/push Build is passing
Resolves vikunja/api#1435

Co-authored-by: ce72 <christoph.ernst72@googlemail.com>
Reviewed-on: vikunja/api#1444
Co-authored-by: cernst <ce72@noreply.kolaente.de>
Co-committed-by: cernst <ce72@noreply.kolaente.de>
2023-03-24 18:34:48 +00:00
4d5ad8f50e
chore(deps): update golangci-lint to 1.52.1
Some checks failed
continuous-integration/drone/push Build is failing
2023-03-24 19:17:45 +01:00
6aadaaaffc chore: rename files (fix typo)
Some checks failed
continuous-integration/drone/push Build is failing
2023-03-21 19:02:05 +00:00
8916de0366
fix: update redoc
Some checks failed
continuous-integration/drone/push Build is failing
2023-03-16 19:08:18 +01:00
7a9611c2da
chore: cleanup
All checks were successful
continuous-integration/drone/pr Build is passing
2023-03-13 14:28:36 +01:00
7cab3a77a9
fix(migration): rename TickTick migration 2023-03-13 14:28:25 +01:00
77ad90d53e
fix(migration): remove wunderlist leftovers 2023-03-13 14:28:20 +01:00
55410ea73d
chore: generate swagger docs 2023-03-13 14:28:19 +01:00
e4f841cf6a
fix(tasks): sql for overdue reminders 2023-03-13 14:28:19 +01:00
2940eae1aa
fix(migration): use correct struct 2023-03-13 14:28:19 +01:00
0a3fdc0344
fix: users_lists name in migration 2023-03-13 14:28:19 +01:00
06f1d2e912
fix: test fixtures 2023-03-13 14:28:07 +01:00
61a3380a94
fix: trello import tests 2023-03-13 14:28:07 +01:00
fb818ea186
fix: test import 2023-03-13 14:28:06 +01:00
7e53a21407
fix: rename incorrectly named ProjectUsers method 2023-03-13 14:28:06 +01:00
8f4abd2fe8
feat: rename all list files 2023-03-13 14:28:06 +01:00
2fba7bdf02
feat: migrate lists to projects in db identifiers 2023-03-13 14:28:06 +01:00
349e6a5905
feat: rename lists to projects 2023-03-13 14:28:06 +01:00
c0c523f0a8
fix: don't send bad request errors to sentry
All checks were successful
continuous-integration/drone/push Build is passing
2023-03-13 10:52:52 +01:00
672fb35bcb
fix: check if usernames contain spaces when creating a new user
All checks were successful
continuous-integration/drone/push Build is passing
2023-03-12 15:02:34 +01:00
9f14466dfa
fix: lint
All checks were successful
continuous-integration/drone/push Build is passing
2023-03-05 22:24:29 +01:00
077baba2ea
fix: lint
All checks were successful
continuous-integration/drone/push Build is passing
2023-03-05 14:34:34 +01:00
066c26f83e
fix(caldav): make sure only labels where the user has permission to use them are used
Some checks failed
continuous-integration/drone/push Build is failing
Follow-up for a62b57ac62
2023-03-05 14:03:09 +01:00
cernst
a62b57ac62 feat(caldav): import caldav categories as Labels (#1413)
All checks were successful
continuous-integration/drone/push Build is passing
Resolves #1274

Co-authored-by: ce72 <christoph.ernst72@googlemail.com>
Reviewed-on: vikunja/api#1413
Reviewed-by: konrad <k@knt.li>
Co-authored-by: cernst <ce72@noreply.kolaente.de>
Co-committed-by: cernst <ce72@noreply.kolaente.de>
2023-03-02 15:25:26 +00:00
534d04a1db
fix(task): correctly load tasks by id and uuid in caldav
All checks were successful
continuous-integration/drone/push Build is passing
Partially reverts 1afc72e190
2023-03-01 22:18:59 +01:00
cernst
1afc72e190 fix: Make sure labels are always exported as caldav (#1412)
All checks were successful
continuous-integration/drone/push Build is passing
Authored-by: ce72 <christoph.ernst72@googlemail.com>
Reviewed-on: vikunja/api#1412
Reviewed-by: konrad <k@knt.li>
Co-authored-by: cernst <ce72@noreply.kolaente.de>
Co-committed-by: cernst <ce72@noreply.kolaente.de>
2023-02-28 10:42:57 +00:00
cernst
53197b85e3 feat(caldav): Export Labels to Caldav (#1409)
All checks were successful
continuous-integration/drone/push Build is passing
Partially resolves vikunja/api#1274

Co-authored-by: ce72 <christoph.ernst72@googlemail.com>
Reviewed-on: vikunja/api#1409
Reviewed-by: konrad <k@knt.li>
Co-authored-by: cernst <ce72@noreply.kolaente.de>
Co-committed-by: cernst <ce72@noreply.kolaente.de>
2023-02-27 11:22:42 +00:00
168287923f
fix(migration): make sure trello checklists are properly imported
All checks were successful
continuous-integration/drone/push Build is passing
2023-02-24 12:13:18 +01:00
ca6d1946da
fix(tasks): make sure tasks are sorted by position before recalculating them
All checks were successful
continuous-integration/drone/push Build is passing
2023-02-23 17:43:23 +01:00
1efa1696bf
fix(tasks): recalculate position of all tasks in a list or bucket when it would hit 0
All checks were successful
continuous-integration/drone/push Build is passing
2023-02-23 16:00:41 +01:00
da9d25cf72
feat: disable events log by default
All checks were successful
continuous-integration/drone/push Build is passing
BREAKING CHANGE: events log level is now off unless explicitly enabled
2023-02-15 10:44:02 +01:00
20a5994b17
fix: lint
All checks were successful
continuous-integration/drone/push Build is passing
2023-02-14 20:37:16 +01:00
fceb5dae0f
fix(task): make sure the task's last updated timestamp is always updated when releated entities changed
Some checks failed
continuous-integration/drone/push Build is failing
2023-02-14 20:09:05 +01:00
58da38adb6
fix(migration): don't try to add nonexistent tasks as related
All checks were successful
continuous-integration/drone/push Build is passing
Discussion: https://community.vikunja.io/t/todoist-migration-fails-after-51-iterations-19-minutes/1137
2023-02-07 17:06:04 +01:00
fdbe110945
chore(deps): upgrade golangci-lint to 1.51.0
All checks were successful
continuous-integration/drone/push Build is passing
2023-02-02 11:16:07 +01:00
clos
afdceb0aff fix(list): when list background is removed, delete file from file system and DB (#1372)
Some checks failed
continuous-integration/drone/push Build is failing
Co-authored-by: testinho.testador <testinho.testador@noreply.kolaente.de>
Reviewed-on: vikunja/api#1372
Reviewed-by: konrad <k@knt.li>
Co-authored-by: clos <clos@noreply.kolaente.de>
Co-committed-by: clos <clos@noreply.kolaente.de>
2023-02-01 11:38:23 +00:00
ef8e97f95e fix(deps): update module github.com/go-redis/redis/v8 to v9 (#1377)
Some checks failed
continuous-integration/drone/push Build is failing
Co-authored-by: kolaente <k@knt.li>
Reviewed-on: vikunja/api#1377
Co-authored-by: renovate <renovatebot@kolaente.de>
Co-committed-by: renovate <renovatebot@kolaente.de>
2023-01-31 16:45:58 +00:00
clos
f660badc3d feat(background): add Last-Modified header (#1376)
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: vikunja/api#1376
Co-authored-by: clos <clos@noreply.kolaente.de>
Co-committed-by: clos <clos@noreply.kolaente.de>
2023-01-29 22:07:46 +00:00
491a142378
fix: lint
All checks were successful
continuous-integration/drone/push Build is passing
2023-01-29 22:42:24 +01:00
40411e4100
chore(task): add test to check if a task's reminders are duplicated
Some checks failed
continuous-integration/drone/push Build is failing
2023-01-26 16:06:49 +01:00
682123a9c9
fix(migration): todoist pagination now avoids too many loops
All checks were successful
continuous-integration/drone/push Build is passing
2023-01-24 22:27:57 +01:00
c59e006453
fix(migration): remove unused todoist parameters
All checks were successful
continuous-integration/drone/push Build is passing
2023-01-24 18:44:33 +01:00
1971df7b84
fix(migration): use the proper authorization method for Todoist's api, fix issues with importing deleted items
All checks were successful
continuous-integration/drone/push Build is passing
2023-01-24 15:45:56 +01:00
31a1452839 fix(migration): import TickTick data by column name instead of index (#1356)
All checks were successful
continuous-integration/drone/push Build is passing
Resolves: https://github.com/go-vikunja/api/issues/61
Co-authored-by: kolaente <k@knt.li>
Reviewed-on: vikunja/api#1356
Co-authored-by: kooshi <kolaente.dev@pat.de.com>
Co-committed-by: kooshi <kolaente.dev@pat.de.com>
2023-01-24 13:58:18 +00:00
530bb0a63c
fix(user): make reset the user's name to empty actually work
Some checks failed
continuous-integration/drone/push Build is failing
2023-01-23 18:30:01 +01:00
7bf7a13bb9
fix(reminders): prevent duplicate reminders when updating task details
All checks were successful
continuous-integration/drone/push Build is passing
2023-01-23 18:14:15 +01:00