31
src/django_deploy/hooks.py
Normal file
31
src/django_deploy/hooks.py
Normal file
@@ -0,0 +1,31 @@
|
||||
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
|
||||
Reference in New Issue
Block a user