22 |
22 |
|
23 |
23 |
def register_apps_urls(urlpatterns):
|
24 |
24 |
'''Call get_before_urls and get_after_urls on all apps providing them,
|
25 |
25 |
add those urls to the given urlpatterns (before or after).
|
26 |
26 |
'''
|
27 |
27 |
before_urls = []
|
28 |
28 |
after_urls = []
|
29 |
29 |
for app in apps.get_app_configs():
|
30 |
|
if hasattr(app, 'get_before_urls') or hasattr(app, 'get_after_urls'):
|
31 |
|
if hasattr(app, 'get_before_urls'):
|
32 |
|
urls = app.get_before_urls()
|
|
30 |
if not hasattr(app, 'get_connector_model'):
|
|
31 |
continue
|
|
32 |
connector_model = app.get_connector_model()
|
|
33 |
connector_slug = connector_model.get_connector_slug()
|
|
34 |
for obj in (connector_model, app):
|
|
35 |
if hasattr(obj, 'get_before_urls') or hasattr(obj, 'get_after_urls'):
|
|
36 |
if hasattr(obj, 'get_before_urls'):
|
|
37 |
urls = obj.get_before_urls()
|
|
38 |
if urls:
|
|
39 |
before_urls.append(url('^', include(urls)))
|
|
40 |
if hasattr(obj, 'get_after_urls'):
|
|
41 |
urls = obj.get_after_urls()
|
|
42 |
if urls:
|
|
43 |
after_urls.append(url('^', include(urls)))
|
|
44 |
elif hasattr(obj, 'get_urls'):
|
|
45 |
url_prefix = '^%s/' % connector_slug
|
|
46 |
urls = obj.get_urls()
|
33 |
47 |
if urls:
|
34 |
|
before_urls.append(url('^', include(urls)))
|
35 |
|
if hasattr(app, 'get_after_urls'):
|
36 |
|
urls = app.get_after_urls()
|
|
48 |
urls = required(app_enabled(app.label), urls)
|
|
49 |
after_urls.append(url(url_prefix, include(urls), kwargs={'connector': connector_slug}))
|
|
50 |
if hasattr(obj, 'get_management_urls'):
|
|
51 |
url_prefix = '^manage/%s/' % connector_slug
|
|
52 |
urls = obj.get_management_urls()
|
37 |
53 |
if urls:
|
38 |
|
after_urls.append(url('^', include(urls)))
|
39 |
|
elif hasattr(app, 'get_urls'):
|
40 |
|
connector_slug = app.get_connector_model().get_connector_slug()
|
41 |
|
url_prefix = '^%s/' % connector_slug
|
42 |
|
urls = app.get_urls()
|
43 |
|
if urls:
|
44 |
|
urls = required(app_enabled(app.label), urls)
|
45 |
|
after_urls.append(url(url_prefix, include(urls), kwargs={'connector': connector_slug}))
|
46 |
|
if hasattr(app, 'get_management_urls'):
|
47 |
|
connector_slug = app.get_connector_model().get_connector_slug()
|
48 |
|
url_prefix = '^manage/%s/' % connector_slug
|
49 |
|
urls = app.get_management_urls()
|
50 |
|
if urls:
|
51 |
|
urls = required(app_enabled(app.label), urls)
|
52 |
|
urls = required(manager_required, urls)
|
53 |
|
after_urls.append(url(url_prefix, include(urls), kwargs={'connector': connector_slug}))
|
|
54 |
urls = required(app_enabled(app.label), urls)
|
|
55 |
urls = required(manager_required, urls)
|
|
56 |
after_urls.append(url(url_prefix, include(urls), kwargs={'connector': connector_slug}))
|
54 |
57 |
|
55 |
58 |
return before_urls + urlpatterns + after_urls
|
56 |
|
-
|