Load models by calling AppConfig.get_model method instead.
This commit is contained in:
@@ -6,7 +6,6 @@ from common import MayanAppConfig, menu_object, menu_sidebar
|
||||
from navigation import SourceColumn
|
||||
|
||||
from .links import link_acl_new, link_acl_delete, link_acl_permissions
|
||||
from .models import AccessControlList
|
||||
|
||||
|
||||
class ACLsApp(MayanAppConfig):
|
||||
@@ -17,6 +16,8 @@ class ACLsApp(MayanAppConfig):
|
||||
def ready(self):
|
||||
super(ACLsApp, self).ready()
|
||||
|
||||
AccessControlList = self.get_model('AccessControlList')
|
||||
|
||||
SourceColumn(
|
||||
source=AccessControlList, label=_('Permissions'),
|
||||
attribute='get_permission_titles'
|
||||
|
||||
@@ -17,7 +17,6 @@ from .links import (
|
||||
link_checkout_list
|
||||
)
|
||||
from .literals import CHECK_EXPIRED_CHECK_OUTS_INTERVAL
|
||||
from .models import DocumentCheckout
|
||||
from .permissions import (
|
||||
permission_document_checkin, permission_document_checkin_override,
|
||||
permission_document_checkout
|
||||
@@ -36,6 +35,8 @@ class CheckoutsApp(MayanAppConfig):
|
||||
|
||||
APIEndPoint(app=self, version_string='1')
|
||||
|
||||
DocumentCheckout = self.get_model('DocumentCheckout')
|
||||
|
||||
Document.add_to_class(
|
||||
'check_in',
|
||||
lambda document, user=None: DocumentCheckout.objects.check_in_document(document, user)
|
||||
|
||||
@@ -11,7 +11,6 @@ from .links import (
|
||||
link_transformation_create, link_transformation_delete,
|
||||
link_transformation_edit
|
||||
)
|
||||
from .models import Transformation
|
||||
|
||||
|
||||
class ConverterApp(MayanAppConfig):
|
||||
@@ -21,6 +20,8 @@ class ConverterApp(MayanAppConfig):
|
||||
def ready(self):
|
||||
super(ConverterApp, self).ready()
|
||||
|
||||
Transformation = self.get_model('Transformation')
|
||||
|
||||
Package(label='Pillow', license_text='''
|
||||
The Python Imaging Library (PIL) is
|
||||
|
||||
|
||||
@@ -10,7 +10,6 @@ from navigation import SourceColumn
|
||||
from .links import (
|
||||
link_comment_add, link_comment_delete, link_comments_for_document
|
||||
)
|
||||
from .models import Comment
|
||||
from .permissions import (
|
||||
permission_comment_create, permission_comment_delete,
|
||||
permission_comment_view
|
||||
@@ -26,6 +25,8 @@ class DocumentCommentsApp(MayanAppConfig):
|
||||
def ready(self):
|
||||
super(DocumentCommentsApp, self).ready()
|
||||
|
||||
Comment = self.get_model('Comment')
|
||||
|
||||
ModelPermission.register(
|
||||
model=Document, permissions=(
|
||||
permission_comment_create, permission_comment_delete,
|
||||
|
||||
@@ -30,10 +30,6 @@ from .links import (
|
||||
link_template_node_create, link_template_node_delete,
|
||||
link_template_node_edit
|
||||
)
|
||||
from .models import (
|
||||
DocumentIndexInstanceNode, Index, IndexInstance, IndexInstanceNode,
|
||||
IndexTemplateNode
|
||||
)
|
||||
from .widgets import get_breadcrumbs, index_instance_item_link, node_level
|
||||
|
||||
|
||||
@@ -47,6 +43,12 @@ class DocumentIndexingApp(MayanAppConfig):
|
||||
def ready(self):
|
||||
super(DocumentIndexingApp, self).ready()
|
||||
|
||||
DocumentIndexInstanceNode = self.get_model('DocumentIndexInstanceNode')
|
||||
Index = self.get_model('Index')
|
||||
IndexInstance = self.get_model('IndexInstance')
|
||||
IndexInstanceNode = self.get_model('IndexInstanceNode')
|
||||
IndexTemplateNode = self.get_model('IndexTemplateNode')
|
||||
|
||||
APIEndPoint(app=self, version_string='1')
|
||||
|
||||
Package(label='Django MPTT', license_text='''
|
||||
|
||||
@@ -11,11 +11,11 @@ from django_gpg.exceptions import GPGDecryptionError
|
||||
from django_gpg.runtime import gpg
|
||||
from documents.models import Document, DocumentVersion
|
||||
|
||||
from .hooks import document_pre_open_hook, document_version_post_save_hook
|
||||
from .links import (
|
||||
link_document_signature_delete, link_document_signature_download,
|
||||
link_document_signature_upload, link_document_verify
|
||||
)
|
||||
from .models import DocumentVersionSignature
|
||||
from .permissions import (
|
||||
permission_document_verify, permission_signature_delete,
|
||||
permission_signature_download, permission_signature_upload
|
||||
@@ -24,37 +24,6 @@ from .permissions import (
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
def document_pre_open_hook(descriptor, instance):
|
||||
if DocumentVersionSignature.objects.has_embedded_signature(document_version=instance):
|
||||
# If it has an embedded signature, decrypt
|
||||
try:
|
||||
result = gpg.decrypt_file(descriptor, close_descriptor=False)
|
||||
# gpg return a string, turn it into a file like object
|
||||
except GPGDecryptionError:
|
||||
# At least return the original raw content
|
||||
descriptor.seek(0)
|
||||
return descriptor
|
||||
else:
|
||||
descriptor.close()
|
||||
return io.BytesIO(result.data)
|
||||
else:
|
||||
return descriptor
|
||||
|
||||
|
||||
def document_version_post_save_hook(instance):
|
||||
logger.debug('instance: %s', instance)
|
||||
|
||||
try:
|
||||
document_signature = DocumentVersionSignature.objects.get(
|
||||
document_version=instance
|
||||
)
|
||||
except DocumentVersionSignature.DoesNotExist:
|
||||
document_signature = DocumentVersionSignature.objects.create(
|
||||
document_version=instance
|
||||
)
|
||||
document_signature.check_for_embedded_signature()
|
||||
|
||||
|
||||
class DocumentSignaturesApp(MayanAppConfig):
|
||||
app_namespace = 'signatures'
|
||||
app_url = 'signatures'
|
||||
@@ -65,6 +34,8 @@ class DocumentSignaturesApp(MayanAppConfig):
|
||||
def ready(self):
|
||||
super(DocumentSignaturesApp, self).ready()
|
||||
|
||||
DocumentVersionSignature = self.get_model('DocumentVersionSignature')
|
||||
|
||||
DocumentVersion.register_post_save_hook(
|
||||
1, document_version_post_save_hook
|
||||
)
|
||||
|
||||
@@ -12,10 +12,6 @@ from documents.models import Document
|
||||
from navigation import SourceColumn
|
||||
|
||||
from .handlers import launch_workflow
|
||||
from .models import (
|
||||
Workflow, WorkflowInstance, WorkflowInstanceLogEntry, WorkflowState,
|
||||
WorkflowTransition
|
||||
)
|
||||
from .links import (
|
||||
link_document_workflow_instance_list, link_setup_workflow_document_types,
|
||||
link_setup_workflow_create, link_setup_workflow_delete,
|
||||
@@ -37,6 +33,12 @@ class DocumentStatesApp(MayanAppConfig):
|
||||
def ready(self):
|
||||
super(DocumentStatesApp, self).ready()
|
||||
|
||||
Workflow = self.get_model('Workflow')
|
||||
WorkflowInstance = self.get_model('WorkflowInstance')
|
||||
WorkflowInstanceLogEntry = self.get_model('WorkflowInstanceLogEntry')
|
||||
WorkflowState = self.get_model('WorkflowState')
|
||||
WorkflowTransition = self.get_model('WorkflowTransition')
|
||||
|
||||
SourceColumn(
|
||||
source=Workflow, label=_('Initial state'),
|
||||
func=lambda context: context['object'].get_initial_state() or _('None')
|
||||
|
||||
@@ -60,10 +60,6 @@ from .literals import (
|
||||
CHECK_DELETE_PERIOD_INTERVAL, CHECK_TRASH_PERIOD_INTERVAL,
|
||||
DELETE_STALE_STUBS_INTERVAL
|
||||
)
|
||||
from .models import (
|
||||
DeletedDocument, Document, DocumentPage, DocumentType,
|
||||
DocumentTypeFilename, DocumentVersion
|
||||
)
|
||||
from .permissions import (
|
||||
permission_document_delete, permission_document_download,
|
||||
permission_document_edit, permission_document_new_version,
|
||||
@@ -90,6 +86,13 @@ class DocumentsApp(MayanAppConfig):
|
||||
|
||||
APIEndPoint(app=self, version_string='1')
|
||||
|
||||
DeletedDocument = self.get_model('DeletedDocument')
|
||||
Document = self.get_model('Document')
|
||||
DocumentPage = self.get_model('DocumentPage')
|
||||
DocumentType = self.get_model('DocumentType')
|
||||
DocumentTypeFilename = self.get_model('DocumentTypeFilename')
|
||||
DocumentVersion = self.get_model('DocumentVersion')
|
||||
|
||||
MissingItem(
|
||||
label=_('Create a document type'),
|
||||
description=_(
|
||||
|
||||
@@ -20,7 +20,6 @@ from .links import (
|
||||
link_folder_delete, link_folder_document_multiple_remove,
|
||||
link_folder_edit, link_folder_view
|
||||
)
|
||||
from .models import DocumentFolder, Folder
|
||||
from .permissions import (
|
||||
permission_folder_add_document, permission_folder_delete,
|
||||
permission_folder_edit, permission_folder_remove_document,
|
||||
@@ -36,6 +35,9 @@ class FoldersApp(MayanAppConfig):
|
||||
def ready(self):
|
||||
super(FoldersApp, self).ready()
|
||||
|
||||
DocumentFolder = self.get_model('DocumentFolder')
|
||||
Folder = self.get_model('Folder')
|
||||
|
||||
APIEndPoint(app=self, version_string='1')
|
||||
|
||||
Document.add_to_class(
|
||||
|
||||
@@ -21,7 +21,6 @@ from .links import (
|
||||
link_smart_link_instance_view, link_smart_link_instances_for_document,
|
||||
link_smart_link_list, link_smart_link_setup
|
||||
)
|
||||
from .models import ResolvedSmartLink, SmartLink, SmartLinkCondition
|
||||
from .permissions import (
|
||||
permission_smart_link_delete, permission_smart_link_edit,
|
||||
permission_smart_link_view
|
||||
@@ -35,6 +34,10 @@ class LinkingApp(MayanAppConfig):
|
||||
def ready(self):
|
||||
super(LinkingApp, self).ready()
|
||||
|
||||
ResolvedSmartLink = self.get_model('ResolvedSmartLink')
|
||||
SmartLink = self.get_model('SmartLink')
|
||||
SmartLinkCondition = self.get_model('SmartLinkCondition')
|
||||
|
||||
ModelPermission.register(
|
||||
model=SmartLink, permissions=(
|
||||
permission_acl_edit, permission_acl_view,
|
||||
|
||||
@@ -14,7 +14,6 @@ from .links import (
|
||||
link_document_mailing_error_log, link_send_document_link,
|
||||
link_send_document
|
||||
)
|
||||
from .models import LogEntry
|
||||
from .permissions import (
|
||||
permission_mailing_link, permission_mailing_send_document
|
||||
)
|
||||
@@ -27,6 +26,8 @@ class MailerApp(MayanAppConfig):
|
||||
def ready(self):
|
||||
super(MailerApp, self).ready()
|
||||
|
||||
LogEntry = self.get_model('LogEntry')
|
||||
|
||||
SourceColumn(
|
||||
source=LogEntry, label=_('Date and time'), attribute='datetime'
|
||||
)
|
||||
|
||||
@@ -37,7 +37,6 @@ from .links import (
|
||||
link_setup_metadata_type_create, link_setup_metadata_type_delete,
|
||||
link_setup_metadata_type_edit, link_setup_metadata_type_list,
|
||||
)
|
||||
from .models import DocumentMetadata, DocumentTypeMetadataType, MetadataType
|
||||
from .permissions import (
|
||||
permission_metadata_document_add, permission_metadata_document_edit,
|
||||
permission_metadata_document_remove, permission_metadata_document_view
|
||||
@@ -55,6 +54,10 @@ class MetadataApp(MayanAppConfig):
|
||||
def ready(self):
|
||||
super(MetadataApp, self).ready()
|
||||
|
||||
DocumentMetadata = self.get_model('DocumentMetadata')
|
||||
DocumentTypeMetadataType = self.get_model('DocumentTypeMetadataType')
|
||||
MetadataType = self.get_model('MetadataType')
|
||||
|
||||
APIEndPoint(app=self, version_string='1')
|
||||
|
||||
Document.add_to_class(
|
||||
|
||||
@@ -29,7 +29,6 @@ from .links import (
|
||||
link_document_submit_multiple, link_document_type_ocr_settings,
|
||||
link_document_type_submit, link_entry_list
|
||||
)
|
||||
from .models import DocumentVersionOCRError
|
||||
from .permissions import permission_ocr_document, permission_ocr_content_view
|
||||
from .settings import (
|
||||
setting_pdftotext_path, setting_tesseract_path
|
||||
@@ -58,6 +57,8 @@ class OCRApp(MayanAppConfig):
|
||||
def ready(self):
|
||||
super(OCRApp, self).ready()
|
||||
|
||||
DocumentVersionOCRError = self.get_model('DocumentVersionOCRError')
|
||||
|
||||
APIEndPoint(app=self, version_string='1')
|
||||
|
||||
Document.add_to_class('submit_for_ocr', document_ocr_submit)
|
||||
|
||||
@@ -9,7 +9,6 @@ from common.signals import perform_upgrade
|
||||
from rest_api.classes import APIEndPoint
|
||||
|
||||
from .handlers import purge_permissions
|
||||
from .models import Role
|
||||
from .links import (
|
||||
link_permission_grant, link_permission_revoke, link_role_create,
|
||||
link_role_delete, link_role_edit, link_role_list, link_role_members,
|
||||
@@ -25,6 +24,8 @@ class PermissionsApp(MayanAppConfig):
|
||||
def ready(self):
|
||||
super(PermissionsApp, self).ready()
|
||||
|
||||
Role = self.get_model('Role')
|
||||
|
||||
APIEndPoint(app=self, version_string='1')
|
||||
|
||||
menu_object.bind_links(
|
||||
|
||||
@@ -30,10 +30,6 @@ from .links import (
|
||||
link_setup_source_edit, link_setup_source_logs, link_staging_file_delete,
|
||||
link_upload_version
|
||||
)
|
||||
from .models import (
|
||||
POP3Email, IMAPEmail, Source, SourceLog, StagingFolderSource,
|
||||
WatchFolderSource, WebFormSource
|
||||
)
|
||||
from .widgets import staging_file_thumbnail
|
||||
|
||||
|
||||
@@ -45,6 +41,14 @@ class SourcesApp(MayanAppConfig):
|
||||
def ready(self):
|
||||
super(SourcesApp, self).ready()
|
||||
|
||||
POP3Email = self.get_model('POP3Email')
|
||||
IMAPEmail = self.get_model('IMAPEmail')
|
||||
Source = self.get_model('Source')
|
||||
SourceLog = self.get_model('SourceLog')
|
||||
StagingFolderSource = self.get_model('StagingFolderSource')
|
||||
WatchFolderSource = self.get_model('WatchFolderSource')
|
||||
WebFormSource = self.get_model('WebFormSource')
|
||||
|
||||
APIEndPoint(app=self, version_string='1')
|
||||
|
||||
MissingItem(
|
||||
|
||||
@@ -20,7 +20,6 @@ from .links import (
|
||||
link_tag_delete, link_tag_document_list, link_tag_edit, link_tag_list,
|
||||
link_tag_multiple_delete, link_tag_tagged_item_list
|
||||
)
|
||||
from .models import DocumentTag, Tag
|
||||
from .permissions import (
|
||||
permission_tag_attach, permission_tag_delete, permission_tag_edit,
|
||||
permission_tag_remove, permission_tag_view
|
||||
@@ -36,6 +35,9 @@ class TagsApp(MayanAppConfig):
|
||||
def ready(self):
|
||||
super(TagsApp, self).ready()
|
||||
|
||||
DocumentTag = self.get_model('DocumentTag')
|
||||
Tag = self.get_model('Tag')
|
||||
|
||||
APIEndPoint(app=self, version_string='1')
|
||||
|
||||
Document.add_to_class(
|
||||
|
||||
Reference in New Issue
Block a user