update index after bulk edit operations #195

This commit is contained in:
jonaswinkler
2020-12-27 17:05:35 +01:00
parent b70f7ca8f3
commit 03f8db481e
4 changed files with 59 additions and 26 deletions

View File

@@ -1,6 +1,8 @@
from django.db.models import Q
from django_q.tasks import async_task
from whoosh.writing import AsyncWriter
from documents import index
from documents.models import Document, Correspondent, DocumentType
@@ -13,6 +15,11 @@ def set_correspondent(doc_ids, correspondent):
affected_docs = [doc.id for doc in qs]
qs.update(correspondent=correspondent)
async_task(
"documents.tasks.bulk_index_documents",
document_ids=affected_docs
)
async_task("documents.tasks.bulk_rename_files", document_ids=affected_docs)
return "OK"
@@ -27,6 +34,11 @@ def set_document_type(doc_ids, document_type):
affected_docs = [doc.id for doc in qs]
qs.update(document_type=document_type)
async_task(
"documents.tasks.bulk_index_documents",
document_ids=affected_docs
)
async_task("documents.tasks.bulk_rename_files", document_ids=affected_docs)
return "OK"
@@ -44,6 +56,11 @@ def add_tag(doc_ids, tag):
document_id=doc, tag_id=tag) for doc in affected_docs
])
async_task(
"documents.tasks.bulk_index_documents",
document_ids=affected_docs
)
async_task("documents.tasks.bulk_rename_files", document_ids=affected_docs)
return "OK"
@@ -61,6 +78,11 @@ def remove_tag(doc_ids, tag):
Q(tag_id=tag)
).delete()
async_task(
"documents.tasks.bulk_index_documents",
document_ids=affected_docs
)
async_task("documents.tasks.bulk_rename_files", document_ids=affected_docs)
return "OK"
@@ -69,4 +91,9 @@ def remove_tag(doc_ids, tag):
def delete(doc_ids):
Document.objects.filter(id__in=doc_ids).delete()
ix = index.open_index()
with AsyncWriter(ix) as writer:
for id in doc_ids:
index.remove_document_by_id(writer, id)
return "OK"