11 |
11 |
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
12 |
12 |
# GNU Affero General Public License for more details.
|
13 |
13 |
#
|
14 |
14 |
# You should have received a copy of the GNU Affero General Public License
|
15 |
15 |
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
16 |
16 |
|
17 |
17 |
from django.apps import apps
|
18 |
18 |
from django.conf.urls import include, url
|
|
19 |
from django.utils.module_loading import import_string
|
19 |
20 |
|
20 |
21 |
from .urls_utils import decorated_includes, required, app_enabled, manager_required
|
21 |
22 |
|
22 |
23 |
|
23 |
24 |
def register_apps_urls(urlpatterns):
|
24 |
25 |
'''Call get_before_urls and get_after_urls on all apps providing them,
|
25 |
26 |
add those urls to the given urlpatterns (before or after).
|
26 |
27 |
'''
|
... | ... | |
47 |
48 |
connector_slug = app.get_connector_model().get_connector_slug()
|
48 |
49 |
url_prefix = '^manage/%s/' % connector_slug
|
49 |
50 |
urls = app.get_management_urls()
|
50 |
51 |
if urls:
|
51 |
52 |
urls = required(app_enabled(app.label), urls)
|
52 |
53 |
urls = required(manager_required, urls)
|
53 |
54 |
after_urls.append(url(url_prefix, include(urls), kwargs={'connector': connector_slug}))
|
54 |
55 |
|
|
56 |
# also load URLS from a potential inherited connector abstraction apps (like sms)
|
|
57 |
from passerelle.base.models import BaseResource
|
|
58 |
base_model = app.get_connector_model().__base__
|
|
59 |
if base_model != BaseResource and issubclass(base_model, BaseResource):
|
|
60 |
name = '.'.join(base_model.__module__.split('.')[:-1])
|
|
61 |
try:
|
|
62 |
urls = import_string('%s.urls.management_urlpatterns' % name)
|
|
63 |
except ImportError:
|
|
64 |
pass
|
|
65 |
else:
|
|
66 |
urls = required(app_enabled(app.label), urls)
|
|
67 |
urls = required(manager_required, urls)
|
|
68 |
after_urls.append(
|
|
69 |
url(url_prefix, include(urls), kwargs={'connector': connector_slug}))
|
|
70 |
|
55 |
71 |
return before_urls + urlpatterns + after_urls
|
56 |
|
-
|