diff --git a/mayan/apps/documents/models/document_models.py b/mayan/apps/documents/models/document_models.py index 8b6fef2400..b6de2bee45 100644 --- a/mayan/apps/documents/models/document_models.py +++ b/mayan/apps/documents/models/document_models.py @@ -102,6 +102,14 @@ class Document(models.Model): ) return RecentDocument.objects.add_document_for_user(user, self) + @property + def checksum(self): + return self.latest_version.checksum + + @property + def date_updated(self): + return self.latest_version.timestamp + def delete(self, *args, **kwargs): to_trash = kwargs.pop('to_trash', True) @@ -126,6 +134,14 @@ class Document(models.Model): else: return False + @property + def file_mime_encoding(self): + return self.latest_version.encoding + + @property + def file_mimetype(self): + return self.latest_version.mimetype + def get_absolute_url(self): return reverse( viewname='documents:document_preview', kwargs={'pk': self.pk} @@ -140,6 +156,10 @@ class Document(models.Model): def is_in_trash(self): return self.in_trash + @property + def latest_version(self): + return self.versions.order_by('timestamp').last() + def natural_key(self): return (self.uuid,) natural_key.dependencies = ['documents.DocumentType'] @@ -165,6 +185,34 @@ class Document(models.Model): """ return self.latest_version.open(*args, **kwargs) + @property + def page_count(self): + return self.latest_version.page_count + + @property + def pages(self): + try: + return self.latest_version.pages + except AttributeError: + # Document has no version yet + DocumentPage = apps.get_model( + app_label='documents', model_name='DocumentPage' + ) + + return DocumentPage.objects.none() + + @property + def pages_all(self): + try: + return self.latest_version.pages_all + except AttributeError: + # Document has no version yet + DocumentPage = apps.get_model( + app_label='documents', model_name='DocumentPage' + ) + + return DocumentPage.objects.none() + def restore(self): self.in_trash = False self.save() @@ -209,53 +257,3 @@ class Document(models.Model): @property def size(self): return self.latest_version.size - - # Compatibility methods - - @property - def checksum(self): - return self.latest_version.checksum - - @property - def date_updated(self): - return self.latest_version.timestamp - - @property - def file_mime_encoding(self): - return self.latest_version.encoding - - @property - def file_mimetype(self): - return self.latest_version.mimetype - - @property - def latest_version(self): - return self.versions.order_by('timestamp').last() - - @property - def page_count(self): - return self.latest_version.page_count - - @property - def pages_all(self): - try: - return self.latest_version.pages_all - except AttributeError: - # Document has no version yet - DocumentPage = apps.get_model( - app_label='documents', model_name='DocumentPage' - ) - - return DocumentPage.objects.none() - - @property - def pages(self): - try: - return self.latest_version.pages - except AttributeError: - # Document has no version yet - DocumentPage = apps.get_model( - app_label='documents', model_name='DocumentPage' - ) - - return DocumentPage.objects.none() diff --git a/mayan/apps/documents/models/document_version_models.py b/mayan/apps/documents/models/document_version_models.py index 1c24fbfeda..980989d4a4 100644 --- a/mayan/apps/documents/models/document_version_models.py +++ b/mayan/apps/documents/models/document_version_models.py @@ -253,10 +253,6 @@ class DocumentVersion(models.Model): ) return DocumentPage.passthrough.filter(document_version=self) - @property - def pages(self): - return self.version_pages.all() - @property def page_count(self): """ @@ -264,6 +260,10 @@ class DocumentVersion(models.Model): """ return self.pages.count() + @property + def pages(self): + return self.version_pages.all() + def revert(self, _user=None): """ Delete the subsequent versions after this one