Projet

Général

Profil

0001-base-load-urls.py-from-generic-connectors-apps-46611.patch

Nicolas Roche, 17 septembre 2020 16:27

Télécharger (3,61 ko)

Voir les différences:

Subject: [PATCH] base: load urls.py from generic connectors apps (#46611)

 passerelle/plugins.py | 47 +++++++++++++++++++++++--------------------
 1 file changed, 25 insertions(+), 22 deletions(-)
passerelle/plugins.py
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
-