mirror of
https://github.com/paperless-ngx/paperless-ngx.git
synced 2025-04-17 10:13:56 -05:00
Fix: dont use limit in subqueries for mariadb compatibility (#6611)
This commit is contained in:
parent
0d49314593
commit
fae2399e46
@ -1160,7 +1160,7 @@ class GlobalSearchView(PassUserMixin):
|
|||||||
Document,
|
Document,
|
||||||
)
|
)
|
||||||
# First search by title
|
# First search by title
|
||||||
docs = all_docs.filter(title__icontains=query)[:OBJECT_LIMIT]
|
docs = all_docs.filter(title__icontains=query)
|
||||||
if not db_only and len(docs) < OBJECT_LIMIT:
|
if not db_only and len(docs) < OBJECT_LIMIT:
|
||||||
# If we don't have enough results, search by content
|
# If we don't have enough results, search by content
|
||||||
from documents import index
|
from documents import index
|
||||||
@ -1174,77 +1174,87 @@ class GlobalSearchView(PassUserMixin):
|
|||||||
)._get_query()
|
)._get_query()
|
||||||
results = s.search(q, limit=OBJECT_LIMIT)
|
results = s.search(q, limit=OBJECT_LIMIT)
|
||||||
docs = docs | all_docs.filter(id__in=[r["id"] for r in results])
|
docs = docs | all_docs.filter(id__in=[r["id"] for r in results])
|
||||||
|
docs = docs[:OBJECT_LIMIT]
|
||||||
saved_views = (
|
saved_views = (
|
||||||
SavedView.objects.filter(owner=request.user, name__icontains=query)[
|
SavedView.objects.filter(owner=request.user, name__icontains=query)
|
||||||
:OBJECT_LIMIT
|
|
||||||
]
|
|
||||||
if request.user.has_perm("documents.view_savedview")
|
if request.user.has_perm("documents.view_savedview")
|
||||||
else []
|
else []
|
||||||
)
|
)
|
||||||
|
saved_views = saved_views[:OBJECT_LIMIT]
|
||||||
tags = (
|
tags = (
|
||||||
get_objects_for_user_owner_aware(request.user, "view_tag", Tag).filter(
|
get_objects_for_user_owner_aware(request.user, "view_tag", Tag).filter(
|
||||||
name__icontains=query,
|
name__icontains=query,
|
||||||
)[:OBJECT_LIMIT]
|
)
|
||||||
if request.user.has_perm("documents.view_tag")
|
if request.user.has_perm("documents.view_tag")
|
||||||
else []
|
else []
|
||||||
)
|
)
|
||||||
|
tags = tags[:OBJECT_LIMIT]
|
||||||
correspondents = (
|
correspondents = (
|
||||||
get_objects_for_user_owner_aware(
|
get_objects_for_user_owner_aware(
|
||||||
request.user,
|
request.user,
|
||||||
"view_correspondent",
|
"view_correspondent",
|
||||||
Correspondent,
|
Correspondent,
|
||||||
).filter(name__icontains=query)[:OBJECT_LIMIT]
|
).filter(name__icontains=query)
|
||||||
if request.user.has_perm("documents.view_correspondent")
|
if request.user.has_perm("documents.view_correspondent")
|
||||||
else []
|
else []
|
||||||
)
|
)
|
||||||
|
correspondents = correspondents[:OBJECT_LIMIT]
|
||||||
document_types = (
|
document_types = (
|
||||||
get_objects_for_user_owner_aware(
|
get_objects_for_user_owner_aware(
|
||||||
request.user,
|
request.user,
|
||||||
"view_documenttype",
|
"view_documenttype",
|
||||||
DocumentType,
|
DocumentType,
|
||||||
).filter(name__icontains=query)[:OBJECT_LIMIT]
|
).filter(name__icontains=query)
|
||||||
if request.user.has_perm("documents.view_documenttype")
|
if request.user.has_perm("documents.view_documenttype")
|
||||||
else []
|
else []
|
||||||
)
|
)
|
||||||
|
document_types = document_types[:OBJECT_LIMIT]
|
||||||
storage_paths = (
|
storage_paths = (
|
||||||
get_objects_for_user_owner_aware(
|
get_objects_for_user_owner_aware(
|
||||||
request.user,
|
request.user,
|
||||||
"view_storagepath",
|
"view_storagepath",
|
||||||
StoragePath,
|
StoragePath,
|
||||||
).filter(name__icontains=query)[:OBJECT_LIMIT]
|
).filter(name__icontains=query)
|
||||||
if request.user.has_perm("documents.view_storagepath")
|
if request.user.has_perm("documents.view_storagepath")
|
||||||
else []
|
else []
|
||||||
)
|
)
|
||||||
|
storage_paths = storage_paths[:OBJECT_LIMIT]
|
||||||
users = (
|
users = (
|
||||||
User.objects.filter(username__icontains=query)[:OBJECT_LIMIT]
|
User.objects.filter(username__icontains=query)
|
||||||
if request.user.has_perm("auth.view_user")
|
if request.user.has_perm("auth.view_user")
|
||||||
else []
|
else []
|
||||||
)
|
)
|
||||||
|
users = users[:OBJECT_LIMIT]
|
||||||
groups = (
|
groups = (
|
||||||
Group.objects.filter(name__icontains=query)[:OBJECT_LIMIT]
|
Group.objects.filter(name__icontains=query)
|
||||||
if request.user.has_perm("auth.view_group")
|
if request.user.has_perm("auth.view_group")
|
||||||
else []
|
else []
|
||||||
)
|
)
|
||||||
|
groups = groups[:OBJECT_LIMIT]
|
||||||
mail_rules = (
|
mail_rules = (
|
||||||
MailRule.objects.filter(name__icontains=query)[:OBJECT_LIMIT]
|
MailRule.objects.filter(name__icontains=query)
|
||||||
if request.user.has_perm("paperless_mail.view_mailrule")
|
if request.user.has_perm("paperless_mail.view_mailrule")
|
||||||
else []
|
else []
|
||||||
)
|
)
|
||||||
|
mail_rules = mail_rules[:OBJECT_LIMIT]
|
||||||
mail_accounts = (
|
mail_accounts = (
|
||||||
MailAccount.objects.filter(name__icontains=query)[:OBJECT_LIMIT]
|
MailAccount.objects.filter(name__icontains=query)
|
||||||
if request.user.has_perm("paperless_mail.view_mailaccount")
|
if request.user.has_perm("paperless_mail.view_mailaccount")
|
||||||
else []
|
else []
|
||||||
)
|
)
|
||||||
|
mail_accounts = mail_accounts[:OBJECT_LIMIT]
|
||||||
workflows = (
|
workflows = (
|
||||||
Workflow.objects.filter(name__icontains=query)[:OBJECT_LIMIT]
|
Workflow.objects.filter(name__icontains=query)
|
||||||
if request.user.has_perm("documents.view_workflow")
|
if request.user.has_perm("documents.view_workflow")
|
||||||
else []
|
else []
|
||||||
)
|
)
|
||||||
|
workflows = workflows[:OBJECT_LIMIT]
|
||||||
custom_fields = (
|
custom_fields = (
|
||||||
CustomField.objects.filter(name__icontains=query)[:OBJECT_LIMIT]
|
CustomField.objects.filter(name__icontains=query)
|
||||||
if request.user.has_perm("documents.view_customfield")
|
if request.user.has_perm("documents.view_customfield")
|
||||||
else []
|
else []
|
||||||
)
|
)
|
||||||
|
custom_fields = custom_fields[:OBJECT_LIMIT]
|
||||||
|
|
||||||
context = {
|
context = {
|
||||||
"request": request,
|
"request": request,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user