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

@@ -7,31 +7,31 @@ from kombu import Exchange, Queue
from django.db.models.signals import post_delete
from django.utils.translation import ugettext_lazy as _
from acls import ModelPermission
from acls.links import link_acl_list
from acls.permissions import permission_acl_edit, permission_acl_view
from common import (
from mayan.apps.acls import ModelPermission
from mayan.apps.acls.links import link_acl_list
from mayan.apps.acls.permissions import permission_acl_edit, permission_acl_view
from mayan.apps.common import (
MayanAppConfig, MissingItem, menu_facet, menu_main, menu_object,
menu_secondary, menu_setup, menu_sidebar, menu_multi_item, menu_tools
)
from common.classes import ModelField
from common.dashboards import dashboard_main
from common.signals import post_initial_setup
from common.widgets import TwoStateWidget
from converter.links import link_transformation_list
from converter.permissions import (
from mayan.apps.common.classes import ModelField
from mayan.apps.common.dashboards import dashboard_main
from mayan.apps.common.signals import post_initial_setup
from mayan.apps.common.widgets import TwoStateWidget
from mayan.apps.converter.links import link_transformation_list
from mayan.apps.converter.permissions import (
permission_transformation_create,
permission_transformation_delete, permission_transformation_edit,
permission_transformation_view,
)
from events import ModelEventType
from events.links import (
from mayan.apps.events import ModelEventType
from mayan.apps.events.links import (
link_events_for_object, link_object_event_types_user_subcriptions_list,
)
from events.permissions import permission_events_view
from mayan.apps.events.permissions import permission_events_view
from mayan.apps.navigation import SourceColumn
from mayan.apps.rest_api.fields import DynamicSerializerField
from mayan.celery import app
from navigation import SourceColumn
from rest_api.fields import DynamicSerializerField
from .dashboard_widgets import (
DashboardWidgetDocumentPagesTotal, DashboardWidgetDocumentsInTrash,
@@ -109,9 +109,11 @@ from .widgets import (
class DocumentsApp(MayanAppConfig):
app_namespace = 'documents'
app_url = 'documents'
has_rest_api = True
has_tests = True
name = 'documents'
name = 'mayan.apps.documents'
verbose_name = _('Documents')
def ready(self):
@@ -129,7 +131,7 @@ class DocumentsApp(MayanAppConfig):
DynamicSerializerField.add_serializer(
klass=Document,
serializer_class='documents.serializers.DocumentSerializer'
serializer_class='mayan.apps.documents.serializers.DocumentSerializer'
)
MissingItem(
@@ -334,17 +336,17 @@ class DocumentsApp(MayanAppConfig):
app.conf.CELERYBEAT_SCHEDULE.update(
{
'task_check_delete_periods': {
'task': 'documents.tasks.task_check_delete_periods',
'task': 'mayan.apps.documents.tasks.task_check_delete_periods',
'schedule': timedelta(
seconds=CHECK_DELETE_PERIOD_INTERVAL
),
},
'task_check_trash_periods': {
'task': 'documents.tasks.task_check_trash_periods',
'task': 'mayan.apps.documents.tasks.task_check_trash_periods',
'schedule': timedelta(seconds=CHECK_TRASH_PERIOD_INTERVAL),
},
'task_delete_stubs': {
'task': 'documents.tasks.task_delete_stubs',
'task': 'mayan.apps.documents.tasks.task_delete_stubs',
'schedule': timedelta(seconds=DELETE_STALE_STUBS_INTERVAL),
},
}
@@ -369,37 +371,37 @@ class DocumentsApp(MayanAppConfig):
app.conf.CELERY_ROUTES.update(
{
'documents.tasks.task_check_delete_periods': {
'mayan.apps.documents.tasks.task_check_delete_periods': {
'queue': 'documents_periodic'
},
'documents.tasks.task_check_trash_periods': {
'mayan.apps.documents.tasks.task_check_trash_periods': {
'queue': 'documents_periodic'
},
'documents.tasks.task_clean_empty_duplicate_lists': {
'mayan.apps.documents.tasks.task_clean_empty_duplicate_lists': {
'queue': 'documents'
},
'documents.tasks.task_clear_image_cache': {
'mayan.apps.documents.tasks.task_clear_image_cache': {
'queue': 'tools'
},
'documents.tasks.task_delete_document': {
'mayan.apps.documents.tasks.task_delete_document': {
'queue': 'documents'
},
'documents.tasks.task_delete_stubs': {
'mayan.apps.documents.tasks.task_delete_stubs': {
'queue': 'documents_periodic'
},
'documents.tasks.task_generate_document_page_image': {
'mayan.apps.documents.tasks.task_generate_document_page_image': {
'queue': 'converter'
},
'documents.tasks.task_scan_duplicates_all': {
'mayan.apps.documents.tasks.task_scan_duplicates_all': {
'queue': 'tools'
},
'documents.tasks.task_scan_duplicates_for': {
'mayan.apps.documents.tasks.task_scan_duplicates_for': {
'queue': 'uploads'
},
'documents.tasks.task_update_page_count': {
'mayan.apps.documents.tasks.task_update_page_count': {
'queue': 'uploads'
},
'documents.tasks.task_upload_new_version': {
'mayan.apps.documents.tasks.task_upload_new_version': {
'queue': 'uploads'
},
}