]> git.0d.be Git - panikdb.git/blob - panikdb/urls.py
71e11c58a5efe4e9018af93c777ae6ce443a380f
[panikdb.git] / panikdb / urls.py
1 import combo.public.views
2 from agendas.urls import urlpatterns as agendas_urlpatterns
3 from ckeditor.views import browse as ckeditor_browse
4 from ckeditor.views import upload as ckeditor_upload
5 from combo.manager.urls import urlpatterns as combo_manager_urls
6 from combo.public.views import snapshot as combo_snapshot_view
7 from django.conf import settings
8 from django.conf.urls import include, url
9 from django.contrib import admin
10 from django.contrib.auth import views as auth_views
11 from django.contrib.auth.decorators import login_required
12 from django.urls import path, reverse_lazy
13 from django.views.generic import RedirectView
14 from emissions.models import Emission, Episode, NewsItem
15 from emissions.urls import urlpatterns as emissions_urlpatterns
16 from emissions.views import FacetedSearchView
17 from haystack.forms import FacetedSearchForm
18 from haystack.query import SearchQuerySet
19 from haystack.views import search_view_factory
20 from matos.urls import urlpatterns as matos_urlpatterns
21 from newsletter.urls import management_patterns as newsletter_urlpatterns
22 from nonstop.urls import public_urlpatterns as nonstop_public_urlpatterns
23 from nonstop.urls import urlpatterns as nonstop_urlpatterns
24 from panikombo.urls import urlpatterns as panikombo_urlpatterns
25 from wiki.urls import urlpatterns as wiki_urlpatterns
26
27 from . import views
28 from .aa.urls import urlpatterns as aa_urlpatterns
29 from .forms import AuthenticationForm
30 from .oauth.urls import urlpatterns as oauth_urlpatterns
31 from .oauth.views import well_known_openid_configuration
32 from .poll import views as poll_views
33 from .regie.urls import urlpatterns as regie_urlpatterns
34 from .service_messages.urls import urlpatterns as service_messages_urlpatterns
35 from .urls_utils import cms_permission_required, decorated_includes
36
37 sqs = SearchQuerySet().models(Emission, Episode, NewsItem).facet('categories').facet('tags')
38
39 urlpatterns = [
40     url(r'^$', views.home, name='home'),
41     url(r'^ckeditor/upload/', login_required(ckeditor_upload)),
42     url(r'^ckeditor/browse/', login_required(ckeditor_browse)),
43     url(
44         r'^search/',
45         search_view_factory(view_class=FacetedSearchView, form_class=FacetedSearchForm, searchqueryset=sqs),
46         name='haystack_search',
47     ),
48     url(r'^emissions/$', views.emissions_list, name='emission-list'),
49     url(r'^emissions/', decorated_includes(login_required, include(emissions_urlpatterns))),
50     url(r'^matos/', decorated_includes(login_required, include(matos_urlpatterns))),
51     url(r'^nonstop/', decorated_includes(login_required, include(nonstop_urlpatterns))),
52     url(r'^nonstop/', include(nonstop_public_urlpatterns)),
53     url(r'^newsletters/add$', views.newsletter_create, name='newsletter-create'),
54     url(r'^newsletters/', decorated_includes(login_required, include(newsletter_urlpatterns))),
55     url(r'^cms/', decorated_includes(cms_permission_required, include(combo_manager_urls))),
56     url(
57         r'^cms-snapshot/(?P<pk>\w+)/$',
58         cms_permission_required(combo_snapshot_view),
59         name='combo-snapshot-view',
60     ),
61     url(r'^news/$', views.news, name='news-list'),
62     url(r'^focus/set/(?P<object_type>[\w,-]+)/(?P<object_id>\d+)$', views.focus_set, name='focus-set'),
63     url(r'^focus/unset/(?P<object_type>[\w,-]+)/(?P<object_id>\d+)$', views.focus_unset, name='focus-unset'),
64     url(r'^accounts/logout/', auth_views.logout_then_login, name='logout'),
65     url(
66         r'^accounts/password/reset/$',
67         auth_views.PasswordResetView.as_view(
68             success_url=reverse_lazy('auth_password_reset_done'),
69             email_template_name='registration/password_reset_email.html',
70         ),
71     ),
72     url(
73         r'^accounts/login/$',
74         auth_views.LoginView.as_view(authentication_form=AuthenticationForm),
75         name='login',
76     ),
77     url(
78         r'^password/change/done/$',
79         auth_views.PasswordChangeDoneView.as_view(),
80         name='auth_password_change_done',
81     ),
82     url(r'^accounts/', include('registration.backends.default.urls')),
83     url(r'^vote/$', poll_views.vote, name='vote'),
84     url(r'^vote/results/$', poll_views.vote_results, name='vote-results'),
85     url(
86         r'^ajax/cell/(?P<page_pk>\d+)/(?P<cell_reference>[\w_]+-\d+)/$',
87         combo.public.views.ajax_page_cell,
88         name='combo-public-ajax-page-cell',
89     ),
90     url(r'^agendas/', decorated_includes(login_required, include(agendas_urlpatterns))),
91     url(r'^panikombo/', include(panikombo_urlpatterns)),
92     url(r'^wiki/', include(wiki_urlpatterns)),
93     url(r'^regie/', include(regie_urlpatterns)),
94     url(r'^oauth/', include(oauth_urlpatterns)),
95     url(r'^\.well-known/openid-configuration$', well_known_openid_configuration),
96     url(r'^messages/', include(service_messages_urlpatterns)),
97     url(r'^admin/', admin.site.urls),
98 ]
99
100 urlpatterns += aa_urlpatterns
101
102 from combo import plugins
103
104 urlpatterns = plugins.register_plugins_urls(urlpatterns)
105
106 from django.contrib.staticfiles.urls import staticfiles_urlpatterns
107
108 urlpatterns += staticfiles_urlpatterns()
109
110 from django.conf.urls.static import static
111
112 urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
113
114 if settings.DEBUG_TOOLBAR:
115     urlpatterns += [
116         path('__debug__/', include('debug_toolbar.urls')),
117     ]