Allow app to auto add their urlpatterns via MayanAppConfig AppConfig subclass
This commit is contained in:
@@ -1,11 +1,11 @@
|
|||||||
from __future__ import unicode_literals
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
from django import apps
|
|
||||||
from django.db.models.signals import post_migrate
|
from django.db.models.signals import post_migrate
|
||||||
from django.utils.translation import ugettext_lazy as _
|
from django.utils.translation import ugettext_lazy as _
|
||||||
|
|
||||||
from common.menus import (
|
from common import (
|
||||||
menu_multi_item, menu_object, menu_secondary, menu_setup, menu_sidebar
|
MayanAppConfig, menu_multi_item, menu_object, menu_secondary, menu_setup,
|
||||||
|
menu_sidebar
|
||||||
)
|
)
|
||||||
|
|
||||||
from .classes import (
|
from .classes import (
|
||||||
@@ -25,11 +25,13 @@ def create_creator_user(sender, **kwargs):
|
|||||||
CreatorSingleton.objects.get_or_create()
|
CreatorSingleton.objects.get_or_create()
|
||||||
|
|
||||||
|
|
||||||
class ACLsApp(apps.AppConfig):
|
class ACLsApp(MayanAppConfig):
|
||||||
name = 'acls'
|
name = 'acls'
|
||||||
verbose_name = _('ACLs')
|
verbose_name = _('ACLs')
|
||||||
|
|
||||||
def ready(self):
|
def ready(self):
|
||||||
|
super(ACLsApp, self).ready()
|
||||||
|
|
||||||
menu_multi_item.bind_links(links=[link_acl_class_grant, link_acl_class_revoke], sources=['acls:acl_class_acl_detail'])
|
menu_multi_item.bind_links(links=[link_acl_class_grant, link_acl_class_revoke], sources=['acls:acl_class_acl_detail'])
|
||||||
menu_multi_item.bind_links(links=[link_acl_grant, link_acl_revoke], sources=['acls:acl_detail'])
|
menu_multi_item.bind_links(links=[link_acl_grant, link_acl_revoke], sources=['acls:acl_detail'])
|
||||||
menu_object.bind_links(links=[link_acl_class_acl_detail], sources=[ClassAccessHolder])
|
menu_object.bind_links(links=[link_acl_class_acl_detail], sources=[ClassAccessHolder])
|
||||||
|
|||||||
@@ -3,7 +3,6 @@ from __future__ import absolute_import, unicode_literals
|
|||||||
import logging
|
import logging
|
||||||
import tempfile
|
import tempfile
|
||||||
|
|
||||||
from django import apps
|
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
from django.contrib.auth import models as auth_models
|
from django.contrib.auth import models as auth_models
|
||||||
from django.contrib.auth.models import User
|
from django.contrib.auth.models import User
|
||||||
@@ -11,20 +10,20 @@ from django.contrib.auth.signals import user_logged_in
|
|||||||
from django.db.models.signals import post_migrate, post_save
|
from django.db.models.signals import post_migrate, post_save
|
||||||
from django.utils.translation import ugettext_lazy as _
|
from django.utils.translation import ugettext_lazy as _
|
||||||
|
|
||||||
from common.menus import (
|
from common import MayanAppConfig, menu_secondary
|
||||||
menu_facet, menu_main, menu_secondary, menu_setup, menu_tools
|
|
||||||
)
|
|
||||||
|
|
||||||
from .links import link_logout, link_password_change
|
from .links import link_logout, link_password_change
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
class AuthenticationApp(apps.AppConfig):
|
class AuthenticationApp(MayanAppConfig):
|
||||||
name = 'authentication'
|
name = 'authentication'
|
||||||
verbose_name = _('Authentication')
|
verbose_name = _('Authentication')
|
||||||
|
|
||||||
def ready(self):
|
def ready(self):
|
||||||
|
super(AuthenticationApp, self).ready()
|
||||||
|
|
||||||
menu_secondary.bind_links(
|
menu_secondary.bind_links(
|
||||||
links=[
|
links=[
|
||||||
link_password_change, link_logout
|
link_password_change, link_logout
|
||||||
|
|||||||
@@ -2,12 +2,11 @@ from __future__ import absolute_import, unicode_literals
|
|||||||
|
|
||||||
from datetime import timedelta
|
from datetime import timedelta
|
||||||
|
|
||||||
from django import apps
|
|
||||||
from django.db.models.signals import pre_save
|
from django.db.models.signals import pre_save
|
||||||
from django.utils.translation import ugettext_lazy as _
|
from django.utils.translation import ugettext_lazy as _
|
||||||
|
|
||||||
from acls.api import class_permissions
|
from acls.api import class_permissions
|
||||||
from common.menus import menu_facet, menu_main, menu_sidebar
|
from common import MayanAppConfig, menu_facet, menu_main, menu_sidebar
|
||||||
from documents.models import Document, DocumentVersion
|
from documents.models import Document, DocumentVersion
|
||||||
from mayan.celery import app
|
from mayan.celery import app
|
||||||
from rest_api.classes import APIEndPoint
|
from rest_api.classes import APIEndPoint
|
||||||
@@ -26,11 +25,15 @@ from .permissions import (
|
|||||||
CHECK_EXPIRED_CHECK_OUTS_INTERVAL = 60 # Lowest check out expiration allowed
|
CHECK_EXPIRED_CHECK_OUTS_INTERVAL = 60 # Lowest check out expiration allowed
|
||||||
|
|
||||||
|
|
||||||
class CheckoutsApp(apps.AppConfig):
|
class CheckoutsApp(MayanAppConfig):
|
||||||
name = 'checkouts'
|
name = 'checkouts'
|
||||||
verbose_name = _('Checkouts')
|
verbose_name = _('Checkouts')
|
||||||
|
|
||||||
def ready(self):
|
def ready(self):
|
||||||
|
super(CheckoutsApp, self).ready()
|
||||||
|
|
||||||
|
APIEndPoint('checkouts')
|
||||||
|
|
||||||
Document.add_to_class('is_checked_out', lambda document: DocumentCheckout.objects.is_document_checked_out(document))
|
Document.add_to_class('is_checked_out', lambda document: DocumentCheckout.objects.is_document_checked_out(document))
|
||||||
Document.add_to_class('check_in', lambda document, user=None: DocumentCheckout.objects.check_in_document(document, user))
|
Document.add_to_class('check_in', lambda document, user=None: DocumentCheckout.objects.check_in_document(document, user))
|
||||||
Document.add_to_class('checkout_info', lambda document: DocumentCheckout.objects.document_checkout_info(document))
|
Document.add_to_class('checkout_info', lambda document: DocumentCheckout.objects.document_checkout_info(document))
|
||||||
@@ -55,5 +58,3 @@ class CheckoutsApp(apps.AppConfig):
|
|||||||
menu_sidebar.bind_links(links=[link_checkout_document, link_checkin_document], sources=['checkouts:checkout_info', 'checkouts:checkout_document', 'checkouts:checkin_document'])
|
menu_sidebar.bind_links(links=[link_checkout_document, link_checkin_document], sources=['checkouts:checkout_info', 'checkouts:checkout_document', 'checkouts:checkin_document'])
|
||||||
|
|
||||||
pre_save.connect(check_if_new_versions_allowed, dispatch_uid='document_index_delete', sender=DocumentVersion)
|
pre_save.connect(check_if_new_versions_allowed, dispatch_uid='document_index_delete', sender=DocumentVersion)
|
||||||
|
|
||||||
APIEndPoint('checkouts')
|
|
||||||
|
|||||||
@@ -1,2 +1,3 @@
|
|||||||
|
from .apps import MayanAppConfig # NOQA
|
||||||
from .classes import MissingItem # NOQA
|
from .classes import MissingItem # NOQA
|
||||||
from .menus import * # NOQA
|
from .menus import * # NOQA
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import tempfile
|
|||||||
|
|
||||||
from django import apps
|
from django import apps
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
|
from django.conf.urls import include, patterns, url
|
||||||
from django.contrib.auth.signals import user_logged_in
|
from django.contrib.auth.signals import user_logged_in
|
||||||
from django.db.models.signals import post_migrate, post_save
|
from django.db.models.signals import post_migrate, post_save
|
||||||
from django.utils.translation import ugettext_lazy as _
|
from django.utils.translation import ugettext_lazy as _
|
||||||
@@ -34,11 +35,32 @@ def create_anonymous_user(sender, **kwargs):
|
|||||||
AnonymousUserSingleton.objects.get_or_create()
|
AnonymousUserSingleton.objects.get_or_create()
|
||||||
|
|
||||||
|
|
||||||
class CommonApp(apps.AppConfig):
|
class MayanAppConfig(apps.AppConfig):
|
||||||
|
app_url = None
|
||||||
|
app_namespace = None
|
||||||
|
|
||||||
|
def ready(self):
|
||||||
|
from mayan.urls import urlpatterns
|
||||||
|
|
||||||
|
|
||||||
|
if self.app_url:
|
||||||
|
top_url = '{}/'.format(self.app_url)
|
||||||
|
elif not self.app_url is None:
|
||||||
|
top_url = ''
|
||||||
|
else:
|
||||||
|
top_url = '{}/'.format(self.name)
|
||||||
|
|
||||||
|
urlpatterns += url(r'^{}'.format(top_url), include('{}.urls'.format(self.name), namespace=self.app_namespace or self.name)),
|
||||||
|
|
||||||
|
|
||||||
|
class CommonApp(MayanAppConfig):
|
||||||
|
app_url = ''
|
||||||
name = 'common'
|
name = 'common'
|
||||||
verbose_name = _('Common')
|
verbose_name = _('Common')
|
||||||
|
|
||||||
def ready(self):
|
def ready(self):
|
||||||
|
super(CommonApp, self).ready()
|
||||||
|
|
||||||
menu_facet.bind_links(links=[link_current_user_details, link_current_user_locale_profile_details, link_tools, link_setup], sources=['common:current_user_details', 'common:current_user_edit', 'common:current_user_locale_profile_details', 'common:current_user_locale_profile_edit', 'authentication:password_change_view', 'common:setup_list', 'common:tools_list'])
|
menu_facet.bind_links(links=[link_current_user_details, link_current_user_locale_profile_details, link_tools, link_setup], sources=['common:current_user_details', 'common:current_user_edit', 'common:current_user_locale_profile_details', 'common:current_user_locale_profile_edit', 'authentication:password_change_view', 'common:setup_list', 'common:tools_list'])
|
||||||
menu_main.bind_links(links=[link_about], position=-1)
|
menu_main.bind_links(links=[link_about], position=-1)
|
||||||
menu_secondary.bind_links(
|
menu_secondary.bind_links(
|
||||||
|
|||||||
@@ -1,9 +1,8 @@
|
|||||||
from __future__ import unicode_literals
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
from django import apps
|
|
||||||
from django.utils.translation import ugettext_lazy as _
|
from django.utils.translation import ugettext_lazy as _
|
||||||
|
|
||||||
from common import menu_object, menu_sidebar
|
from common import MayanAppConfig, menu_object, menu_sidebar
|
||||||
|
|
||||||
from .links import (
|
from .links import (
|
||||||
link_transformation_create, link_transformation_delete,
|
link_transformation_create, link_transformation_delete,
|
||||||
@@ -12,11 +11,13 @@ from .links import (
|
|||||||
from .models import Transformation
|
from .models import Transformation
|
||||||
|
|
||||||
|
|
||||||
class ConverterApp(apps.AppConfig):
|
class ConverterApp(MayanAppConfig):
|
||||||
name = 'converter'
|
name = 'converter'
|
||||||
verbose_name = _('Converter')
|
verbose_name = _('Converter')
|
||||||
|
|
||||||
def ready(self):
|
def ready(self):
|
||||||
|
super(ConverterApp, self).ready()
|
||||||
|
|
||||||
menu_sidebar.bind_links(links=[link_transformation_create], sources=[Transformation])
|
menu_sidebar.bind_links(links=[link_transformation_create], sources=[Transformation])
|
||||||
menu_sidebar.bind_links(links=[link_transformation_create], sources=['converter:transformation_create', 'converter:transformation_list'])
|
menu_sidebar.bind_links(links=[link_transformation_create], sources=['converter:transformation_create', 'converter:transformation_list'])
|
||||||
menu_object.bind_links(links=[link_transformation_edit, link_transformation_delete], sources=[Transformation])
|
menu_object.bind_links(links=[link_transformation_edit, link_transformation_delete], sources=[Transformation])
|
||||||
|
|||||||
@@ -1,9 +1,8 @@
|
|||||||
from __future__ import unicode_literals
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
from django import apps
|
|
||||||
from django.utils.translation import ugettext_lazy as _
|
from django.utils.translation import ugettext_lazy as _
|
||||||
|
|
||||||
from common import menu_object, menu_setup, menu_sidebar
|
from common import MayanAppConfig, menu_object, menu_setup, menu_sidebar
|
||||||
|
|
||||||
from .api import Key, KeyStub
|
from .api import Key, KeyStub
|
||||||
from .links import (
|
from .links import (
|
||||||
@@ -12,11 +11,14 @@ from .links import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
class DjangoGPGApp(apps.AppConfig):
|
class DjangoGPGApp(MayanAppConfig):
|
||||||
|
app_url = 'gpg'
|
||||||
name = 'django_gpg'
|
name = 'django_gpg'
|
||||||
verbose_name = _('Django GPG')
|
verbose_name = _('Django GPG')
|
||||||
|
|
||||||
def ready(self):
|
def ready(self):
|
||||||
|
super(DjangoGPGApp, self).ready()
|
||||||
|
|
||||||
menu_object.bind_links(links=[link_key_delete], sources=[Key])
|
menu_object.bind_links(links=[link_key_delete], sources=[Key])
|
||||||
menu_object.bind_links(links=[link_key_receive], sources=[KeyStub])
|
menu_object.bind_links(links=[link_key_receive], sources=[KeyStub])
|
||||||
menu_setup.bind_links(links=[link_key_setup])
|
menu_setup.bind_links(links=[link_key_setup])
|
||||||
|
|||||||
@@ -1,12 +1,11 @@
|
|||||||
from __future__ import absolute_import, unicode_literals
|
from __future__ import absolute_import, unicode_literals
|
||||||
|
|
||||||
from django import apps
|
|
||||||
from django.contrib.comments.models import Comment
|
from django.contrib.comments.models import Comment
|
||||||
from django.contrib.contenttypes import generic
|
from django.contrib.contenttypes import generic
|
||||||
from django.utils.translation import ugettext_lazy as _
|
from django.utils.translation import ugettext_lazy as _
|
||||||
|
|
||||||
from acls.api import class_permissions
|
from acls.api import class_permissions
|
||||||
from common import menu_facet, menu_object, menu_sidebar
|
from common import MayanAppConfig, menu_facet, menu_object, menu_sidebar
|
||||||
from common.classes import ModelAttribute
|
from common.classes import ModelAttribute
|
||||||
from common.utils import encapsulate
|
from common.utils import encapsulate
|
||||||
from documents.models import Document
|
from documents.models import Document
|
||||||
@@ -21,11 +20,15 @@ from .permissions import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
class DocumentCommentsApp(apps.AppConfig):
|
class DocumentCommentsApp(MayanAppConfig):
|
||||||
|
app_namespace = 'comments'
|
||||||
|
app_url = 'comments'
|
||||||
name = 'document_comments'
|
name = 'document_comments'
|
||||||
verbose_name = _('Document comments')
|
verbose_name = _('Document comments')
|
||||||
|
|
||||||
def ready(self):
|
def ready(self):
|
||||||
|
super(DocumentCommentsApp, self).ready()
|
||||||
|
|
||||||
Document.add_to_class(
|
Document.add_to_class(
|
||||||
'comments',
|
'comments',
|
||||||
generic.GenericRelation(
|
generic.GenericRelation(
|
||||||
|
|||||||
@@ -5,7 +5,8 @@ from django.db.models.signals import post_save, post_delete
|
|||||||
from django.utils.translation import ugettext_lazy as _
|
from django.utils.translation import ugettext_lazy as _
|
||||||
|
|
||||||
from common import (
|
from common import (
|
||||||
menu_facet, menu_main, menu_object, menu_secondary, menu_setup
|
MayanAppConfig, menu_facet, menu_main, menu_object, menu_secondary,
|
||||||
|
menu_setup
|
||||||
)
|
)
|
||||||
from common.api import register_maintenance_links
|
from common.api import register_maintenance_links
|
||||||
from documents.models import Document
|
from documents.models import Document
|
||||||
@@ -27,11 +28,15 @@ from .links import (
|
|||||||
from .models import Index, IndexTemplateNode, IndexInstanceNode
|
from .models import Index, IndexTemplateNode, IndexInstanceNode
|
||||||
|
|
||||||
|
|
||||||
class DocumentIndexingApp(apps.AppConfig):
|
class DocumentIndexingApp(MayanAppConfig):
|
||||||
|
app_namespace = 'indexing'
|
||||||
|
app_url = 'indexing'
|
||||||
name = 'document_indexing'
|
name = 'document_indexing'
|
||||||
verbose_name = _('Document indexing')
|
verbose_name = _('Document indexing')
|
||||||
|
|
||||||
def ready(self):
|
def ready(self):
|
||||||
|
super(DocumentIndexingApp, self).ready()
|
||||||
|
|
||||||
APIEndPoint('indexes', app_name='document_indexing')
|
APIEndPoint('indexes', app_name='document_indexing')
|
||||||
|
|
||||||
menu_facet.bind_links(links=[link_document_index_list], sources=[Document])
|
menu_facet.bind_links(links=[link_document_index_list], sources=[Document])
|
||||||
|
|||||||
@@ -7,11 +7,10 @@ try:
|
|||||||
except ImportError:
|
except ImportError:
|
||||||
from StringIO import StringIO
|
from StringIO import StringIO
|
||||||
|
|
||||||
from django import apps
|
|
||||||
from django.utils.translation import ugettext_lazy as _
|
from django.utils.translation import ugettext_lazy as _
|
||||||
|
|
||||||
from acls.api import class_permissions
|
from acls.api import class_permissions
|
||||||
from common import menu_facet, menu_sidebar
|
from common import MayanAppConfig, menu_facet, menu_sidebar
|
||||||
from django_gpg.exceptions import GPGDecryptionError
|
from django_gpg.exceptions import GPGDecryptionError
|
||||||
from django_gpg.runtime import gpg
|
from django_gpg.runtime import gpg
|
||||||
from documents.models import Document, DocumentVersion
|
from documents.models import Document, DocumentVersion
|
||||||
@@ -56,11 +55,15 @@ def document_version_post_save_hook(instance):
|
|||||||
document_signature.check_for_embedded_signature()
|
document_signature.check_for_embedded_signature()
|
||||||
|
|
||||||
|
|
||||||
class DocumentSignaturesApp(apps.AppConfig):
|
class DocumentSignaturesApp(MayanAppConfig):
|
||||||
|
app_namespace = 'signatures'
|
||||||
|
app_url = 'signatures'
|
||||||
name = 'document_signatures'
|
name = 'document_signatures'
|
||||||
verbose_name = _('Document signatures')
|
verbose_name = _('Document signatures')
|
||||||
|
|
||||||
def ready(self):
|
def ready(self):
|
||||||
|
super(DocumentSignaturesApp, self).ready()
|
||||||
|
|
||||||
DocumentVersion.register_post_save_hook(1, document_version_post_save_hook)
|
DocumentVersion.register_post_save_hook(1, document_version_post_save_hook)
|
||||||
DocumentVersion.register_pre_open_hook(1, document_pre_open_hook)
|
DocumentVersion.register_pre_open_hook(1, document_pre_open_hook)
|
||||||
|
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
from __future__ import unicode_literals
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
from django import apps
|
|
||||||
from django.db.models.signals import post_save
|
from django.db.models.signals import post_save
|
||||||
from django.utils.translation import ugettext_lazy as _
|
from django.utils.translation import ugettext_lazy as _
|
||||||
|
|
||||||
from common import (
|
from common import (
|
||||||
menu_facet, menu_object, menu_secondary, menu_setup, menu_sidebar
|
MayanAppConfig, menu_facet, menu_object, menu_secondary, menu_setup,
|
||||||
|
menu_sidebar
|
||||||
)
|
)
|
||||||
from common.utils import encapsulate
|
from common.utils import encapsulate
|
||||||
from documents.models import Document
|
from documents.models import Document
|
||||||
@@ -28,11 +28,13 @@ from .links import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
class DocumentStatesApp(apps.AppConfig):
|
class DocumentStatesApp(MayanAppConfig):
|
||||||
|
app_url = 'states'
|
||||||
name = 'document_states'
|
name = 'document_states'
|
||||||
verbose_name = _('Document states')
|
verbose_name = _('Document states')
|
||||||
|
|
||||||
def ready(self):
|
def ready(self):
|
||||||
|
super(DocumentStatesApp, self).ready()
|
||||||
menu_facet.bind_links(links=[link_document_workflow_instance_list], sources=[Document])
|
menu_facet.bind_links(links=[link_document_workflow_instance_list], sources=[Document])
|
||||||
menu_object.bind_links(links=[link_setup_workflow_states, link_setup_workflow_transitions, link_setup_workflow_document_types, link_setup_workflow_edit, link_setup_workflow_delete], sources=[Workflow])
|
menu_object.bind_links(links=[link_setup_workflow_states, link_setup_workflow_transitions, link_setup_workflow_document_types, link_setup_workflow_edit, link_setup_workflow_delete], sources=[Workflow])
|
||||||
menu_object.bind_links(links=[link_setup_workflow_state_edit, link_setup_workflow_state_delete], sources=[WorkflowState])
|
menu_object.bind_links(links=[link_setup_workflow_state_edit, link_setup_workflow_state_delete], sources=[WorkflowState])
|
||||||
|
|||||||
@@ -2,7 +2,6 @@ from __future__ import absolute_import, unicode_literals
|
|||||||
|
|
||||||
import tempfile
|
import tempfile
|
||||||
|
|
||||||
from django import apps
|
|
||||||
from django.utils.translation import ugettext_lazy as _
|
from django.utils.translation import ugettext_lazy as _
|
||||||
|
|
||||||
from actstream import registry
|
from actstream import registry
|
||||||
@@ -10,8 +9,8 @@ from actstream import registry
|
|||||||
from acls.api import class_permissions
|
from acls.api import class_permissions
|
||||||
from acls.permissions import ACLS_VIEW_ACL, ACLS_EDIT_ACL
|
from acls.permissions import ACLS_VIEW_ACL, ACLS_EDIT_ACL
|
||||||
from common import (
|
from common import (
|
||||||
MissingItem, menu_facet, menu_front_page, menu_object, menu_secondary,
|
MayanAppConfig, MissingItem, menu_facet, menu_front_page, menu_object,
|
||||||
menu_setup, menu_sidebar, menu_multi_item
|
menu_secondary, menu_setup, menu_sidebar, menu_multi_item
|
||||||
)
|
)
|
||||||
from common.api import register_maintenance_links
|
from common.api import register_maintenance_links
|
||||||
from common.classes import ModelAttribute
|
from common.classes import ModelAttribute
|
||||||
@@ -70,11 +69,13 @@ from .statistics import DocumentStatistics, DocumentUsageStatistics
|
|||||||
from .widgets import document_thumbnail
|
from .widgets import document_thumbnail
|
||||||
|
|
||||||
|
|
||||||
class DocumentsApp(apps.AppConfig):
|
class DocumentsApp(MayanAppConfig):
|
||||||
name = 'documents'
|
name = 'documents'
|
||||||
verbose_name = _('Documents')
|
verbose_name = _('Documents')
|
||||||
|
|
||||||
def ready(self):
|
def ready(self):
|
||||||
|
super(DocumentsApp, self).ready()
|
||||||
|
|
||||||
if (not validate_path(document_settings.CACHE_PATH)) or (not document_settings.CACHE_PATH):
|
if (not validate_path(document_settings.CACHE_PATH)) or (not document_settings.CACHE_PATH):
|
||||||
setattr(document_settings, 'CACHE_PATH', tempfile.mkdtemp())
|
setattr(document_settings, 'CACHE_PATH', tempfile.mkdtemp())
|
||||||
|
|
||||||
|
|||||||
@@ -1,19 +1,22 @@
|
|||||||
from __future__ import unicode_literals
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
from django import apps
|
|
||||||
from django.utils.translation import ugettext_lazy as _
|
from django.utils.translation import ugettext_lazy as _
|
||||||
|
|
||||||
from common import menu_facet, menu_sidebar
|
from common import MayanAppConfig, menu_facet, menu_sidebar
|
||||||
from rest_api.classes import APIEndPoint
|
from rest_api.classes import APIEndPoint
|
||||||
|
|
||||||
from .links import link_search, link_search_advanced, link_search_again
|
from .links import link_search, link_search_advanced, link_search_again
|
||||||
|
|
||||||
|
|
||||||
class DynamicSearchApp(apps.AppConfig):
|
class DynamicSearchApp(MayanAppConfig):
|
||||||
|
app_namespace = 'search'
|
||||||
|
app_url = 'search'
|
||||||
name = 'dynamic_search'
|
name = 'dynamic_search'
|
||||||
verbose_name = _('Dynamic search')
|
verbose_name = _('Dynamic search')
|
||||||
|
|
||||||
def ready(self):
|
def ready(self):
|
||||||
|
super(DynamicSearchApp, self).ready()
|
||||||
|
|
||||||
APIEndPoint('search', app_name='dynamic_search')
|
APIEndPoint('search', app_name='dynamic_search')
|
||||||
|
|
||||||
menu_facet.bind_links(links=[link_search, link_search_advanced], sources=['search:search', 'search:search_advanced', 'search:results'])
|
menu_facet.bind_links(links=[link_search, link_search_advanced], sources=['search:search', 'search:search_advanced', 'search:results'])
|
||||||
|
|||||||
@@ -1,16 +1,17 @@
|
|||||||
from __future__ import unicode_literals
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
from django import apps
|
|
||||||
from django.utils.translation import ugettext_lazy as _
|
from django.utils.translation import ugettext_lazy as _
|
||||||
|
|
||||||
from common import menu_tools
|
from common import MayanAppConfig, menu_tools
|
||||||
|
|
||||||
from .links import link_events_list
|
from .links import link_events_list
|
||||||
|
|
||||||
|
|
||||||
class EventsApp(apps.AppConfig):
|
class EventsApp(MayanAppConfig):
|
||||||
name = 'events'
|
name = 'events'
|
||||||
verbose_name = _('Events')
|
verbose_name = _('Events')
|
||||||
|
|
||||||
def ready(self):
|
def ready(self):
|
||||||
|
super(EventsApp, self).ready()
|
||||||
|
|
||||||
menu_tools.bind_links(links=[link_events_list])
|
menu_tools.bind_links(links=[link_events_list])
|
||||||
|
|||||||
@@ -1,11 +1,13 @@
|
|||||||
from __future__ import unicode_literals
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
from django import apps
|
|
||||||
from django.utils.translation import ugettext_lazy as _
|
from django.utils.translation import ugettext_lazy as _
|
||||||
|
|
||||||
from acls.api import class_permissions
|
from acls.api import class_permissions
|
||||||
from acls.permissions import ACLS_EDIT_ACL, ACLS_VIEW_ACL
|
from acls.permissions import ACLS_EDIT_ACL, ACLS_VIEW_ACL
|
||||||
from common.menus import menu_facet, menu_main, menu_object, menu_secondary, menu_sidebar, menu_multi_item
|
from common import (
|
||||||
|
MayanAppConfig, menu_facet, menu_main, menu_object, menu_secondary,
|
||||||
|
menu_sidebar, menu_multi_item
|
||||||
|
)
|
||||||
from common.utils import encapsulate
|
from common.utils import encapsulate
|
||||||
from documents.models import Document
|
from documents.models import Document
|
||||||
from navigation.api import register_model_list_columns
|
from navigation.api import register_model_list_columns
|
||||||
@@ -27,11 +29,13 @@ from .permissions import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
class FoldersApp(apps.AppConfig):
|
class FoldersApp(MayanAppConfig):
|
||||||
name = 'folders'
|
name = 'folders'
|
||||||
verbose_name = _('Folders')
|
verbose_name = _('Folders')
|
||||||
|
|
||||||
def ready(self):
|
def ready(self):
|
||||||
|
super(FoldersApp, self).ready()
|
||||||
|
|
||||||
APIEndPoint('folders')
|
APIEndPoint('folders')
|
||||||
|
|
||||||
class_permissions(Document, [
|
class_permissions(Document, [
|
||||||
|
|||||||
@@ -1,9 +1,8 @@
|
|||||||
from __future__ import unicode_literals
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
from django import apps
|
|
||||||
from django.utils.translation import ugettext_lazy as _
|
from django.utils.translation import ugettext_lazy as _
|
||||||
|
|
||||||
from common import menu_tools, menu_object, menu_secondary
|
from common import MayanAppConfig, menu_tools, menu_object, menu_secondary
|
||||||
from common.utils import encapsulate
|
from common.utils import encapsulate
|
||||||
from navigation.api import register_model_list_columns
|
from navigation.api import register_model_list_columns
|
||||||
|
|
||||||
@@ -11,11 +10,13 @@ from .classes import Property, PropertyNamespace, PIPNotFound, VirtualEnv
|
|||||||
from .links import link_menu_link, link_namespace_details, link_namespace_list
|
from .links import link_menu_link, link_namespace_details, link_namespace_list
|
||||||
|
|
||||||
|
|
||||||
class InstallationApp(apps.AppConfig):
|
class InstallationApp(MayanAppConfig):
|
||||||
name = 'installation'
|
name = 'installation'
|
||||||
verbose_name = _('Installation')
|
verbose_name = _('Installation')
|
||||||
|
|
||||||
def ready(self):
|
def ready(self):
|
||||||
|
super(InstallationApp, self).ready()
|
||||||
|
|
||||||
menu_object.bind_links(links=[link_namespace_details], sources=[PropertyNamespace])
|
menu_object.bind_links(links=[link_namespace_details], sources=[PropertyNamespace])
|
||||||
menu_secondary.bind_links(links=[link_namespace_list], sources=['installation:namespace_list', PropertyNamespace])
|
menu_secondary.bind_links(links=[link_namespace_list], sources=['installation:namespace_list', PropertyNamespace])
|
||||||
menu_tools.bind_links(links=[link_menu_link])
|
menu_tools.bind_links(links=[link_menu_link])
|
||||||
|
|||||||
@@ -1,12 +1,12 @@
|
|||||||
from __future__ import unicode_literals
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
from django import apps
|
|
||||||
from django.utils.translation import ugettext_lazy as _
|
from django.utils.translation import ugettext_lazy as _
|
||||||
|
|
||||||
from acls.api import class_permissions
|
from acls.api import class_permissions
|
||||||
from acls.permissions import ACLS_EDIT_ACL, ACLS_VIEW_ACL
|
from acls.permissions import ACLS_EDIT_ACL, ACLS_VIEW_ACL
|
||||||
from common import (
|
from common import (
|
||||||
menu_facet, menu_object, menu_secondary, menu_setup, menu_sidebar
|
MayanAppConfig, menu_facet, menu_object, menu_secondary, menu_setup,
|
||||||
|
menu_sidebar
|
||||||
)
|
)
|
||||||
from documents.models import Document
|
from documents.models import Document
|
||||||
|
|
||||||
@@ -27,11 +27,13 @@ from .permissions import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
class LinkingApp(apps.AppConfig):
|
class LinkingApp(MayanAppConfig):
|
||||||
name = 'linking'
|
name = 'linking'
|
||||||
verbose_name = _('Linking')
|
verbose_name = _('Linking')
|
||||||
|
|
||||||
def ready(self):
|
def ready(self):
|
||||||
|
super(LinkingApp, self).ready()
|
||||||
|
|
||||||
class_permissions(SmartLink, [
|
class_permissions(SmartLink, [
|
||||||
ACLS_EDIT_ACL, ACLS_VIEW_ACL, PERMISSION_SMART_LINK_DELETE,
|
ACLS_EDIT_ACL, ACLS_VIEW_ACL, PERMISSION_SMART_LINK_DELETE,
|
||||||
PERMISSION_SMART_LINK_EDIT, PERMISSION_SMART_LINK_VIEW
|
PERMISSION_SMART_LINK_EDIT, PERMISSION_SMART_LINK_VIEW
|
||||||
|
|||||||
@@ -1,10 +1,9 @@
|
|||||||
from __future__ import unicode_literals
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
from django import apps
|
|
||||||
from django.utils.translation import ugettext_lazy as _
|
from django.utils.translation import ugettext_lazy as _
|
||||||
|
|
||||||
from acls.api import class_permissions
|
from acls.api import class_permissions
|
||||||
from common import menu_object
|
from common import MayanAppConfig, menu_object
|
||||||
from documents.models import Document
|
from documents.models import Document
|
||||||
|
|
||||||
from .links import link_send_document_link, link_send_document
|
from .links import link_send_document_link, link_send_document
|
||||||
@@ -13,11 +12,13 @@ from .permissions import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
class MailerApp(apps.AppConfig):
|
class MailerApp(MayanAppConfig):
|
||||||
name = 'mailer'
|
name = 'mailer'
|
||||||
verbose_name = _('Mailer')
|
verbose_name = _('Mailer')
|
||||||
|
|
||||||
def ready(self):
|
def ready(self):
|
||||||
|
super(MailerApp, self).ready()
|
||||||
|
|
||||||
class_permissions(Document, [
|
class_permissions(Document, [
|
||||||
PERMISSION_MAILING_LINK, PERMISSION_MAILING_SEND_DOCUMENT
|
PERMISSION_MAILING_LINK, PERMISSION_MAILING_SEND_DOCUMENT
|
||||||
])
|
])
|
||||||
|
|||||||
@@ -8,8 +8,8 @@ from django.utils.translation import ugettext_lazy as _
|
|||||||
|
|
||||||
from acls.api import class_permissions
|
from acls.api import class_permissions
|
||||||
from common import (
|
from common import (
|
||||||
menu_facet, menu_multi_item, menu_object, menu_secondary, menu_setup,
|
MayanAppConfig, menu_facet, menu_multi_item, menu_object, menu_secondary,
|
||||||
menu_sidebar, menu_tools
|
menu_setup, menu_sidebar, menu_tools
|
||||||
)
|
)
|
||||||
from common.classes import ModelAttribute
|
from common.classes import ModelAttribute
|
||||||
from common.utils import encapsulate
|
from common.utils import encapsulate
|
||||||
@@ -42,11 +42,13 @@ from .permissions import (
|
|||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
class MetadataApp(apps.AppConfig):
|
class MetadataApp(MayanAppConfig):
|
||||||
name = 'metadata'
|
name = 'metadata'
|
||||||
verbose_name = _('Metadata')
|
verbose_name = _('Metadata')
|
||||||
|
|
||||||
def ready(self):
|
def ready(self):
|
||||||
|
super(MetadataApp, self).ready()
|
||||||
|
|
||||||
APIEndPoint('metadata')
|
APIEndPoint('metadata')
|
||||||
|
|
||||||
Document.add_to_class('metadata_value_of', DocumentMetadataHelper.constructor)
|
Document.add_to_class('metadata_value_of', DocumentMetadataHelper.constructor)
|
||||||
|
|||||||
@@ -4,12 +4,12 @@ import logging
|
|||||||
|
|
||||||
import sh
|
import sh
|
||||||
|
|
||||||
from django import apps
|
|
||||||
from django.utils.translation import ugettext_lazy as _
|
from django.utils.translation import ugettext_lazy as _
|
||||||
|
|
||||||
from acls.api import class_permissions
|
from acls.api import class_permissions
|
||||||
from common import (
|
from common import (
|
||||||
menu_facet, menu_multi_item, menu_object, menu_secondary, menu_tools
|
MayanAppConfig, menu_facet, menu_multi_item, menu_object, menu_secondary,
|
||||||
|
menu_tools
|
||||||
)
|
)
|
||||||
from common.api import register_maintenance_links
|
from common.api import register_maintenance_links
|
||||||
from common.utils import encapsulate
|
from common.utils import encapsulate
|
||||||
@@ -43,11 +43,13 @@ def document_version_ocr_submit(self):
|
|||||||
task_do_ocr.apply_async(args=[self.pk], queue='ocr')
|
task_do_ocr.apply_async(args=[self.pk], queue='ocr')
|
||||||
|
|
||||||
|
|
||||||
class OCRApp(apps.AppConfig):
|
class OCRApp(MayanAppConfig):
|
||||||
name = 'ocr'
|
name = 'ocr'
|
||||||
verbose_name = _('OCR')
|
verbose_name = _('OCR')
|
||||||
|
|
||||||
def ready(self):
|
def ready(self):
|
||||||
|
super(OCRApp, self).ready()
|
||||||
|
|
||||||
APIEndPoint('ocr')
|
APIEndPoint('ocr')
|
||||||
|
|
||||||
Document.add_to_class('submit_for_ocr', document_ocr_submit)
|
Document.add_to_class('submit_for_ocr', document_ocr_submit)
|
||||||
|
|||||||
@@ -1,12 +1,11 @@
|
|||||||
from __future__ import unicode_literals
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
from django import apps
|
|
||||||
from django.contrib.auth.models import User
|
from django.contrib.auth.models import User
|
||||||
from django.db.models.signals import post_save
|
from django.db.models.signals import post_save
|
||||||
from django.utils.translation import ugettext_lazy as _
|
from django.utils.translation import ugettext_lazy as _
|
||||||
|
|
||||||
from common.menus import (
|
from common import (
|
||||||
menu_multi_item, menu_object, menu_secondary, menu_setup
|
MayanAppConfig, menu_multi_item, menu_object, menu_secondary, menu_setup
|
||||||
)
|
)
|
||||||
from rest_api.classes import APIEndPoint
|
from rest_api.classes import APIEndPoint
|
||||||
|
|
||||||
@@ -19,11 +18,13 @@ from .links import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
class PermissionsApp(apps.AppConfig):
|
class PermissionsApp(MayanAppConfig):
|
||||||
name = 'permissions'
|
name = 'permissions'
|
||||||
verbose_name = _('Permissions')
|
verbose_name = _('Permissions')
|
||||||
|
|
||||||
def ready(self):
|
def ready(self):
|
||||||
|
super(PermissionsApp, self).ready()
|
||||||
|
|
||||||
APIEndPoint('permissions')
|
APIEndPoint('permissions')
|
||||||
|
|
||||||
menu_object.bind_links(links=[link_role_edit, link_role_members, link_role_permissions, link_role_delete], sources=[Role])
|
menu_object.bind_links(links=[link_role_edit, link_role_members, link_role_permissions, link_role_delete], sources=[Role])
|
||||||
|
|||||||
@@ -1,16 +1,19 @@
|
|||||||
from __future__ import unicode_literals
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
from django import apps
|
|
||||||
from django.utils.translation import ugettext_lazy as _
|
from django.utils.translation import ugettext_lazy as _
|
||||||
|
|
||||||
from common import menu_setup
|
from common import MayanAppConfig, menu_setup
|
||||||
|
|
||||||
from .links import link_check_settings
|
from .links import link_check_settings
|
||||||
|
|
||||||
|
|
||||||
class SmartSettingsApp(apps.AppConfig):
|
class SmartSettingsApp(MayanAppConfig):
|
||||||
|
app_namespace = 'settings'
|
||||||
|
app_url = 'settings'
|
||||||
name = 'smart_settings'
|
name = 'smart_settings'
|
||||||
verbose_name = _('Smart settings')
|
verbose_name = _('Smart settings')
|
||||||
|
|
||||||
def ready(self):
|
def ready(self):
|
||||||
|
super(SmartSettingsApp, self).ready()
|
||||||
|
|
||||||
menu_setup.bind_links(links=[link_check_settings])
|
menu_setup.bind_links(links=[link_check_settings])
|
||||||
|
|||||||
@@ -1,11 +1,10 @@
|
|||||||
from __future__ import absolute_import, unicode_literals
|
from __future__ import absolute_import, unicode_literals
|
||||||
|
|
||||||
from django import apps
|
|
||||||
from django.utils.translation import ugettext_lazy as _
|
from django.utils.translation import ugettext_lazy as _
|
||||||
|
|
||||||
from common import (
|
from common import (
|
||||||
MissingItem, menu_front_page, menu_object, menu_secondary, menu_sidebar,
|
MayanAppConfig, MissingItem, menu_front_page, menu_object, menu_secondary,
|
||||||
menu_setup
|
menu_sidebar, menu_setup
|
||||||
)
|
)
|
||||||
from common.signals import post_initial_setup
|
from common.signals import post_initial_setup
|
||||||
from common.utils import encapsulate
|
from common.utils import encapsulate
|
||||||
@@ -29,11 +28,13 @@ from .models import Source
|
|||||||
from .widgets import staging_file_thumbnail
|
from .widgets import staging_file_thumbnail
|
||||||
|
|
||||||
|
|
||||||
class SourcesApp(apps.AppConfig):
|
class SourcesApp(MayanAppConfig):
|
||||||
name = 'sources'
|
name = 'sources'
|
||||||
verbose_name = _('Sources')
|
verbose_name = _('Sources')
|
||||||
|
|
||||||
def ready(self):
|
def ready(self):
|
||||||
|
super(SourcesApp, self).ready()
|
||||||
|
|
||||||
APIEndPoint('sources')
|
APIEndPoint('sources')
|
||||||
MissingItem(label=_('Create a document source'), description=_('Document sources are the way in which new documents are feed to Mayan EDMS, create at least a web form source to be able to upload documents from a browser.'), condition=lambda: not Source.objects.exists(), view='sources:setup_source_list')
|
MissingItem(label=_('Create a document source'), description=_('Document sources are the way in which new documents are feed to Mayan EDMS, create at least a web form source to be able to upload documents from a browser.'), condition=lambda: not Source.objects.exists(), view='sources:setup_source_list')
|
||||||
|
|
||||||
|
|||||||
@@ -1,9 +1,8 @@
|
|||||||
from __future__ import unicode_literals
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
from django import apps
|
|
||||||
from django.utils.translation import ugettext_lazy as _
|
from django.utils.translation import ugettext_lazy as _
|
||||||
|
|
||||||
from common import menu_object, menu_secondary, menu_tools
|
from common import MayanAppConfig, menu_object, menu_secondary, menu_tools
|
||||||
|
|
||||||
from .classes import Statistic, StatisticNamespace
|
from .classes import Statistic, StatisticNamespace
|
||||||
from .links import (
|
from .links import (
|
||||||
@@ -12,11 +11,13 @@ from .links import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
class StatisticsApp(apps.AppConfig):
|
class StatisticsApp(MayanAppConfig):
|
||||||
name = 'statistics'
|
name = 'statistics'
|
||||||
verbose_name = _('Statistics')
|
verbose_name = _('Statistics')
|
||||||
|
|
||||||
def ready(self):
|
def ready(self):
|
||||||
|
super(StatisticsApp, self).ready()
|
||||||
|
|
||||||
menu_object.bind_links(links=[link_execute], sources=[Statistic])
|
menu_object.bind_links(links=[link_execute], sources=[Statistic])
|
||||||
menu_object.bind_links(links=[link_namespace_details], sources=[StatisticNamespace])
|
menu_object.bind_links(links=[link_namespace_details], sources=[StatisticNamespace])
|
||||||
menu_secondary.bind_links(links=[link_namespace_list], sources=[StatisticNamespace, 'statistics:namespace_list'])
|
menu_secondary.bind_links(links=[link_namespace_list], sources=[StatisticNamespace, 'statistics:namespace_list'])
|
||||||
|
|||||||
@@ -1,12 +1,11 @@
|
|||||||
from __future__ import unicode_literals
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
from django import apps
|
|
||||||
from django.utils.translation import ugettext_lazy as _
|
from django.utils.translation import ugettext_lazy as _
|
||||||
|
|
||||||
from acls.api import class_permissions
|
from acls.api import class_permissions
|
||||||
from common.menus import (
|
from common import (
|
||||||
menu_facet, menu_secondary, menu_object, menu_main, menu_multi_item,
|
MayanAppConfig, menu_facet, menu_secondary, menu_object, menu_main,
|
||||||
menu_sidebar
|
menu_multi_item, menu_sidebar
|
||||||
)
|
)
|
||||||
from common.utils import encapsulate
|
from common.utils import encapsulate
|
||||||
from documents.models import Document
|
from documents.models import Document
|
||||||
@@ -28,11 +27,13 @@ from .permissions import (
|
|||||||
from .widgets import get_tags_inline_widget_simple, single_tag_widget
|
from .widgets import get_tags_inline_widget_simple, single_tag_widget
|
||||||
|
|
||||||
|
|
||||||
class TagsApp(apps.AppConfig):
|
class TagsApp(MayanAppConfig):
|
||||||
name = 'tags'
|
name = 'tags'
|
||||||
verbose_name = _('Tags')
|
verbose_name = _('Tags')
|
||||||
|
|
||||||
def ready(self):
|
def ready(self):
|
||||||
|
super(TagsApp, self).ready()
|
||||||
|
|
||||||
APIEndPoint('tags')
|
APIEndPoint('tags')
|
||||||
|
|
||||||
class_permissions(Document, [
|
class_permissions(Document, [
|
||||||
|
|||||||
@@ -1,12 +1,12 @@
|
|||||||
from __future__ import unicode_literals
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
from django import apps
|
|
||||||
from django.contrib.auth.models import User, Group
|
from django.contrib.auth.models import User, Group
|
||||||
from django.utils.translation import ugettext_lazy as _
|
from django.utils.translation import ugettext_lazy as _
|
||||||
|
|
||||||
from actstream import registry
|
from actstream import registry
|
||||||
|
|
||||||
from common import menu_multi_item, menu_object, menu_secondary, menu_setup
|
from common import menu_multi_item, menu_object, menu_secondary, menu_setup
|
||||||
|
from common.apps import MayanAppConfig
|
||||||
from rest_api.classes import APIEndPoint
|
from rest_api.classes import APIEndPoint
|
||||||
|
|
||||||
from .links import (
|
from .links import (
|
||||||
@@ -18,11 +18,15 @@ from .links import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
class UserManagementApp(apps.AppConfig):
|
class UserManagementApp(MayanAppConfig):
|
||||||
|
app_url = 'accounts'
|
||||||
name = 'user_management'
|
name = 'user_management'
|
||||||
verbose_name = _('User management')
|
verbose_name = _('User management')
|
||||||
|
|
||||||
|
|
||||||
def ready(self):
|
def ready(self):
|
||||||
|
super(UserManagementApp, self).ready()
|
||||||
|
|
||||||
APIEndPoint('users', app_name='user_management')
|
APIEndPoint('users', app_name='user_management')
|
||||||
|
|
||||||
menu_multi_item.bind_links(links=[link_group_multiple_delete], sources=['user_management:group_list'])
|
menu_multi_item.bind_links(links=[link_group_multiple_delete], sources=['user_management:group_list'])
|
||||||
|
|||||||
@@ -8,34 +8,9 @@ admin.autodiscover()
|
|||||||
|
|
||||||
urlpatterns = patterns(
|
urlpatterns = patterns(
|
||||||
'',
|
'',
|
||||||
url(r'^', include('common.urls', namespace='common')),
|
|
||||||
url(r'^accounts/', include('user_management.urls', namespace='user_management')),
|
|
||||||
url(r'^acls/', include('acls.urls', namespace='acls')),
|
|
||||||
url(r'^admin/', include(admin.site.urls)),
|
url(r'^admin/', include(admin.site.urls)),
|
||||||
url(r'^api/', include('rest_api.urls')),
|
url(r'^api/', include('rest_api.urls')),
|
||||||
url(r'^authentication/', include('authentication.urls', namespace='authentication')),
|
|
||||||
url(r'^checkouts/', include('checkouts.urls', namespace='checkouts')),
|
|
||||||
url(r'^comments/', include('document_comments.urls', namespace='comments')),
|
|
||||||
url(r'^converter/', include('converter.urls', namespace='converter')),
|
|
||||||
url(r'^document/signatures/', include('document_signatures.urls', namespace='signatures')),
|
|
||||||
url(r'^document/states/', include('document_states.urls', namespace='document_states')),
|
|
||||||
url(r'^documents/', include('documents.urls', namespace='documents')),
|
|
||||||
url(r'^docs/', include('rest_framework_swagger.urls')),
|
url(r'^docs/', include('rest_framework_swagger.urls')),
|
||||||
url(r'^events/', include('events.urls', namespace='events')),
|
|
||||||
url(r'^folders/', include('folders.urls', namespace='folders')),
|
|
||||||
url(r'^gpg/', include('django_gpg.urls', namespace='django_gpg')),
|
|
||||||
url(r'^indexing/', include('document_indexing.urls', namespace='indexing')),
|
|
||||||
url(r'^installation/', include('installation.urls', namespace='installation')),
|
|
||||||
url(r'^linking/', include('linking.urls', namespace='linking')),
|
|
||||||
url(r'^mailer/', include('mailer.urls', namespace='mailer')),
|
|
||||||
url(r'^metadata/', include('metadata.urls', namespace='metadata')),
|
|
||||||
url(r'^ocr/', include('ocr.urls', namespace='ocr')),
|
|
||||||
url(r'^permissions/', include('permissions.urls', namespace='permissions')),
|
|
||||||
url(r'^search/', include('dynamic_search.urls', namespace='search')),
|
|
||||||
url(r'^settings/', include('smart_settings.urls', namespace='settings')),
|
|
||||||
url(r'^sources/', include('sources.urls', namespace='sources')),
|
|
||||||
url(r'^statistics/', include('statistics.urls', namespace='statistics')),
|
|
||||||
url(r'^tags/', include('tags.urls', namespace='tags')),
|
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user