Commit Graph

221 Commits

Author SHA1 Message Date
14e4a8f792 Fixup for deleting items
First, when checking for existence of a file, deleted items are not
conisdered.

The working with fulltext search has been changed: deleted items are
removed from fulltext index and are re-added when they are restored.
The fulltext index currently doesn't hold the item state and it would
mean much more work to introduce it into the index (or, worse, to
reprocess the results from the index). Thus, deleted items can only be
searched using database queries. It is probably a very rare use case
when fulltext search should be applied to deleted items. They have
been deleted for a reason and the most likely case is that they are
simply removed.

Refs: #347
2021-08-15 16:00:30 +02:00
f4a2b86ea8 Use a minimum age of items to remove
In order to keep deleted items for a while, the periodic task can now
use a duration to only remove items with a certain age. This can be
used to ensure that a deleted item stays at least X days before it
will be removed from the database.

Refs: #347
2021-08-15 12:32:50 +02:00
31d885ed79 Refactor user tasks to support collective and user scopes
Before, there were periodic tasks run per collective and not user by
making sure that submitter + group are the same value. This is now
encoded in `UserTaskScope` so it is now obvious and errors can be
reduced when using this.
2021-08-14 22:07:56 +02:00
27fd7a5867 Make sure the empty-trash task is started for all collectives 2021-08-14 20:40:04 +02:00
50706c3d6d Add a task implementation to delete items 2021-08-14 19:33:18 +02:00
4901276c66 Change "empty trash" settings for a collective and submit the job 2021-08-14 19:33:15 +02:00
f999662905 Add routes to restore deleted items 2021-08-14 16:48:03 +02:00
edb344314f Use an enum instead of a boolean to differentiate search
It's not very likely to have more modes of search besides normal and
trashed, but got surprised in that way quite often and it's nicer this
way anyways.
2021-08-14 15:11:48 +02:00
a7b74bd5ae Allow to search in soft-deleted items
A new query/request parameter can be used to apply a search to only
soft-deleted items.

The query expression `Trashed` has been introduced which selects only
items with state `Deleted`. This is another option an analog to
`ValidItemStates` (both cannot be used together as they would select
no items). This new query node is not added to the parser, because
users may not use it in their own queries - it must be part of the
"fixed" query so the application can control in which subset to search
(it would otherwise be possible to select any items).
2021-08-14 14:53:05 +02:00
cb777e30c0 Delete items by introducing a deleted state
When deleting items via the http api, they are not deleted anymore but
a new status "Deleted" is set. The collective insights contains now a
count separately for deleted items.
2021-08-14 14:18:03 +02:00
48d13a35fc Fix search summary to restrict on valid items 2021-08-14 14:09:07 +02:00
fcef52856a Allow tag ids or tag names when replacing tags 2021-07-25 21:26:22 +02:00
916217df4f Make convert-all-pdfs an admin endpoint 2021-07-25 01:25:24 +02:00
1913877de1 The id must be recreated for each job, obviously
Fixes: #938
2021-07-16 21:14:47 +02:00
f7eed33545 Return a 404 if a source was not found when checking a file 2021-07-08 21:17:48 +02:00
1120434cd9 Replace generating preview images with an admin endpoint
It doesn't make much sense to have this per collective, because this
is triggered by an admin after changing the server config file. So it
is now implemented as an admin endpoint that affects all files.
2021-07-04 21:37:34 +02:00
8e5c88fd32 Add copyright header to source files 2021-07-04 10:57:53 +02:00
bd791b4593 Upgrade code base to CE3 2021-06-22 22:53:34 +02:00
25788a0b23 Add routes for storing/retrieving client settings 2021-05-27 21:34:05 +02:00
a1a93e5ca6 Fixes searching items with fulltext
When using fulltext only search, then only the index must be searched.
This wasn't working anymore, because the routes added a query to
always select valid items (those not being processed). But this lead
to the downstream code to always consult the database, too. Since the
routes are using a "simple-search" interface, this is now adding the
valid-state condition if applicable. There are still more low-level
interfaces that can be used when searching should be done differently.

Closes: #823
2021-05-23 14:14:25 +02:00
558197e415 Fixed the imports 2021-04-15 20:49:34 +02:00
fa34312020 Implemented endpoint to delete multiple attachments 2021-04-15 18:05:01 +02:00
3e0914ece7 Correctly count tag categories
If multiple tags of the same category are applied to the same item,
just summing tag counts will produce the wrong results as now items
are counted multiple times.
2021-04-11 14:34:44 +02:00
c36073b852 Allow to give human readable summary to user tasks 2021-03-27 22:13:13 +01:00
cc38b850a6 Remove deprecated search routes and some refactoring 2021-03-27 22:13:13 +01:00
a7ee0aa08b Add a flag to processing task to distinguish re-/processing 2021-03-12 00:45:23 +01:00
7b1ec97c97 Fix sort when using fulltext only 2021-03-08 00:47:15 +01:00
63d146c2de Resolve fulltext search queries the same way as before
For now, fulltext search is only possible when being the only term or
inside the root AND expression.
2021-03-07 09:40:47 +01:00
dadab0d308 Implement search by query in endpoints 2021-03-01 15:31:02 +01:00
698ff58aa3 Provide a more convenient interface to search 2021-03-01 11:50:07 +01:00
9013d9264e Add more convenient date parsers and some basic macros 2021-03-01 00:51:01 +01:00
e9ed998e3a Basic poc to search via custom query 2021-03-01 00:51:01 +01:00
186014a1c6 Refactor search to separate between a base query and user query
The `findBase` is adding only strictly required conditions. Everything
else comes from the user.
2021-03-01 00:51:01 +01:00
7ef3185659 Add language to a source
Allows to define upload urls for different languages.
2021-02-18 23:34:42 +01:00
4cba96f390 Always return classifier results as suggestion
The classifier results are spliced into the suggestion list at second
place. When linking they are only used if nlp didn't find anything.
2021-01-21 21:05:28 +01:00
668abf2140 Add a reset-password admin route 2021-01-04 20:59:31 +01:00
0cfd8974d3 Add a flag to imap settings to enable/disable oauth2 scheme 2021-01-04 11:03:04 +01:00
97dfcece97 Fix duplicate check on restarts
Issue: #530
2021-01-02 21:18:05 +01:00
6346bf6a34 Add summary for fulltext searches 2020-12-17 00:11:33 +01:00
77627534bc Improve on basic search summary 2020-12-15 23:37:02 +01:00
4ca6dfccae Get basic search summary 2020-12-15 23:10:13 +01:00
2dff686fa0 Introduce unit condition 2020-12-15 21:03:47 +01:00
80406cabc2 Refactoring some code into separate files 2020-12-15 21:03:47 +01:00
266fec9eb5 Convert find items query 2020-12-15 21:03:46 +01:00
a355767fdb Convert all query libs besides QItem 2020-12-15 21:03:46 +01:00
e3f6892abd Convert job record 2020-12-15 21:03:46 +01:00
0b6f965fcb Fix rememberme for missing local storage 2020-12-04 22:57:21 +01:00
a0642905db Use remember-me cookie if present 2020-12-04 17:59:25 +01:00
c10c1fad72 Prepare remember-me authentication variant 2020-12-04 17:59:25 +01:00
fc2668feee Allow to connect a person to an organization 2020-12-01 23:39:45 +01:00