32 lines
1.1 KiB
Python
32 lines
1.1 KiB
Python
import os
|
|
from django.conf.urls import url, include
|
|
|
|
from .api import DjangoProjectHooksConfig
|
|
|
|
|
|
def get_installed_apps(file_path, installed_apps):
|
|
settings_dir = os.path.dirname(os.path.abspath(file_path))
|
|
config = DjangoProjectHooksConfig(settings_dir=settings_dir)
|
|
app_list = installed_apps[:]
|
|
for wanting_app in config:
|
|
wanted_apps = config[wanting_app].get('INSTALLED_APPS', [])
|
|
for wanted_app in wanted_apps:
|
|
if wanted_app not in app_list:
|
|
app_list.append(wanted_app)
|
|
return app_list
|
|
|
|
|
|
def get_urlpatterns(file_path, urlpatterns):
|
|
settings_dir = os.path.dirname(os.path.abspath(file_path))
|
|
config = DjangoProjectHooksConfig(settings_dir=settings_dir)
|
|
urls_list = urlpatterns[:]
|
|
for app in config:
|
|
if 'MOUNT' in config[app]:
|
|
route, urlconf_module = config[app]['MOUNT']
|
|
pattern = '^{}/'.format(route)
|
|
if urlconf_module.startswith('.'):
|
|
urlconf_module = '{}{}'.format(app, urlconf_module)
|
|
url_obj = url(pattern, include(urlconf_module))
|
|
urls_list.append(url_obj)
|
|
return urls_list
|