Sort documents models methods
Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
This commit is contained in:
@@ -102,6 +102,14 @@ class Document(models.Model):
|
|||||||
)
|
)
|
||||||
return RecentDocument.objects.add_document_for_user(user, self)
|
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):
|
def delete(self, *args, **kwargs):
|
||||||
to_trash = kwargs.pop('to_trash', True)
|
to_trash = kwargs.pop('to_trash', True)
|
||||||
|
|
||||||
@@ -126,6 +134,14 @@ class Document(models.Model):
|
|||||||
else:
|
else:
|
||||||
return False
|
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):
|
def get_absolute_url(self):
|
||||||
return reverse(
|
return reverse(
|
||||||
viewname='documents:document_preview', kwargs={'pk': self.pk}
|
viewname='documents:document_preview', kwargs={'pk': self.pk}
|
||||||
@@ -140,6 +156,10 @@ class Document(models.Model):
|
|||||||
def is_in_trash(self):
|
def is_in_trash(self):
|
||||||
return self.in_trash
|
return self.in_trash
|
||||||
|
|
||||||
|
@property
|
||||||
|
def latest_version(self):
|
||||||
|
return self.versions.order_by('timestamp').last()
|
||||||
|
|
||||||
def natural_key(self):
|
def natural_key(self):
|
||||||
return (self.uuid,)
|
return (self.uuid,)
|
||||||
natural_key.dependencies = ['documents.DocumentType']
|
natural_key.dependencies = ['documents.DocumentType']
|
||||||
@@ -165,6 +185,34 @@ class Document(models.Model):
|
|||||||
"""
|
"""
|
||||||
return self.latest_version.open(*args, **kwargs)
|
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):
|
def restore(self):
|
||||||
self.in_trash = False
|
self.in_trash = False
|
||||||
self.save()
|
self.save()
|
||||||
@@ -209,53 +257,3 @@ class Document(models.Model):
|
|||||||
@property
|
@property
|
||||||
def size(self):
|
def size(self):
|
||||||
return self.latest_version.size
|
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()
|
|
||||||
|
|||||||
@@ -253,10 +253,6 @@ class DocumentVersion(models.Model):
|
|||||||
)
|
)
|
||||||
return DocumentPage.passthrough.filter(document_version=self)
|
return DocumentPage.passthrough.filter(document_version=self)
|
||||||
|
|
||||||
@property
|
|
||||||
def pages(self):
|
|
||||||
return self.version_pages.all()
|
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def page_count(self):
|
def page_count(self):
|
||||||
"""
|
"""
|
||||||
@@ -264,6 +260,10 @@ class DocumentVersion(models.Model):
|
|||||||
"""
|
"""
|
||||||
return self.pages.count()
|
return self.pages.count()
|
||||||
|
|
||||||
|
@property
|
||||||
|
def pages(self):
|
||||||
|
return self.version_pages.all()
|
||||||
|
|
||||||
def revert(self, _user=None):
|
def revert(self, _user=None):
|
||||||
"""
|
"""
|
||||||
Delete the subsequent versions after this one
|
Delete the subsequent versions after this one
|
||||||
|
|||||||
Reference in New Issue
Block a user