diff --git a/HISTORY.rst b/HISTORY.rst index 2bf1504909..256120f78e 100644 --- a/HISTORY.rst +++ b/HISTORY.rst @@ -129,6 +129,8 @@ now get the permission inheritance from their base models. - Update common.http.URL to allow passing a query dictionary. - Add the document template sandbox feature. +- Auto-import dependecies. No need to use: + from .dependencies import * # NOQA 3.2.9 (2019-11-03) ================== diff --git a/mayan/apps/appearance/apps.py b/mayan/apps/appearance/apps.py index cd345d4acb..dbd480a203 100644 --- a/mayan/apps/appearance/apps.py +++ b/mayan/apps/appearance/apps.py @@ -4,8 +4,6 @@ from django.utils.translation import ugettext_lazy as _ from mayan.apps.common.apps import MayanAppConfig -from .dependencies import * # NOQA - class AppearanceApp(MayanAppConfig): name = 'mayan.apps.appearance' diff --git a/mayan/apps/autoadmin/apps.py b/mayan/apps/autoadmin/apps.py index e1224fef9f..18596da92a 100644 --- a/mayan/apps/autoadmin/apps.py +++ b/mayan/apps/autoadmin/apps.py @@ -6,7 +6,6 @@ from django.utils.translation import ugettext_lazy as _ from mayan.apps.common.apps import MayanAppConfig -from .dependencies import * # NOQA from .handlers import handler_auto_admin_account_password_change diff --git a/mayan/apps/cabinets/apps.py b/mayan/apps/cabinets/apps.py index 6011bd4874..65c3955067 100644 --- a/mayan/apps/cabinets/apps.py +++ b/mayan/apps/cabinets/apps.py @@ -18,7 +18,6 @@ from mayan.apps.events.permissions import permission_events_view from mayan.apps.documents.search import document_page_search, document_search from mayan.apps.navigation.classes import SourceColumn -from .dependencies import * # NOQA from .events import ( event_cabinet_edited, event_cabinet_add_document, event_cabinet_remove_document diff --git a/mayan/apps/common/apps.py b/mayan/apps/common/apps.py index d8031940fd..2ba24c0688 100644 --- a/mayan/apps/common/apps.py +++ b/mayan/apps/common/apps.py @@ -16,7 +16,6 @@ from django.utils.module_loading import import_string from django.utils.translation import ugettext_lazy as _ from .classes import Template -from .dependencies import * # NOQA from .handlers import ( handler_pre_initial_setup, handler_pre_upgrade, handler_user_locale_profile_session_config, handler_user_locale_profile_create diff --git a/mayan/apps/converter/apps.py b/mayan/apps/converter/apps.py index 03e366c9e9..b8921a96c3 100644 --- a/mayan/apps/converter/apps.py +++ b/mayan/apps/converter/apps.py @@ -8,7 +8,6 @@ from mayan.apps.common.apps import MayanAppConfig from mayan.apps.common.menus import menu_object, menu_secondary from mayan.apps.navigation.classes import SourceColumn -from .dependencies import * # NOQA from .links import ( link_transformation_delete, link_transformation_edit, link_transformation_select diff --git a/mayan/apps/dependencies/apps.py b/mayan/apps/dependencies/apps.py index 8fb528921f..35000e2c3f 100644 --- a/mayan/apps/dependencies/apps.py +++ b/mayan/apps/dependencies/apps.py @@ -10,7 +10,6 @@ from mayan.apps.common.html_widgets import TwoStateWidget from mayan.apps.navigation.classes import SourceColumn from .classes import Dependency, DependencyGroup, DependencyGroupEntry -from .dependencies import * # NOQA from .links import ( link_check_version, link_dependency_group_entry_detail, link_dependency_group_entry_list, link_dependency_group_list, @@ -29,6 +28,8 @@ class DependenciesApp(MayanAppConfig): def ready(self): super(DependenciesApp, self).ready() + Dependency.initialize() + SourceColumn( attribute='get_label', label=_('Label'), order=-1, source=Dependency ) diff --git a/mayan/apps/dependencies/classes.py b/mayan/apps/dependencies/classes.py index 95caf74d12..02d3f07bb9 100644 --- a/mayan/apps/dependencies/classes.py +++ b/mayan/apps/dependencies/classes.py @@ -2,6 +2,8 @@ from __future__ import print_function, unicode_literals import fileinput import json +from importlib import import_module +import logging import pkg_resources import shutil import sys @@ -158,6 +160,18 @@ class DependencyGroupEntry(object): class Dependency(object): _registry = {} + @staticmethod + def initialize(): + for app in apps.get_app_configs(): + try: + import_module('{}.dependencies'.format(app.name)) + except ImportError as exception: + if force_text(exception) not in ('No module named dependencies', 'No module named \'{}.dependencies\''.format(app.name)): + logger.error( + 'Error importing %s dependencies.py file; %s', app.name, + exception + ) + @staticmethod def return_sorted(dependencies): return sorted(dependencies, key=lambda x: x.get_label()) diff --git a/mayan/apps/django_gpg/apps.py b/mayan/apps/django_gpg/apps.py index 2d877d5405..1bfd48d2e7 100644 --- a/mayan/apps/django_gpg/apps.py +++ b/mayan/apps/django_gpg/apps.py @@ -12,7 +12,6 @@ from mayan.apps.common.menus import ( from mayan.apps.navigation.classes import SourceColumn from .classes import KeyStub -from .dependencies import * # NOQA from .links import ( link_key_delete, link_key_detail, link_key_download, link_key_query, link_key_receive, link_key_setup, link_key_upload, link_private_keys, diff --git a/mayan/apps/document_parsing/apps.py b/mayan/apps/document_parsing/apps.py index ea4355c5a8..9bfe42fd2c 100644 --- a/mayan/apps/document_parsing/apps.py +++ b/mayan/apps/document_parsing/apps.py @@ -17,7 +17,6 @@ from mayan.apps.documents.signals import post_version_upload from mayan.apps.events.classes import ModelEventType from mayan.apps.navigation.classes import SourceColumn -from .dependencies import * # NOQA from .events import ( event_parsing_document_content_deleted, event_parsing_document_version_submit, diff --git a/mayan/apps/document_states/apps.py b/mayan/apps/document_states/apps.py index 043410a807..dc8b8073e8 100644 --- a/mayan/apps/document_states/apps.py +++ b/mayan/apps/document_states/apps.py @@ -23,7 +23,6 @@ from mayan.apps.navigation.classes import SourceColumn from .classes import DocumentStateHelper, WorkflowAction from .events import event_workflow_edited -from .dependencies import * # NOQA from .handlers import ( handler_create_workflow_image_cache, handler_index_document, handler_launch_workflow, handler_trigger_transition diff --git a/mayan/apps/events/apps.py b/mayan/apps/events/apps.py index 046f98968b..6db9ecadd9 100644 --- a/mayan/apps/events/apps.py +++ b/mayan/apps/events/apps.py @@ -10,7 +10,6 @@ from mayan.apps.common.menus import ( ) from mayan.apps.navigation.classes import SourceColumn -from .dependencies import * # NOQA from .html_widgets import ( ObjectLinkWidget, widget_event_actor_link, widget_event_type_link ) diff --git a/mayan/apps/file_metadata/apps.py b/mayan/apps/file_metadata/apps.py index a9830d467d..5bae454af2 100644 --- a/mayan/apps/file_metadata/apps.py +++ b/mayan/apps/file_metadata/apps.py @@ -18,7 +18,6 @@ from mayan.apps.events.classes import ModelEventType from mayan.apps.navigation.classes import SourceColumn from .classes import FileMetadataHelper -from .dependencies import * # NOQA from .drivers import * # NOQA from .events import ( event_file_metadata_document_version_finish, diff --git a/mayan/apps/mayan_statistics/apps.py b/mayan/apps/mayan_statistics/apps.py index 3c6880e3c0..e155abccbd 100644 --- a/mayan/apps/mayan_statistics/apps.py +++ b/mayan/apps/mayan_statistics/apps.py @@ -7,7 +7,6 @@ from mayan.apps.common.menus import menu_object, menu_secondary, menu_tools from mayan.apps.navigation.classes import SourceColumn from .classes import StatisticLineChart, StatisticNamespace -from .dependencies import * # NOQA from .links import ( link_execute, link_namespace_details, link_namespace_list, link_statistics, link_view diff --git a/mayan/apps/metadata/apps.py b/mayan/apps/metadata/apps.py index 44fd6bb546..1a3a988bd7 100644 --- a/mayan/apps/metadata/apps.py +++ b/mayan/apps/metadata/apps.py @@ -26,7 +26,6 @@ from mayan.apps.events.permissions import permission_events_view from mayan.apps.navigation.classes import SourceColumn from .classes import DocumentMetadataHelper -from .dependencies import * # NOQA from .events import ( event_document_metadata_added, event_document_metadata_edited, event_document_metadata_removed, event_metadata_type_edited, diff --git a/mayan/apps/mimetype/apps.py b/mayan/apps/mimetype/apps.py index 65fec9814e..0d1fd111b1 100644 --- a/mayan/apps/mimetype/apps.py +++ b/mayan/apps/mimetype/apps.py @@ -4,8 +4,6 @@ from django.utils.translation import ugettext_lazy as _ from mayan.apps.common.apps import MayanAppConfig -from .dependencies import * # NOQA - class MIMETypesApp(MayanAppConfig): name = 'mayan.apps.mimetype' diff --git a/mayan/apps/mirroring/apps.py b/mayan/apps/mirroring/apps.py index 81d894c3b0..e0594bec7b 100644 --- a/mayan/apps/mirroring/apps.py +++ b/mayan/apps/mirroring/apps.py @@ -6,7 +6,6 @@ from django.utils.translation import ugettext_lazy as _ from mayan.apps.common.apps import MayanAppConfig -from .dependencies import * # NOQA from .handlers import handler_document_cache_delete, handler_node_cache_delete diff --git a/mayan/apps/ocr/apps.py b/mayan/apps/ocr/apps.py index 33b4f1893b..a47736d204 100644 --- a/mayan/apps/ocr/apps.py +++ b/mayan/apps/ocr/apps.py @@ -17,7 +17,6 @@ from mayan.apps.documents.signals import post_version_upload from mayan.apps.events.classes import ModelEventType from mayan.apps.navigation.classes import SourceColumn -from .dependencies import * # NOQA from .events import ( event_ocr_document_content_deleted, event_ocr_document_version_finish, event_ocr_document_version_submit diff --git a/mayan/apps/redactions/apps.py b/mayan/apps/redactions/apps.py index a7460b817d..f912c73ec9 100644 --- a/mayan/apps/redactions/apps.py +++ b/mayan/apps/redactions/apps.py @@ -9,7 +9,6 @@ from mayan.apps.common.apps import MayanAppConfig from mayan.apps.converter.links import link_transformation_list from mayan.apps.common.menus import menu_list_facet -from .dependencies import * # NOQA from .layers import layer_redactions from .transformations import * # NOQA diff --git a/mayan/apps/rest_api/apps.py b/mayan/apps/rest_api/apps.py index 9601345e20..49c61b2c9c 100644 --- a/mayan/apps/rest_api/apps.py +++ b/mayan/apps/rest_api/apps.py @@ -8,7 +8,6 @@ from django.utils.translation import ugettext_lazy as _ from mayan.apps.common.apps import MayanAppConfig from mayan.apps.common.menus import menu_tools -from .dependencies import * # NOQA from .links import ( link_api, link_api_documentation, link_api_documentation_redoc ) diff --git a/mayan/apps/sources/apps.py b/mayan/apps/sources/apps.py index bd86e07bd6..3f19abcab9 100644 --- a/mayan/apps/sources/apps.py +++ b/mayan/apps/sources/apps.py @@ -15,7 +15,6 @@ from mayan.apps.documents.signals import post_version_upload from mayan.apps.navigation.classes import SourceColumn from .classes import StagingFile -from .dependencies import * # NOQA from .handlers import ( handler_copy_transformations_to_version, handler_create_default_document_source, handler_initialize_periodic_tasks diff --git a/mayan/apps/tags/apps.py b/mayan/apps/tags/apps.py index c64811558a..172e27c7ce 100644 --- a/mayan/apps/tags/apps.py +++ b/mayan/apps/tags/apps.py @@ -21,7 +21,6 @@ from mayan.apps.events.links import ( from mayan.apps.events.permissions import permission_events_view from mayan.apps.navigation.classes import SourceColumn -from .dependencies import * # NOQA from .events import ( event_tag_attach, event_tag_edited, event_tag_remove ) diff --git a/mayan/apps/task_manager/apps.py b/mayan/apps/task_manager/apps.py index 4ae48a9e48..51044d3c52 100644 --- a/mayan/apps/task_manager/apps.py +++ b/mayan/apps/task_manager/apps.py @@ -8,7 +8,6 @@ from mayan.apps.common.menus import menu_tools from mayan.apps.navigation.classes import SourceColumn from .classes import CeleryQueue, Task -from .dependencies import * # NOQA from .links import link_task_manager from .settings import * # NOQA diff --git a/mayan/apps/task_manager/settings.py b/mayan/apps/task_manager/settings.py index bcf273262f..5fdfb01f21 100644 --- a/mayan/apps/task_manager/settings.py +++ b/mayan/apps/task_manager/settings.py @@ -4,7 +4,7 @@ from django.utils.translation import ugettext_lazy as _ from mayan.apps.smart_settings.classes import Namespace -# Don't import anything on start import, we just want to make it easy +# Don't import anything on star import, we just want to make it easy # for apps.py to activate the settings in this module. __all__ = () namespace = Namespace(label=_('Celery'), name='celery')