Switch to full app paths

Instead of inserting the path of the apps into the Python app,
the apps are now referenced by their full import path.

This solves name clashes with external or native Python libraries.
Example: Mayan statistics app vs. Python new statistics library.

Every app reference is now prepended with 'mayan.apps'.

Existing config.yml files need to be updated manually.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
This commit is contained in:
Roberto Rosario
2018-12-05 02:00:52 -04:00
parent 382173351a
commit 36a51eeb73
467 changed files with 1169 additions and 1114 deletions

View File

@@ -2,4 +2,4 @@ from __future__ import unicode_literals
from .classes import ModelPermission # NOQA
default_app_config = 'acls.apps.ACLsApp'
default_app_config = 'mayan.apps.acls.apps.ACLsApp'

View File

@@ -2,16 +2,18 @@ from __future__ import unicode_literals
from django.utils.translation import ugettext_lazy as _
from common import MayanAppConfig, menu_object, menu_sidebar
from navigation import SourceColumn
from mayan.apps.common import MayanAppConfig, menu_object, menu_sidebar
from mayan.apps.navigation import SourceColumn
from .links import link_acl_create, link_acl_delete, link_acl_permissions
class ACLsApp(MayanAppConfig):
app_namespace = 'acls'
app_url = 'acls'
has_rest_api = True
has_tests = True
name = 'acls'
name = 'mayan.apps.acls'
verbose_name = _('ACLs')
def ready(self):

View File

@@ -1,6 +1,6 @@
from __future__ import absolute_import, unicode_literals
from appearance.classes import Icon
from mayan.apps.appearance.classes import Icon
icon_acl_list = Icon(driver_name='fontawesome', symbol='lock')
icon_acl_new = Icon(driver_name='fontawesome', symbol='plus')

View File

@@ -3,7 +3,7 @@ from __future__ import unicode_literals
from django.apps import apps
from django.utils.translation import ugettext_lazy as _
from navigation import Link
from mayan.apps.navigation import Link
from .icons import icon_acl_list, icon_acl_new
from .permissions import permission_acl_view, permission_acl_edit

View File

@@ -9,9 +9,9 @@ from django.db.models import Q
from django.utils.encoding import force_text
from django.utils.translation import ugettext
from common.utils import return_attrib, return_related
from permissions import Permission
from permissions.models import StoredPermission
from mayan.apps.common.utils import return_attrib, return_related
from mayan.apps.permissions import Permission
from mayan.apps.permissions.models import StoredPermission
from .exceptions import PermissionNotValidForClass
from .classes import ModelPermission

View File

@@ -8,7 +8,7 @@ from django.db import models
from django.utils.encoding import force_text, python_2_unicode_compatible
from django.utils.translation import ugettext_lazy as _
from permissions.models import Role, StoredPermission
from mayan.apps.permissions.models import Role, StoredPermission
from .managers import AccessControlListManager

View File

@@ -2,7 +2,7 @@ from __future__ import absolute_import, unicode_literals
from django.utils.translation import ugettext_lazy as _
from permissions import PermissionNamespace
from mayan.apps.permissions import PermissionNamespace
namespace = PermissionNamespace('acls', _('Access control lists'))

View File

@@ -9,10 +9,10 @@ from rest_framework import serializers
from rest_framework.exceptions import ValidationError
from rest_framework.reverse import reverse
from common.serializers import ContentTypeSerializer
from permissions import Permission
from permissions.models import Role, StoredPermission
from permissions.serializers import PermissionSerializer, RoleSerializer
from mayan.apps.common.serializers import ContentTypeSerializer
from mayan.apps.permissions import Permission
from mayan.apps.permissions.models import Role, StoredPermission
from mayan.apps.permissions.serializers import PermissionSerializer, RoleSerializer
from .models import AccessControlList

View File

@@ -3,11 +3,11 @@ from __future__ import unicode_literals
from django.contrib.auth import get_user_model
from django.contrib.auth.models import Group
from acls.models import AccessControlList
from permissions.models import Role
from permissions.tests.literals import TEST_ROLE_LABEL
from permissions.tests.mixins import RoleTestCaseMixin
from user_management.tests.literals import (
from mayan.apps.acls.models import AccessControlList
from mayan.apps.permissions.models import Role
from mayan.apps.permissions.tests.literals import TEST_ROLE_LABEL
from mayan.apps.permissions.tests.mixins import RoleTestCaseMixin
from mayan.apps.user_management.tests.literals import (
TEST_ADMIN_PASSWORD, TEST_ADMIN_USERNAME, TEST_ADMIN_EMAIL,
TEST_GROUP_NAME, TEST_USER_EMAIL, TEST_USER_USERNAME, TEST_USER_PASSWORD
)

View File

@@ -2,8 +2,8 @@ from __future__ import unicode_literals
from django.contrib.contenttypes.models import ContentType
from document_states.tests.test_actions import ActionTestCase
from documents.permissions import permission_document_view
from mayan.apps.document_states.tests.test_actions import ActionTestCase
from mayan.apps.documents.permissions import permission_document_view
from ..workflow_actions import GrantAccessAction, RevokeAccessAction

View File

@@ -5,10 +5,10 @@ from django.test import override_settings
from rest_framework import status
from documents.permissions import permission_document_view
from documents.tests import DocumentTestMixin
from permissions.tests.literals import TEST_ROLE_LABEL
from rest_api.tests import BaseAPITestCase
from mayan.apps.documents.permissions import permission_document_view
from mayan.apps.documents.tests import DocumentTestMixin
from mayan.apps.permissions.tests.literals import TEST_ROLE_LABEL
from mayan.apps.rest_api.tests import BaseAPITestCase
from ..models import AccessControlList
from ..permissions import permission_acl_view

View File

@@ -3,7 +3,7 @@ from __future__ import unicode_literals
from django.contrib.contenttypes.models import ContentType
from django.urls import reverse
from documents.tests import GenericDocumentViewTestCase
from mayan.apps.documents.tests import GenericDocumentViewTestCase
from ..links import (
link_acl_delete, link_acl_list, link_acl_create, link_acl_permissions

View File

@@ -3,10 +3,10 @@ from __future__ import absolute_import, unicode_literals
from django.core.exceptions import PermissionDenied
from django.test import override_settings
from common.tests import BaseTestCase
from documents.models import Document, DocumentType
from documents.permissions import permission_document_view
from documents.tests import (
from mayan.apps.common.tests import BaseTestCase
from mayan.apps.documents.models import Document, DocumentType
from mayan.apps.documents.permissions import permission_document_view
from mayan.apps.documents.tests import (
TEST_SMALL_DOCUMENT_PATH, TEST_DOCUMENT_TYPE_LABEL,
TEST_DOCUMENT_TYPE_2_LABEL
)

View File

@@ -2,7 +2,7 @@ from __future__ import absolute_import, unicode_literals
from django.contrib.contenttypes.models import ContentType
from documents.tests import GenericDocumentViewTestCase
from mayan.apps.documents.tests import GenericDocumentViewTestCase
from ..models import AccessControlList
from ..permissions import permission_acl_edit, permission_acl_view

View File

@@ -11,12 +11,12 @@ from django.urls import reverse
from django.utils.encoding import force_text
from django.utils.translation import ugettext_lazy as _
from common.views import (
from mayan.apps.common.views import (
AssignRemoveView, SingleObjectCreateView, SingleObjectDeleteView,
SingleObjectListView
)
from permissions import PermissionNamespace, Permission
from permissions.models import StoredPermission
from mayan.apps.permissions import PermissionNamespace, Permission
from mayan.apps.permissions.models import StoredPermission
from .classes import ModelPermission
from .icons import icon_acl_list

View File

@@ -7,10 +7,10 @@ from django.contrib.contenttypes.models import ContentType
from django.core.exceptions import ValidationError
from django.utils.translation import ugettext_lazy as _
from acls.models import AccessControlList
from document_states.classes import WorkflowAction
from permissions.classes import Permission
from permissions.models import Role
from mayan.apps.acls.models import AccessControlList
from mayan.apps.document_states.classes import WorkflowAction
from mayan.apps.permissions.classes import Permission
from mayan.apps.permissions.models import Role
from .classes import ModelPermission
from .permissions import permission_acl_edit

View File

@@ -1,3 +1,3 @@
from __future__ import unicode_literals
default_app_config = 'appearance.apps.AppearanceApp'
default_app_config = 'mayan.apps.appearance.apps.AppearanceApp'

View File

@@ -2,13 +2,13 @@ from __future__ import unicode_literals
from django.utils.translation import ugettext_lazy as _
from common import MayanAppConfig
from mayan.apps.common import MayanAppConfig
from .licenses import * # NOQA
class AppearanceApp(MayanAppConfig):
name = 'appearance'
name = 'mayan.apps.appearance'
verbose_name = _('Appearance')
def ready(self):

View File

@@ -1,6 +1,6 @@
from __future__ import unicode_literals
from common.classes import Package
from mayan.apps.common.classes import Package
Package(label='Bootstrap', license_text='''
The MIT License (MIT)

View File

@@ -2,7 +2,7 @@ from __future__ import unicode_literals
from django.utils.translation import ugettext_lazy as _
from smart_settings import Namespace
from mayan.apps.smart_settings import Namespace
from .literals import DEFAULT_MAXIMUM_TITLE_LENGTH

View File

@@ -60,14 +60,14 @@
{% smart_setting 'COMMON_PROJECT_TITLE' as setting_project_title %}
{% project_information '__title__' as project_title %}
{% get_icon 'common.icons.icon_documentation' as icon_documentation %}
{% get_icon 'common.icons.icon_forum' as icon_forum %}
{% get_icon 'common.icons.icon_social_facebook' as icon_social_facebook %}
{% get_icon 'common.icons.icon_social_paypal' as icon_social_paypal %}
{% get_icon 'common.icons.icon_social_twitter' as icon_social_twitter %}
{% get_icon 'common.icons.icon_social_instagram' as icon_social_instagram %}
{% get_icon 'common.icons.icon_source_code' as icon_source_code %}
{% get_icon 'common.icons.icon_wiki' as icon_wiki %}
{% get_icon 'mayan.apps.common.icons.icon_documentation' as icon_documentation %}
{% get_icon 'mayan.apps.common.icons.icon_forum' as icon_forum %}
{% get_icon 'mayan.apps.common.icons.icon_social_facebook' as icon_social_facebook %}
{% get_icon 'mayan.apps.common.icons.icon_social_paypal' as icon_social_paypal %}
{% get_icon 'mayan.apps.common.icons.icon_social_twitter' as icon_social_twitter %}
{% get_icon 'mayan.apps.common.icons.icon_social_instagram' as icon_social_instagram %}
{% get_icon 'mayan.apps.common.icons.icon_source_code' as icon_source_code %}
{% get_icon 'mayan.apps.common.icons.icon_wiki' as icon_wiki %}
<div class="well">
<h3 class="text-center">{{ setting_project_title }}</h3>

View File

@@ -1,7 +1,7 @@
{% load common_tags %}
{% load navigation_tags %}
{% if link|get_type == "<class 'navigation.classes.Menu'>" %}
{% if link|get_type == "<class 'mayan.apps.navigation.classes.Menu'>" %}
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="true">
{% if link.icon %}

View File

@@ -1,3 +1,3 @@
from __future__ import unicode_literals
default_app_config = 'authentication.apps.AuthenticationApp'
default_app_config = 'mayan.apps.authentication.apps.AuthenticationApp'

View File

@@ -4,8 +4,8 @@ import logging
from django.utils.translation import ugettext_lazy as _
from common import MayanAppConfig, menu_user
from navigation.classes import Separator
from mayan.apps.common import MayanAppConfig, menu_user
from mayan.apps.navigation.classes import Separator
from .links import link_logout, link_password_change
@@ -13,8 +13,10 @@ logger = logging.getLogger(__name__)
class AuthenticationApp(MayanAppConfig):
app_namespace = 'authentication'
app_url = 'authentication'
has_tests = True
name = 'authentication'
name = 'mayan.apps.authentication'
verbose_name = _('Authentication')
def ready(self):

View File

@@ -7,7 +7,7 @@ from django.contrib.auth import authenticate
from django.contrib.auth.forms import AuthenticationForm
from django.utils.translation import ugettext_lazy as _
from common.widgets import EmailInput
from mayan.apps.common.widgets import EmailInput
class EmailAuthenticationForm(forms.Form):

View File

@@ -1,6 +1,6 @@
from __future__ import absolute_import, unicode_literals
from appearance.classes import Icon
from mayan.apps.appearance.classes import Icon
icon_logout = Icon(driver_name='fontawesome', symbol='sign-out-alt')
icon_password_change = Icon(driver_name='fontawesome', symbol='key')

View File

@@ -2,7 +2,7 @@ from __future__ import unicode_literals
from django.utils.translation import ugettext_lazy as _
from navigation import Link
from mayan.apps.navigation import Link
from .icons import icon_logout, icon_password_change

View File

@@ -2,7 +2,7 @@ from __future__ import unicode_literals
from django.utils.translation import ugettext_lazy as _
from smart_settings import Namespace
from mayan.apps.smart_settings import Namespace
from .literals import DEFAULT_LOGIN_METHOD, DEFAULT_MAXIMUM_SESSION_LENGTH

View File

@@ -1,3 +1,3 @@
from __future__ import unicode_literals
TEST_EMAIL_AUTHENTICATION_BACKEND = 'authentication.auth.email_auth_backend.EmailAuthBackend'
TEST_EMAIL_AUTHENTICATION_BACKEND = 'mayan.apps.authentication.auth.email_auth_backend.EmailAuthBackend'

View File

@@ -5,9 +5,9 @@ from django.core import mail
from django.test import override_settings
from django.urls import reverse
from common.tests import GenericViewTestCase
from smart_settings.classes import Namespace
from user_management.tests.literals import (
from mayan.apps.common.tests import GenericViewTestCase
from mayan.apps.smart_settings.classes import Namespace
from mayan.apps.user_management.tests.literals import (
TEST_ADMIN_EMAIL, TEST_ADMIN_PASSWORD, TEST_USER_PASSWORD_EDITED,
TEST_ADMIN_USERNAME
)

View File

@@ -15,8 +15,8 @@ from django.utils.translation import ugettext_lazy as _
from stronghold.decorators import public
from common.settings import setting_project_title, setting_project_url
import mayan
from mayan.apps.common.settings import setting_project_title, setting_project_url
from .forms import EmailAuthenticationForm, UsernameAuthenticationForm
from .settings import setting_login_method, setting_maximum_session_length

View File

@@ -1,3 +1,3 @@
from __future__ import unicode_literals
default_app_config = 'cabinets.apps.CabinetsApp'
default_app_config = 'mayan.apps.cabinets.apps.CabinetsApp'

View File

@@ -5,11 +5,11 @@ from django.shortcuts import get_object_or_404
from rest_framework import generics
from rest_framework.response import Response
from acls.models import AccessControlList
from documents.models import Document
from documents.permissions import permission_document_view
from rest_api.filters import MayanObjectPermissionsFilter
from rest_api.permissions import MayanPermission
from mayan.apps.acls.models import AccessControlList
from mayan.apps.documents.models import Document
from mayan.apps.documents.permissions import permission_document_view
from mayan.apps.rest_api.filters import MayanObjectPermissionsFilter
from mayan.apps.rest_api.permissions import MayanPermission
from .models import Cabinet
from .permissions import (

View File

@@ -3,14 +3,14 @@ from __future__ import unicode_literals
from django.apps import apps
from django.utils.translation import ugettext_lazy as _
from acls import ModelPermission
from acls.permissions import permission_acl_edit, permission_acl_view
from common import (
from mayan.apps.acls import ModelPermission
from mayan.apps.acls.permissions import permission_acl_edit, permission_acl_view
from mayan.apps.common import (
MayanAppConfig, menu_facet, menu_main, menu_multi_item, menu_object,
menu_sidebar
)
from documents.search import document_page_search, document_search
from navigation import SourceColumn
from mayan.apps.documents.search import document_page_search, document_search
from mayan.apps.navigation import SourceColumn
from .links import (
link_cabinet_list, link_document_cabinet_list,
@@ -30,9 +30,11 @@ from .widgets import widget_document_cabinets
class CabinetsApp(MayanAppConfig):
app_namespace = 'cabinets'
app_url = 'cabinets'
has_rest_api = True
has_tests = True
name = 'cabinets'
name = 'mayan.apps.cabinets'
verbose_name = _('Cabinets')
def ready(self):

View File

@@ -2,7 +2,7 @@ from __future__ import absolute_import, unicode_literals
from django.utils.translation import ugettext_lazy as _
from events import EventTypeNamespace
from mayan.apps.events import EventTypeNamespace
namespace = EventTypeNamespace(name='cabinets', label=_('Cabinets'))

View File

@@ -5,7 +5,7 @@ import logging
from django import forms
from django.utils.translation import ugettext_lazy as _
from acls.models import AccessControlList
from mayan.apps.acls.models import AccessControlList
from .models import Cabinet

View File

@@ -1,6 +1,6 @@
from __future__ import absolute_import, unicode_literals
from appearance.classes import Icon
from mayan.apps.appearance.classes import Icon
icon_cabinet = Icon(driver_name='fontawesome', symbol='columns')
icon_cabinet_add = Icon(driver_name='fontawesome', symbol='plus')

View File

@@ -4,9 +4,9 @@ import copy
from django.utils.translation import ugettext_lazy as _
from acls.links import link_acl_list
from documents.permissions import permission_document_view
from navigation import Link, get_cascade_condition
from mayan.apps.acls.links import link_acl_list
from mayan.apps.documents.permissions import permission_document_view
from mayan.apps.navigation import Link, get_cascade_condition
from .icons import (
icon_cabinet_add, icon_cabinet_child_add, icon_cabinet_create,

View File

@@ -2,7 +2,7 @@ from __future__ import unicode_literals
from django.utils.translation import ugettext_lazy as _
from navigation import Menu, get_cascade_condition
from mayan.apps.navigation import Menu, get_cascade_condition
from .icons import icon_cabinet_list
from .permissions import permission_cabinet_create, permission_cabinet_view

View File

@@ -9,9 +9,9 @@ from django.utils.translation import ugettext_lazy as _
from mptt.fields import TreeForeignKey
from mptt.models import MPTTModel
from acls.models import AccessControlList
from documents.models import Document
from documents.permissions import permission_document_view
from mayan.apps.acls.models import AccessControlList
from mayan.apps.documents.models import Document
from mayan.apps.documents.permissions import permission_document_view
from .events import event_cabinets_add_document, event_cabinets_remove_document
from .search import cabinet_search # NOQA

View File

@@ -2,7 +2,7 @@ from __future__ import absolute_import, unicode_literals
from django.utils.translation import ugettext_lazy as _
from permissions import PermissionNamespace
from mayan.apps.permissions import PermissionNamespace
namespace = PermissionNamespace('cabinets', _('Cabinets'))

View File

@@ -2,14 +2,14 @@ from __future__ import absolute_import, unicode_literals
from django.utils.translation import ugettext_lazy as _
from dynamic_search.classes import SearchModel
from mayan.apps.dynamic_search.classes import SearchModel
from .permissions import permission_cabinet_view
cabinet_search = SearchModel(
app_label='cabinets', model_name='Cabinet',
permission=permission_cabinet_view,
serializer_string='cabinets.serializers.CabinetSerializer'
serializer_string='mayan.apps.cabinets.serializers.CabinetSerializer'
)
cabinet_search.add_model_field(

View File

@@ -6,11 +6,10 @@ from django.utils.translation import ugettext_lazy as _
from rest_framework import serializers
from rest_framework.reverse import reverse
from rest_framework.settings import api_settings
from rest_framework_recursive.fields import RecursiveField
from documents.models import Document
from documents.serializers import DocumentSerializer
from mayan.apps.documents.models import Document
from mayan.apps.documents.serializers import DocumentSerializer
from .models import Cabinet

View File

@@ -8,8 +8,8 @@ from django.utils.encoding import force_text
from rest_framework import status
from rest_framework.test import APITestCase
from documents.tests import DocumentTestMixin
from user_management.tests.literals import (
from mayan.apps.documents.tests import DocumentTestMixin
from mayan.apps.user_management.tests.literals import (
TEST_ADMIN_EMAIL, TEST_ADMIN_PASSWORD, TEST_ADMIN_USERNAME
)

View File

@@ -2,7 +2,7 @@ from __future__ import unicode_literals
from actstream.models import Action
from documents.tests.test_models import GenericDocumentTestCase
from mayan.apps.documents.tests.test_models import GenericDocumentTestCase
from ..events import (
event_cabinets_add_document, event_cabinets_remove_document

View File

@@ -3,8 +3,8 @@ from __future__ import unicode_literals
from django.core.exceptions import ValidationError
from django.test import override_settings
from common.tests import BaseTestCase
from documents.tests import DocumentTestMixin
from mayan.apps.common.tests import BaseTestCase
from mayan.apps.documents.tests import DocumentTestMixin
from ..models import Cabinet

View File

@@ -1,6 +1,6 @@
from __future__ import absolute_import, unicode_literals
from documents.tests import GenericDocumentViewTestCase
from mayan.apps.documents.tests import GenericDocumentViewTestCase
from ..models import Cabinet
from ..permissions import (

View File

@@ -1,15 +1,15 @@
from __future__ import unicode_literals
from documents.models import Document
from documents.permissions import permission_document_create
from documents.tests import (
from mayan.apps.documents.models import Document
from mayan.apps.documents.permissions import permission_document_create
from mayan.apps.documents.tests import (
GenericDocumentViewTestCase, TEST_SMALL_DOCUMENT_PATH,
)
from sources.models import WebFormSource
from sources.tests.literals import (
from mayan.apps.sources.models import WebFormSource
from mayan.apps.sources.tests.literals import (
TEST_SOURCE_LABEL, TEST_SOURCE_UNCOMPRESS_N
)
from sources.wizards import WizardStep
from mayan.apps.sources.wizards import WizardStep
from ..models import Cabinet
from ..wizard_steps import WizardStepCabinets

View File

@@ -8,14 +8,14 @@ from django.template import RequestContext
from django.urls import reverse_lazy
from django.utils.translation import ugettext_lazy as _, ungettext
from acls.models import AccessControlList
from common.views import (
from mayan.apps.acls.models import AccessControlList
from mayan.apps.common.views import (
MultipleObjectFormActionView, SingleObjectCreateView,
SingleObjectDeleteView, SingleObjectEditView, SingleObjectListView
)
from documents.permissions import permission_document_view
from documents.models import Document
from documents.views import DocumentListView
from mayan.apps.documents.permissions import permission_document_view
from mayan.apps.documents.models import Document
from mayan.apps.documents.views import DocumentListView
from .forms import CabinetListForm
from .icons import icon_cabinet

View File

@@ -6,7 +6,7 @@ from django.apps import apps
from django.utils.encoding import force_text
from django.utils.translation import ugettext_lazy as _
from sources.wizards import WizardStep
from mayan.apps.sources.wizards import WizardStep
from .forms import CabinetListForm
from .permissions import permission_cabinet_add_document

View File

@@ -1,3 +1,3 @@
from __future__ import unicode_literals
default_app_config = 'checkouts.apps.CheckoutsApp'
default_app_config = 'mayan.apps.checkouts.apps.CheckoutsApp'

View File

@@ -2,8 +2,8 @@ from __future__ import absolute_import, unicode_literals
from rest_framework import generics
from acls.models import AccessControlList
from documents.permissions import permission_document_view
from mayan.apps.acls.models import AccessControlList
from mayan.apps.documents.permissions import permission_document_view
from .models import DocumentCheckout
from .permissions import (

View File

@@ -8,10 +8,10 @@ from django.apps import apps
from django.db.models.signals import pre_save
from django.utils.translation import ugettext_lazy as _
from acls import ModelPermission
from common import MayanAppConfig, menu_facet, menu_main, menu_sidebar
from common.dashboards import dashboard_main
from events import ModelEventType
from mayan.apps.acls import ModelPermission
from mayan.apps.common import MayanAppConfig, menu_facet, menu_main, menu_sidebar
from mayan.apps.common.dashboards import dashboard_main
from mayan.apps.events import ModelEventType
from mayan.celery import app
from .dashboard_widgets import DashboardWidgetTotalCheckouts
@@ -35,9 +35,11 @@ from .tasks import task_check_expired_check_outs # NOQA
class CheckoutsApp(MayanAppConfig):
app_namespace = 'checkouts'
app_url = 'checkouts'
has_rest_api = True
has_tests = True
name = 'checkouts'
name = 'mayan.apps.checkouts'
verbose_name = _('Checkouts')
def ready(self):
@@ -94,7 +96,7 @@ class CheckoutsApp(MayanAppConfig):
app.conf.CELERYBEAT_SCHEDULE.update(
{
'task_check_expired_check_outs': {
'task': 'checkouts.tasks.task_check_expired_check_outs',
'task': 'mayan.apps.checkouts.tasks.task_check_expired_check_outs',
'schedule': timedelta(
seconds=CHECK_EXPIRED_CHECK_OUTS_INTERVAL
),
@@ -111,7 +113,7 @@ class CheckoutsApp(MayanAppConfig):
app.conf.CELERY_ROUTES.update(
{
'checkouts.tasks.task_check_expired_check_outs': {
'mayan.apps.checkouts.tasks.task_check_expired_check_outs': {
'queue': 'checkouts_periodic'
},
}

View File

@@ -4,8 +4,8 @@ from django.apps import apps
from django.urls import reverse_lazy
from django.utils.translation import ugettext_lazy as _
from common.classes import DashboardWidgetNumeric
from documents.permissions import permission_document_view
from mayan.apps.common.classes import DashboardWidgetNumeric
from mayan.apps.documents.permissions import permission_document_view
from .icons import icon_dashboard_checkouts
from .permissions import permission_document_checkout_detail_view

View File

@@ -2,7 +2,7 @@ from __future__ import absolute_import, unicode_literals
from django.utils.translation import ugettext_lazy as _
from events import EventTypeNamespace
from mayan.apps.events import EventTypeNamespace
namespace = EventTypeNamespace(name='checkouts', label=_('Checkouts'))

View File

@@ -3,7 +3,7 @@ from __future__ import unicode_literals
from django import forms
from django.utils.translation import ugettext_lazy as _
from common.forms import DetailForm
from mayan.apps.common.forms import DetailForm
from .literals import STATE_LABELS
from .models import DocumentCheckout

View File

@@ -1,6 +1,6 @@
from __future__ import absolute_import, unicode_literals
from appearance.classes import Icon
from mayan.apps.appearance.classes import Icon
icon_checkout_info = Icon(driver_name='fontawesome', symbol='shopping-cart')
icon_dashboard_checkouts = Icon(

View File

@@ -2,7 +2,7 @@ from __future__ import absolute_import, unicode_literals
from django.utils.translation import ugettext_lazy as _
from navigation import Link
from mayan.apps.navigation import Link
from .icons import icon_checkout_info
from .permissions import (

View File

@@ -6,7 +6,7 @@ from django.apps import apps
from django.db import models
from django.utils.timezone import now
from documents.models import Document
from mayan.apps.documents.models import Document
from .events import (
event_document_auto_check_in, event_document_check_in,

View File

@@ -10,7 +10,7 @@ from django.utils.encoding import force_text, python_2_unicode_compatible
from django.utils.timezone import now
from django.utils.translation import ugettext_lazy as _
from documents.models import Document
from mayan.apps.documents.models import Document
from .events import event_document_check_out
from .exceptions import DocumentAlreadyCheckedOut

View File

@@ -2,7 +2,7 @@ from __future__ import absolute_import, unicode_literals
from django.utils.translation import ugettext_lazy as _
from permissions import PermissionNamespace
from mayan.apps.permissions import PermissionNamespace
namespace = PermissionNamespace('checkouts', _('Document checkout'))

View File

@@ -2,12 +2,12 @@ from __future__ import absolute_import, unicode_literals
from django.utils.translation import ugettext_lazy as _
from task_manager.classes import CeleryQueue
from mayan.apps.task_manager.classes import CeleryQueue
queue_checkouts_periodic = CeleryQueue(
name='checkouts_periodic', label=_('Checkouts periodic'), transient=True
)
queue_checkouts_periodic.add_task_type(
name='task_check_expired_check_outs',
name='mayan.apps.task_check_expired_check_outs',
label=_('Check expired checkouts')
)

View File

@@ -4,9 +4,9 @@ from django.utils.translation import ugettext_lazy as _
from rest_framework import serializers
from acls.models import AccessControlList
from documents.models import Document
from documents.serializers import DocumentSerializer
from mayan.apps.acls.models import AccessControlList
from mayan.apps.documents.models import Document
from mayan.apps.documents.serializers import DocumentSerializer
from .models import DocumentCheckout
from .permissions import permission_document_checkout

View File

@@ -4,8 +4,8 @@ import logging
from django.apps import apps
from lock_manager import LockError
from lock_manager.runtime import locking_backend
from mayan.apps.lock_manager import LockError
from mayan.apps.lock_manager.runtime import locking_backend
from mayan.celery import app
from .literals import CHECKOUT_EXPIRATION_LOCK_EXPIRE

View File

@@ -8,9 +8,9 @@ from django.utils.timezone import now
from rest_framework import status
from documents.tests import DocumentTestMixin
from documents.permissions import permission_document_view
from rest_api.tests import BaseAPITestCase
from mayan.apps.documents.tests import DocumentTestMixin
from mayan.apps.documents.permissions import permission_document_view
from mayan.apps.rest_api.tests import BaseAPITestCase
from ..models import DocumentCheckout
from ..permissions import (

View File

@@ -7,9 +7,9 @@ import time
from django.test import override_settings
from django.utils.timezone import now
from common.tests import BaseTestCase
from documents.tests import DocumentTestMixin
from documents.tests.literals import TEST_SMALL_DOCUMENT_PATH
from mayan.apps.common.tests import BaseTestCase
from mayan.apps.documents.tests import DocumentTestMixin
from mayan.apps.documents.tests.literals import TEST_SMALL_DOCUMENT_PATH
from ..exceptions import (
DocumentAlreadyCheckedOut, DocumentNotCheckedOut,

View File

@@ -5,10 +5,10 @@ import logging
from django.utils.timezone import now
from common.literals import TIME_DELTA_UNIT_DAYS
from documents.tests import GenericDocumentViewTestCase
from sources.links import link_upload_version
from user_management.tests.literals import (
from mayan.apps.common.literals import TIME_DELTA_UNIT_DAYS
from mayan.apps.documents.tests import GenericDocumentViewTestCase
from mayan.apps.sources.links import link_upload_version
from mayan.apps.user_management.tests.literals import (
TEST_USER_PASSWORD, TEST_USER_USERNAME, TEST_ADMIN_PASSWORD,
TEST_ADMIN_USERNAME,
)

View File

@@ -6,14 +6,13 @@ from django.shortcuts import get_object_or_404
from django.urls import reverse
from django.utils.translation import ugettext_lazy as _
from documents.models import Document
from documents.views import DocumentListView
from acls.models import AccessControlList
from common.generics import (
from mayan.apps.acls.models import AccessControlList
from mayan.apps.common.generics import (
ConfirmView, SingleObjectCreateView, SingleObjectDetailView
)
from common.utils import encapsulate
from mayan.apps.common.utils import encapsulate
from mayan.apps.documents.models import Document
from mayan.apps.documents.views import DocumentListView
from .exceptions import DocumentAlreadyCheckedOut, DocumentNotCheckedOut
from .forms import DocumentCheckoutForm, DocumentCheckoutDefailForm

View File

@@ -6,7 +6,7 @@ from django import forms
from django.utils.timezone import now
from django.utils.translation import ugettext_lazy as _
from common.literals import TIME_DELTA_UNIT_CHOICES
from mayan.apps.common.literals import TIME_DELTA_UNIT_CHOICES
class SplitTimeDeltaWidget(forms.widgets.MultiWidget):

View File

@@ -4,4 +4,4 @@ from .apps import MayanAppConfig # NOQA
from .classes import MissingItem # NOQA
from .menus import * # NOQA
default_app_config = 'common.apps.CommonApp'
default_app_config = 'mayan.apps.common.apps.CommonApp'

View File

@@ -47,10 +47,11 @@ logger = logging.getLogger(__name__)
class MayanAppConfig(apps.AppConfig):
app_url = None
app_namespace = None
app_url = None
def ready(self):
logger.debug('Initializing app: %s', self.name)
from mayan.urls import urlpatterns
if self.app_url:
@@ -70,7 +71,7 @@ class MayanAppConfig(apps.AppConfig):
),
except ImportError as exception:
if force_text(exception) not in ('No module named urls', 'No module named \'{}.urls\''.format(self.name)):
logger.error(
logger.exception(
'Import time error when running AppConfig.ready() of app '
'"%s".', self.name
)
@@ -78,10 +79,11 @@ class MayanAppConfig(apps.AppConfig):
class CommonApp(MayanAppConfig):
app_namespace = 'common'
app_url = ''
has_rest_api = True
has_tests = True
name = 'common'
name = 'mayan.apps.common'
verbose_name = _('Common')
def ready(self):
@@ -96,7 +98,7 @@ class CommonApp(MayanAppConfig):
app.conf.CELERYBEAT_SCHEDULE.update(
{
'task_delete_stale_uploads': {
'task': 'common.tasks.task_delete_stale_uploads',
'task': 'mayan.apps.common.tasks.task_delete_stale_uploads',
'schedule': timedelta(
seconds=DELETE_STALE_UPLOADS_INTERVAL
),
@@ -119,7 +121,7 @@ class CommonApp(MayanAppConfig):
app.conf.CELERY_ROUTES.update(
{
'common.tasks.task_delete_stale_uploads': {
'mayan.apps.common.tasks.task_delete_stale_uploads': {
'queue': 'common_periodic'
},
}
@@ -191,7 +193,7 @@ class CommonApp(MayanAppConfig):
'disable_existing_loggers': False,
'formatters': {
'intermediate': {
'format': '%(name)s <%(process)d> [%(levelname)s] "%(funcName)s() line %(lineno)d %(message)s"'
'format': '%(name)s <%(process)d> [%(levelname)s] "%(funcName)s() line %(lineno)d %(message)s"',
},
'logfile': {
'format': '%(asctime)s %(name)s <%(process)d> [%(levelname)s] "%(funcName)s() line %(lineno)d %(message)s"'

View File

@@ -12,7 +12,7 @@ except ImportError:
from django.core.files.uploadedfile import SimpleUploadedFile
from mimetype.api import get_mimetype
from mayan.apps.mimetype.api import get_mimetype
from .exceptions import NoMIMETypeMatch

View File

@@ -1,6 +1,6 @@
from __future__ import absolute_import, unicode_literals
from appearance.classes import Icon
from mayan.apps.appearance.classes import Icon
icon_about = Icon(driver_name='fontawesome', symbol='info')
icon_assign_remove_add = Icon(driver_name='fontawesome', symbol='plus')

View File

@@ -3,8 +3,8 @@ from __future__ import unicode_literals
from django.apps import apps
from django.utils.translation import ugettext_lazy as _
from navigation import Link
from navigation.classes import Separator, Text
from mayan.apps.navigation import Link
from mayan.apps.navigation.classes import Separator, Text
from .icons import (
icon_about, icon_check_version, icon_current_user_details,

View File

@@ -11,8 +11,8 @@ from django.core.management.base import CommandError
from django.utils.encoding import force_text
from django.utils.translation import ugettext_lazy as _
from common.utils import fs_cleanup
from documents.models import DocumentType
from mayan.apps.common.utils import fs_cleanup
from mayan.apps.documents.models import DocumentType
CONVERTDB_FOLDER = 'convertdb'
CONVERTDB_OUTPUT_FILENAME = 'migrate.json'

View File

@@ -2,7 +2,7 @@ from __future__ import unicode_literals
from django.utils.translation import ugettext_lazy as _
from navigation import Menu
from mayan.apps.navigation import Menu
from .icons import icon_menu_about, icon_menu_user

View File

@@ -5,7 +5,7 @@ from django.db import models, migrations
from django.conf import settings
from django.core.files.storage import FileSystemStorage
import common.models
import mayan.apps.common.models
class Migration(migrations.Migration):
@@ -77,7 +77,7 @@ class Migration(migrations.Migration):
),
(
'file', models.FileField(
upload_to=common.models.upload_to,
upload_to=mayan.apps.common.models.upload_to,
storage=FileSystemStorage(),
verbose_name='File'
)

View File

@@ -2,7 +2,7 @@
# Generated by Django 1.11.11 on 2018-04-03 07:02
from __future__ import unicode_literals
import common.models
import mayan.apps.common.models
import django.core.files.storage
from django.db import migrations, models
@@ -17,6 +17,6 @@ class Migration(migrations.Migration):
migrations.AlterField(
model_name='shareduploadedfile',
name='file',
field=models.FileField(storage=django.core.files.storage.FileSystemStorage(location=b'mayan/media/shared_files'), upload_to=common.models.upload_to, verbose_name='File'),
field=models.FileField(storage=django.core.files.storage.FileSystemStorage(location=b'mayan/media/shared_files'), upload_to=mayan.apps.common.models.upload_to, verbose_name='File'),
),
]

View File

@@ -2,7 +2,7 @@
# Generated by Django 1.11.11 on 2018-04-29 07:58
from __future__ import unicode_literals
import common.models
import mayan.apps.common.models
import django.core.files.storage
from django.db import migrations, models
@@ -17,6 +17,6 @@ class Migration(migrations.Migration):
migrations.AlterField(
model_name='shareduploadedfile',
name='file',
field=models.FileField(storage=django.core.files.storage.FileSystemStorage(location=b'/home/rosarior/development/mayan-edms/mayan/media/shared_files'), upload_to=common.models.upload_to, verbose_name='File'),
field=models.FileField(storage=django.core.files.storage.FileSystemStorage(location=b'/home/rosarior/development/mayan-edms/mayan/media/shared_files'), upload_to=mayan.apps.common.models.upload_to, verbose_name='File'),
),
]

View File

@@ -8,9 +8,8 @@ from django.http import HttpResponseRedirect
from django.shortcuts import resolve_url
from django.utils.translation import ungettext, ugettext_lazy as _
from permissions import Permission
from acls.models import AccessControlList
from mayan.apps.acls.models import AccessControlList
from mayan.apps.permissions import Permission
from .exceptions import ActionError
from .forms import DynamicForm

View File

@@ -2,7 +2,7 @@ from __future__ import absolute_import, unicode_literals
from django.utils.translation import ugettext_lazy as _
from permissions import PermissionNamespace
from mayan.apps.permissions import PermissionNamespace
namespace = PermissionNamespace('common', _('Common'))

View File

@@ -2,7 +2,7 @@ from __future__ import absolute_import, unicode_literals
from django.utils.translation import ugettext_lazy as _
from task_manager.classes import CeleryQueue
from mayan.apps.task_manager.classes import CeleryQueue
queue_default = CeleryQueue(
name='default', label=_('Default'), is_default_queue=True
@@ -12,6 +12,6 @@ queue_common_periodic = CeleryQueue(
name='common_periodic', label=_('Common periodic'), transient=True
)
queue_common_periodic.add_task_type(
name='common.tasks.task_delete_stale_uploads',
name='mayan.apps.common.tasks.task_delete_stale_uploads',
label=_('Delete stale uploads')
)

View File

@@ -7,7 +7,7 @@ from django.conf import settings
from django.utils.translation import ugettext_lazy as _
import mayan
from smart_settings import Namespace
from mayan.apps.smart_settings import Namespace
namespace = Namespace(name='common', label=_('Common'))

View File

@@ -4,10 +4,10 @@ from django.test import TestCase
from django_downloadview import assert_download_response
from acls.tests.mixins import ACLTestCaseMixin
from permissions.classes import Permission
from smart_settings.classes import Namespace
from user_management.tests.mixins import UserTestCaseMixin
from mayan.apps.acls.tests.mixins import ACLTestCaseMixin
from mayan.apps.permissions.classes import Permission
from mayan.apps.smart_settings.classes import Namespace
from mayan.apps.user_management.tests.mixins import UserTestCaseMixin
from .mixins import (
ClientMethodsTestCaseMixin, ContentTypeCheckTestCaseMixin,

View File

@@ -3,7 +3,7 @@ from __future__ import unicode_literals
from django.urls import reverse
from django.test import override_settings
from rest_api.tests import BaseAPITestCase
from mayan.apps.rest_api.tests import BaseAPITestCase
from ..classes import Template

View File

@@ -1,6 +1,6 @@
from __future__ import unicode_literals
from common.tests import BaseTestCase
from mayan.apps.common.tests import BaseTestCase
from ..compressed_files import Archive, TarArchive, ZipArchive

View File

@@ -1,7 +1,7 @@
from __future__ import unicode_literals
from common.tests import BaseTestCase
from user_management.tests.mixins import UserTestMixin
from mayan.apps.common.tests import BaseTestCase
from mayan.apps.user_management.tests.mixins import UserTestMixin
class UserLocaleProfileTestCase(UserTestMixin, BaseTestCase):

View File

@@ -3,7 +3,7 @@ from __future__ import absolute_import, unicode_literals
from django.contrib.auth import get_user_model
from django.contrib.contenttypes.models import ContentType
from acls import ModelPermission
from mayan.apps.acls import ModelPermission
from ..models import ErrorLogEntry
from ..permissions_runtime import permission_error_log_view

View File

@@ -16,8 +16,8 @@ from django.utils.http import (
from django.utils.six.moves import reduce as reduce_function, xmlrpc_client
from django.utils.translation import ugettext_lazy as _
from common.compat import dict_type, dictionary_type
import mayan
from mayan.apps.common.compat import dict_type, dictionary_type
from .exceptions import NotLatestVersion, UnknownLatestVersion
from .literals import DJANGO_SQLITE_BACKEND, MAYAN_PYPI_NAME, PYPI_URL

View File

@@ -14,7 +14,7 @@ from django.utils.http import urlencode
from django.utils.translation import ugettext_lazy as _
from django.views.generic import RedirectView, TemplateView
from acls.models import AccessControlList
from mayan.apps.acls.models import AccessControlList
from .exceptions import NotLatestVersion, UnknownLatestVersion
from .forms import (

View File

@@ -6,4 +6,4 @@ from .transformations import ( # NOQA
TransformationZoom
)
default_app_config = 'converter.apps.ConverterApp'
default_app_config = 'mayan.apps.converter.apps.ConverterApp'

View File

@@ -3,9 +3,8 @@ from __future__ import unicode_literals
from django.utils.encoding import force_text
from django.utils.translation import ugettext_lazy as _
from common import MayanAppConfig, menu_object, menu_sidebar
from navigation import SourceColumn
from mayan.apps.common import MayanAppConfig, menu_object, menu_sidebar
from mayan.apps.navigation import SourceColumn
from .links import (
link_transformation_create, link_transformation_delete,
@@ -15,8 +14,10 @@ from .licenses import * # NOQA
class ConverterApp(MayanAppConfig):
app_namespace = 'converter'
app_url = 'converter'
has_tests = True
name = 'converter'
name = 'mayan.apps.converter'
verbose_name = _('Converter')
def ready(self):

View File

@@ -12,7 +12,7 @@ import yaml
from django.utils.encoding import force_text
from django.utils.translation import ugettext_lazy as _
from common.utils import fs_cleanup, mkstemp
from mayan.apps.common.utils import fs_cleanup, mkstemp
from ..classes import ConverterBase
from ..exceptions import PageCountError

View File

@@ -11,9 +11,9 @@ import yaml
from django.utils.translation import ugettext_lazy as _
from common.settings import setting_temporary_directory
from common.utils import fs_cleanup, mkdtemp, mkstemp
from mimetype.api import get_mimetype
from mayan.apps.common.settings import setting_temporary_directory
from mayan.apps.common.utils import fs_cleanup, mkdtemp, mkstemp
from mayan.apps.mimetype.api import get_mimetype
from .exceptions import InvalidOfficeFormat, OfficeConversionError
from .literals import (

View File

@@ -1,6 +1,6 @@
from __future__ import absolute_import, unicode_literals
from appearance.classes import Icon
from mayan.apps.appearance.classes import Icon
icon_transformation = Icon(driver_name='fontawesome', symbol='crop')
icon_transformation_create = Icon(driver_name='fontawesome', symbol='plus')

View File

@@ -1,6 +1,6 @@
from __future__ import unicode_literals
from common.classes import Package
from mayan.apps.common.classes import Package
Package(label='Pillow', license_text='''
The Python Imaging Library (PIL) is

View File

@@ -3,7 +3,7 @@ from __future__ import unicode_literals
from django.apps import apps
from django.utils.translation import ugettext_lazy as _
from navigation import Link
from mayan.apps.navigation import Link
from .icons import icon_transformation, icon_transformation_create
from .permissions import (

View File

@@ -2,7 +2,8 @@
from __future__ import unicode_literals
from django.db import models, migrations
import converter.models
import mayan.apps.converter.models
class Migration(migrations.Migration):
@@ -40,7 +41,7 @@ class Migration(migrations.Migration):
(
'arguments', models.TextField(
blank=True, null=True, verbose_name='Arguments',
validators=[converter.validators.YAMLValidator]
validators=[mayan.apps.converter.validators.YAMLValidator]
)
),
(

View File

@@ -2,7 +2,8 @@
from __future__ import unicode_literals
from django.db import models, migrations
import converter.validators
import mayan.apps.converter.validators
class Migration(migrations.Migration):
@@ -19,7 +20,7 @@ class Migration(migrations.Migration):
default='', help_text='Enter the arguments for the '
'transformation as a YAML dictionary. ie: {"degrees": 180}',
blank=True, verbose_name='Arguments', validators=[
converter.validators.YAMLValidator
mayan.apps.converter.validators.YAMLValidator
]
),
preserve_default=False,

View File

@@ -2,7 +2,8 @@
from __future__ import unicode_literals
from django.db import models, migrations
import converter.validators
import mayan.apps.converter.validators
class Migration(migrations.Migration):
@@ -19,7 +20,7 @@ class Migration(migrations.Migration):
help_text='Enter the arguments for the transformation as a '
'YAML dictionary. ie: {"degrees": 180}',
blank=True, verbose_name='Arguments',
validators=[converter.validators.YAMLValidator()]
validators=[mayan.apps.converter.validators.YAMLValidator()]
),
preserve_default=True,
),

Some files were not shown because too many files have changed in this diff Show More