Load models by calling AppConfig.get_model method instead.

This commit is contained in:
Roberto Rosario
2016-01-22 03:59:42 -04:00
parent 2f344f299f
commit b19225e95d
16 changed files with 58 additions and 59 deletions

View File

@@ -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'

View File

@@ -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)

View File

@@ -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

View File

@@ -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,

View File

@@ -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='''

View File

@@ -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
)

View File

@@ -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')

View File

@@ -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=_(

View File

@@ -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(

View File

@@ -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,

View File

@@ -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'
)

View File

@@ -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(

View File

@@ -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)

View File

@@ -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(

View File

@@ -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(

View File

@@ -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(