diff --git a/mayan/apps/documents/events.py b/mayan/apps/documents/events.py index 6250ded672..4f0c518022 100644 --- a/mayan/apps/documents/events.py +++ b/mayan/apps/documents/events.py @@ -8,3 +8,4 @@ event_document_create = Event(name='documents_document_create', label=_('Documen event_document_properties_edit = Event(name='documents_document_edit', label=_('Document properties edited')) event_document_type_change = Event(name='documents_document_type_change', label=_('Document type changed')) event_document_new_version = Event(name='documents_document_new_version', label=_('New version uploaded')) +event_document_version_revert = Event(name='documents_document_version_revert', label=_('Document version reverted')) diff --git a/mayan/apps/documents/models.py b/mayan/apps/documents/models.py index b815a2d21d..e87919ad0b 100644 --- a/mayan/apps/documents/models.py +++ b/mayan/apps/documents/models.py @@ -28,7 +28,10 @@ from converter.literals import ( from converter.models import Transformation from mimetype.api import get_mimetype -from .events import event_document_create, event_document_new_version +from .events import ( + event_document_create, event_document_new_version, + event_document_version_revert +) from .managers import ( DocumentManager, DocumentTypeManager, RecentDocumentManager ) @@ -316,6 +319,10 @@ class DocumentVersion(models.Model): """ Delete the subsequent versions after this one """ + logger.info('Reverting to document document: %s to version: %s', self.document, self) + + event_document_version_revert.commit(target=self.document) + for version in self.document.versions.filter(timestamp__gt=self.timestamp): version.delete()