]> git.0d.be Git - panikdb.git/blob - panikdb/urls.py
urls: publish public nonstop views
[panikdb.git] / panikdb / urls.py
1 from django.conf.urls import include, url
2 from django.conf import settings
3 from django.views.generic import RedirectView
4 from django.core.urlresolvers import reverse_lazy
5 from django.contrib.auth.decorators import login_required
6 from django.contrib.auth import views as auth_views
7
8 from django.contrib import admin
9
10 from ckeditor.views import upload as ckeditor_upload
11 from ckeditor.views import browse as ckeditor_browse
12 from haystack.views import search_view_factory
13 from haystack.forms import FacetedSearchForm
14 from haystack.query import SearchQuerySet
15
16 from emissions.views import FacetedSearchView
17 from emissions.urls import urlpatterns as emissions_urlpatterns
18 from emissions.models import Emission, Episode, NewsItem
19 from newsletter.urls import management_patterns as newsletter_urlpatterns
20 from matos.urls import urlpatterns as matos_urlpatterns
21 from nonstop.urls import urlpatterns as nonstop_urlpatterns
22 from nonstop.urls import public_urlpatterns as nonstop_public_urlpatterns
23 import panikombo.views
24
25 from .poll import views as poll_views
26 from .aa import views as aa_views
27 from .wiki import views as wiki_views
28 from . import views
29
30 from combo.manager.urls import urlpatterns as combo_manager_urls
31 import combo.public.views
32
33 from .urls_utils import decorated_includes, cms_permission_required
34
35
36 sqs = SearchQuerySet().models(Emission, Episode, NewsItem).facet('categories').facet('tags')
37
38 urlpatterns = [
39     url(r'^$', views.home, name='home'),
40
41     url(r'^ckeditor/upload/', login_required(ckeditor_upload)),
42     url(r'^ckeditor/browse/', login_required(ckeditor_browse)),
43     url(r'^search/', search_view_factory(view_class=FacetedSearchView,
44         form_class=FacetedSearchForm, searchqueryset=sqs), name='haystack_search'),
45
46     url(r'^emissions/$', views.emissions_list, name='emission-list'),
47
48     url(r'^emissions/',
49         decorated_includes(login_required, include(emissions_urlpatterns))),
50
51     url(r'^matos/',
52         decorated_includes(login_required, include(matos_urlpatterns))),
53
54     url(r'^nonstop/',
55         decorated_includes(login_required, include(nonstop_urlpatterns))),
56     url(r'^nonstop/', include(nonstop_public_urlpatterns)),
57
58     url(r'^newsletters/add$', views.newsletter_create, name='newsletter-create'),
59     url(r'^newsletters/',
60         decorated_includes(login_required, include(newsletter_urlpatterns))),
61
62     url(r'^cms/',
63         decorated_includes(cms_permission_required, include(combo_manager_urls))),
64
65     url(r'^news/$', views.news, name='news-list'),
66
67     url(r'^focus/set/(?P<object_type>[\w,-]+)/(?P<object_id>\d+)$',
68         views.focus_set, name='focus-set'),
69     url(r'^focus/unset/(?P<object_type>[\w,-]+)/(?P<object_id>\d+)$',
70         views.focus_unset, name='focus-unset'),
71
72     url(r'^accounts/logout/', auth_views.logout_then_login, name='logout'),
73     url(r'^accounts/password/reset/$',
74         auth_views.password_reset,
75         {'post_reset_redirect': 'auth_password_reset_done',
76          'email_template_name': 'registration/password_reset_email.html'}),
77     url(r'^accounts/', include('registration.backends.default.urls')),
78
79     url(r'^combok/soundfiles/', panikombo.views.soundfiles),
80     url(r'^combok/episodes/', panikombo.views.episodes),
81
82     url(r'^members/$', aa_views.members_list_view, name='members-list-view'),
83     url(r'^profile/$', aa_views.profile_view, name='profile-view'),
84     url(r'^profile/edit/$', aa_views.profile_contact_edit, name='profile-contact-edit'),
85
86     url(r'^vote/$', poll_views.vote, name='vote'),
87     url(r'^vote/results/$', poll_views.vote_results, name='vote-results'),
88
89     url(r'^wiki/newpage/$', wiki_views.new_page),
90     url(r'^wiki/ajax/newpage/$', wiki_views.ajax_new_page),
91     url(r'^wiki/ajax/upload/$', wiki_views.ajax_upload),
92     url(r'^wiki/', combo.public.views.page),
93     url(r'^ajax/cell/(?P<page_pk>\d+)/(?P<cell_reference>[\w_]+-\d+)/$',
94         combo.public.views.ajax_page_cell, name='combo-public-ajax-page-cell'),
95
96     url(r'^admin/', include(admin.site.urls)),
97 ]
98
99 from combo import plugins
100 urlpatterns = plugins.register_plugins_urls(urlpatterns)
101
102 from django.contrib.staticfiles.urls import staticfiles_urlpatterns
103 urlpatterns += staticfiles_urlpatterns()
104
105 from django.conf.urls.static import static
106 urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)