mirror of
https://github.com/paperless-ngx/paperless-ngx.git
synced 2025-08-12 00:19:48 +00:00
Feature: custom fields filtering & bulk editing (#6484)
This commit is contained in:
@@ -12,6 +12,7 @@ from documents.data_models import ConsumableDocument
|
||||
from documents.data_models import DocumentMetadataOverrides
|
||||
from documents.data_models import DocumentSource
|
||||
from documents.models import Correspondent
|
||||
from documents.models import CustomFieldInstance
|
||||
from documents.models import Document
|
||||
from documents.models import DocumentType
|
||||
from documents.models import StoragePath
|
||||
@@ -120,6 +121,30 @@ def modify_tags(doc_ids, add_tags, remove_tags):
|
||||
return "OK"
|
||||
|
||||
|
||||
def modify_custom_fields(doc_ids, add_custom_fields, remove_custom_fields):
|
||||
qs = Document.objects.filter(id__in=doc_ids)
|
||||
affected_docs = [doc.id for doc in qs]
|
||||
|
||||
fields_to_add = []
|
||||
for field in add_custom_fields:
|
||||
for doc_id in affected_docs:
|
||||
fields_to_add.append(
|
||||
CustomFieldInstance(
|
||||
document_id=doc_id,
|
||||
field_id=field,
|
||||
),
|
||||
)
|
||||
CustomFieldInstance.objects.bulk_create(fields_to_add)
|
||||
CustomFieldInstance.objects.filter(
|
||||
document_id__in=affected_docs,
|
||||
field_id__in=remove_custom_fields,
|
||||
).delete()
|
||||
|
||||
bulk_update_documents.delay(document_ids=affected_docs)
|
||||
|
||||
return "OK"
|
||||
|
||||
|
||||
def delete(doc_ids):
|
||||
Document.objects.filter(id__in=doc_ids).delete()
|
||||
|
||||
|
Reference in New Issue
Block a user