diff --git a/src/documents/apps.py b/src/documents/apps.py index dd065c0a5..435e1afa5 100644 --- a/src/documents/apps.py +++ b/src/documents/apps.py @@ -15,13 +15,15 @@ class DocumentsConfig(AppConfig): set_tags, run_pre_consume_script, run_post_consume_script, - cleanup_document_deletion + cleanup_document_deletion, + set_log_entry ) document_consumption_started.connect(run_pre_consume_script) document_consumption_finished.connect(set_tags) document_consumption_finished.connect(set_correspondent) + document_consumption_finished.connect(set_log_entry) document_consumption_finished.connect(run_post_consume_script) post_delete.connect(cleanup_document_deletion) diff --git a/src/documents/signals/handlers.py b/src/documents/signals/handlers.py index e6fecbf6a..d66be3ea9 100644 --- a/src/documents/signals/handlers.py +++ b/src/documents/signals/handlers.py @@ -3,6 +3,9 @@ import os from subprocess import Popen from django.conf import settings +from django.contrib.admin.models import LogEntry, ADDITION +from django.contrib.contenttypes.models import ContentType +from django.contrib.auth.models import User from ..models import Correspondent, Document, Tag @@ -93,3 +96,18 @@ def cleanup_document_deletion(sender, instance, using, **kwargs): os.unlink(f) except FileNotFoundError: pass # The file's already gone, so we're cool with it. + + +def set_log_entry(sender, document=None, logging_group=None, **kwargs): + + ct = ContentType.objects.get(model="document") + user = User.objects.first() + + LogEntry.objects.create( + action_flag=ADDITION, + action_time=document.created, + content_type=ct, + object_id=document.id, + user=user, + object_repr=document.__str__(), + )