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:
@@ -1,3 +1,3 @@
|
||||
from __future__ import unicode_literals
|
||||
|
||||
default_app_config = 'rest_api.apps.RESTAPIApp'
|
||||
default_app_config = 'mayan.apps.rest_api.apps.RESTAPIApp'
|
||||
|
||||
@@ -5,7 +5,7 @@ from django.conf import settings
|
||||
from django.utils.module_loading import import_string
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
|
||||
from common import MayanAppConfig, menu_tools
|
||||
from mayan.apps.common import MayanAppConfig, menu_tools
|
||||
|
||||
from .links import (
|
||||
link_api, link_api_documentation, link_api_documentation_redoc
|
||||
@@ -15,7 +15,8 @@ from .licenses import * # NOQA
|
||||
|
||||
class RESTAPIApp(MayanAppConfig):
|
||||
app_url = 'api'
|
||||
name = 'rest_api'
|
||||
app_namespace = 'rest_api'
|
||||
name = 'mayan.apps.rest_api'
|
||||
verbose_name = _('REST API')
|
||||
|
||||
def ready(self):
|
||||
@@ -31,5 +32,5 @@ class RESTAPIApp(MayanAppConfig):
|
||||
|
||||
for app in apps.get_app_configs():
|
||||
if getattr(app, 'has_rest_api', False):
|
||||
app_api_urls = import_string('{}.urls.api_urls'.format(app.label))
|
||||
app_api_urls = import_string('{}.urls.api_urls'.format(app.name))
|
||||
api_urls.extend(app_api_urls)
|
||||
|
||||
@@ -2,7 +2,7 @@ from __future__ import absolute_import, unicode_literals
|
||||
|
||||
from rest_framework.filters import BaseFilterBackend
|
||||
|
||||
from acls.models import AccessControlList
|
||||
from mayan.apps.acls.models import AccessControlList
|
||||
|
||||
|
||||
class MayanObjectPermissionsFilter(BaseFilterBackend):
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
from __future__ import absolute_import, unicode_literals
|
||||
|
||||
from appearance.classes import Icon
|
||||
from mayan.apps.appearance.classes import Icon
|
||||
|
||||
icon_api = Icon(driver_name='fontawesome', symbol='plug')
|
||||
icon_api_documentation = Icon(driver_name='fontawesome', symbol='book')
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from common.classes import Package
|
||||
from mayan.apps.common.classes import Package
|
||||
|
||||
Package(label='Django REST framework', license_text='''
|
||||
Copyright (c) 2011-2015, Tom Christie All rights reserved.
|
||||
|
||||
@@ -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_api, icon_api_documentation, icon_api_documentation_redoc
|
||||
|
||||
@@ -6,8 +6,8 @@ from django.core.exceptions import PermissionDenied
|
||||
|
||||
from rest_framework.permissions import BasePermission
|
||||
|
||||
from acls.models import AccessControlList
|
||||
from permissions import Permission
|
||||
from mayan.apps.acls.models import AccessControlList
|
||||
from mayan.apps.permissions import Permission
|
||||
|
||||
|
||||
class MayanPermission(BasePermission):
|
||||
|
||||
@@ -4,8 +4,8 @@ from django.utils.translation import ugettext_lazy as _
|
||||
|
||||
from drf_yasg import openapi
|
||||
|
||||
from common.settings import setting_project_title
|
||||
import mayan
|
||||
from mayan.apps.common.settings import setting_project_title
|
||||
|
||||
openapi_info = openapi.Info(
|
||||
title=_('%s API') % setting_project_title.value,
|
||||
|
||||
@@ -2,9 +2,9 @@ from __future__ import absolute_import, unicode_literals
|
||||
|
||||
from rest_framework.test import APITestCase
|
||||
|
||||
from common.tests import GenericViewTestCase
|
||||
from permissions.classes import Permission
|
||||
from smart_settings.classes import Namespace
|
||||
from mayan.apps.common.tests import GenericViewTestCase
|
||||
from mayan.apps.permissions.classes import Permission
|
||||
from mayan.apps.smart_settings.classes import Namespace
|
||||
|
||||
|
||||
class BaseAPITestCase(APITestCase, GenericViewTestCase):
|
||||
|
||||
Reference in New Issue
Block a user