Change the way new document version are blocked, moving the logic to the documents app from the checkouts app signal handler. Disable the upload new document version button and have the new version upload view redirect to the document version list with a message. GitLab issue #231.

This commit is contained in:
Roberto Rosario
2015-10-23 06:06:59 -04:00
parent 414c55f824
commit da4c41c5b2
16 changed files with 395 additions and 141 deletions
+16 -2
View File
@@ -31,10 +31,11 @@ from .events import (
event_document_properties_edit, event_document_type_change,
event_document_version_revert
)
from .exceptions import NewDocumentVersionNotAllowed
from .literals import DEFAULT_DELETE_PERIOD, DEFAULT_DELETE_TIME_UNIT
from .managers import (
DocumentManager, DocumentTypeManager, PassthroughManager,
RecentDocumentManager, TrashCanManager
DocumentManager, DocumentTypeManager, NewVersionBlockManager,
PassthroughManager, RecentDocumentManager, TrashCanManager
)
from .permissions import permission_document_view
from .runtime import cache_storage_backend, storage_backend
@@ -397,6 +398,8 @@ class DocumentVersion(models.Model):
if new_document_version:
logger.info('Creating new version for document: %s', self.document)
if NewVersionBlock.objects.is_blocked(self.document):
raise NewDocumentVersionNotAllowed
try:
with transaction.atomic():
@@ -779,6 +782,17 @@ class DocumentPage(models.Model):
return '{}-{}'.format(self.document_version.uuid, self.pk)
class NewVersionBlock(models.Model):
document = models.ForeignKey(Document, verbose_name=_('Document'))
objects = NewVersionBlockManager()
class Meta:
verbose_name = _('New version block')
verbose_name_plural = _('New version blocks')
@python_2_unicode_compatible
class RecentDocument(models.Model):
"""