diff --git a/HISTORY.rst b/HISTORY.rst index 29860aa690..73a7181ca5 100644 --- a/HISTORY.rst +++ b/HISTORY.rst @@ -1,3 +1,9 @@ +3.2.10 (2019-XX-XX) +=================== +- Auto-import dependecies. No need to use: + from .dependencies import * # NOQA + + 3.2.9 (2019-11-03) ================== - Move IMAPMockServer to its own module. 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 fffbd109f3..dc37935ae2 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 af8a668c6f..c13c7239e0 100644 --- a/mayan/apps/converter/apps.py +++ b/mayan/apps/converter/apps.py @@ -7,7 +7,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_create, link_transformation_delete, link_transformation_edit 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 f481252e8b..c53b44b927 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 84625d9072..4e69e0d474 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_index_document, handler_launch_workflow, handler_trigger_transition ) diff --git a/mayan/apps/events/apps.py b/mayan/apps/events/apps.py index 164f301131..418cf2371c 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 1636761ca8..6b21094c7c 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/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 f74954b481..3ad959da42 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 52a8985982..6c5840883a 100644 --- a/mayan/apps/task_manager/apps.py +++ b/mayan/apps/task_manager/apps.py @@ -8,12 +8,12 @@ from mayan.apps.common.menus import menu_object, menu_secondary, menu_tools from mayan.apps.navigation.classes import SourceColumn from .classes import CeleryQueue, Task -from .dependencies import * # NOQA from .links import ( link_queue_list, link_queue_active_task_list, link_queue_scheduled_task_list, link_queue_reserved_task_list, link_task_manager ) +from .links import link_task_manager class TaskManagerApp(MayanAppConfig):