urls.py 6 KB
Newer Older
Thom Wiggers's avatar
Thom Wiggers committed
1
2
3
4
5
"""
Thalia's root URL Configuration

The ``urlpatterns`` list routes URLs to views. For more information please see:
https://docs.djangoproject.com/en/dev/topics/http/urls/
Thom Wiggers's avatar
Thom Wiggers committed
6
7

Examples:
Thom Wiggers's avatar
Thom Wiggers committed
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25

* Function views

  1. Add an import: ``from my_app import views``
  2. Add a URL to ``urlpatterns``: ``url(r'^$', views.home, name='home')``

* Class-based views

  1. Add an import: ``from other_app.views import Home``
  2. Add a URL to urlpatterns: ``url(r'^$', Home.as_view(), name='home')``

* Including another URLconf

  1. Import the ``include()`` function::

        from django.conf.urls import url, include

  2. Add a URL to urlpatterns: ``url(r'^blog/', include('blog.urls'))``
Thom Wiggers's avatar
Thom Wiggers committed
26
"""
Thom Wiggers's avatar
Thom Wiggers committed
27
28
29

# pragma: noqa

Thom Wiggers's avatar
Thom Wiggers committed
30
31
32
import os.path

from django.conf import settings
33
from django.conf.urls import include, url
Thom Wiggers's avatar
Thom Wiggers committed
34
from django.conf.urls.static import static
Thom Wiggers's avatar
Thom Wiggers committed
35
from django.contrib import admin
36
from django.contrib.auth.decorators import login_required
Thom Wiggers's avatar
Thom Wiggers committed
37
from django.contrib.auth.views import LoginView
Thom Wiggers's avatar
Thom Wiggers committed
38
from django.contrib.sitemaps.views import sitemap
39
from django.views.generic import TemplateView
40
from django.views.i18n import JavaScriptCatalog
41

42
import members
43
from activemembers.sitemaps import sitemap as activemembers_sitemap
Thom Wiggers's avatar
Thom Wiggers committed
44
from documents.sitemaps import sitemap as documents_sitemap
45
from events.sitemaps import sitemap as events_sitemap
46
from members.sitemaps import sitemap as members_sitemap
47
from members.views import ObtainAuthToken, ObtainThaliaAuthToken
Thom Wiggers's avatar
Thom Wiggers committed
48
from partners.sitemaps import sitemap as partners_sitemap
49
from thabloid.sitemaps import sitemap as thabloid_sitemap
50
from thaliawebsite.forms import AuthenticationForm
51
52
from utils.views import private_thumbnails, generate_thumbnail, \
    private_thumbnails_api
Thom Wiggers's avatar
Thom Wiggers committed
53
from . import views
54
from .sitemaps import StaticViewSitemap
Thom Wiggers's avatar
Thom Wiggers committed
55

Thom Wiggers's avatar
Thom Wiggers committed
56
57
58
thalia_sitemap = {
    'main-static': StaticViewSitemap,
}
59
thalia_sitemap.update(activemembers_sitemap)
Thom Wiggers's avatar
Thom Wiggers committed
60
61
62
thalia_sitemap.update(members_sitemap)
thalia_sitemap.update(documents_sitemap)
thalia_sitemap.update(thabloid_sitemap)
Thom Wiggers's avatar
Thom Wiggers committed
63
thalia_sitemap.update(partners_sitemap)
64
thalia_sitemap.update(events_sitemap)
Thom Wiggers's avatar
Thom Wiggers committed
65

Thom Wiggers's avatar
Thom Wiggers committed
66
urlpatterns = [
Luuk Scholten's avatar
Luuk Scholten committed
67
    url(r'^$', TemplateView.as_view(template_name='index.html'), name='index'),
68
    url(r'^privacy-policy/', TemplateView.as_view(template_name='singlepages/privacy_policy.html'), name='privacy-policy'),
Thom Wiggers's avatar
Thom Wiggers committed
69
    url(r'^admin/', admin.site.urls),
70
    url(r'^members/', include('members.urls')),
71
    url(r'^registration/', include('registrations.urls')),
72
    url(r'^payment/', include('payments.urls')),
73
    url(r'^account/$', members.views.account, name='account'),
74
75
76
    url(r'^events/', include('events.urls')),
    url(r'^pizzas/', include('pizzas.urls')),
    url(r'^newsletters/', include('newsletters.urls')),
77
    url(r'^nieuwsbrief/', include('newsletters.urls', namespace='newsletters-legacy'),),  # for legacy reasons
Sébastiaan Versteeg's avatar
Sébastiaan Versteeg committed
78
79
    url(r'^association$', TemplateView.as_view(
        template_name='singlepages/association.html'), name='association'),
80
81
    url(r'^', include([  # 'association' menu
        url(r'^', include('activemembers.urls')),
82
83
        url(r'^merchandise/', include('merchandise.urls')),
        url(r'^documents/', include('documents.urls')),
Thom Wiggers's avatar
Thom Wiggers committed
84
        url(r'^sister-associations', TemplateView.as_view(template_name='singlepages/sister_associations.html'), name='sister-associations'),
85
        url(r'^thabloid/', include('thabloid.urls')),
Joost Rijneveld's avatar
Joost Rijneveld committed
86
    ])),
Sébastiaan Versteeg's avatar
Sébastiaan Versteeg committed
87
88
    url(r'^for-members$', TemplateView.as_view(
        template_name='singlepages/for_members.html'), name='for-members'),
89
    url(r'^', include([  # 'for members' menu
90
        url(r'^become-active/', login_required(TemplateView.as_view(template_name='singlepages/become_active.html')), name='become-active'),
91
        url(r'^photos/', include('photos.urls')),
92
93
94
        url(r'^statistics/$', members.views.statistics, name='statistics'),
        url(r'^styleguide/$', views.styleguide, name='styleguide'),
        url(r'^styleguide/file/(?P<filename>[\w\-_\.]+)$', views.styleguide_file, name='styleguide-file'),
Joost Rijneveld's avatar
Joost Rijneveld committed
95
    ])),
96
    url(r'^career/', include('partners.urls')),
Joost Rijneveld's avatar
Joost Rijneveld committed
97
    url(r'^contact$', TemplateView.as_view(template_name='singlepages/contact.html'), name='contact'),
98
    url(r'^private-thumbnails/(?P<size_fit>\d+x\d+_[01])/(?P<path>.*)', private_thumbnails, name='private-thumbnails'),
99
    url(r'^generate-thumbnail/(?P<size_fit>\d+x\d+_[01])/(?P<path>[^/]+)/(?P<thumbpath>[^/]+)', generate_thumbnail, name='generate-thumbnail'),
100
    url(r'^api/', include([
Thom Wiggers's avatar
Thom Wiggers committed
101
        url(r'wikilogin', views.wiki_login),
102
        url(r'^v1/', include([
103
            url(r'^token-auth', ObtainThaliaAuthToken.as_view()),
104
105
106
            url(r'^', include('events.api.urls')),
            url(r'^', include('members.api.urls')),
            url(r'^', include('partners.api.urls')),
107
            url(r'^', include('mailinglists.api.urls')),
Gijs Hendriksen's avatar
Gijs Hendriksen committed
108
            url(r'^', include('pizzas.api.urls')),
Sébastiaan Versteeg's avatar
Sébastiaan Versteeg committed
109
            url(r'^', include('photos.api.urls')),
110
            url(r'^', include('pushnotifications.api.urls')),
111
112
            url(r'^generate-thumbnail/(?P<size_fit>\d+x\d+_[01])/(?P<path>[^/]+)/(?P<thumbpath>[^/]+)', generate_thumbnail, {'api': True}, name='generate-thumbnail-api'),
            url(r'^private-thumbnails/(?P<size_fit>\d+x\d+_[01])/(?P<path>.*)', private_thumbnails_api, name='private-thumbnails-api'),
Thom Wiggers's avatar
Thom Wiggers committed
113
        ])),
114
    ])),
115
    url(r'^education/', include('education.urls')),
Joost Rijneveld's avatar
Joost Rijneveld committed
116
    url(r'^announcements/', include('announcements.urls')),
117
    url(r'^pushnotifications/', include('pushnotifications.urls')),
118
    # Default login helpers
Thom Wiggers's avatar
Thom Wiggers committed
119
    url(r'^login/$', LoginView.as_view(), {'authentication_form': AuthenticationForm},
120
        name='login'),
121
    url(r'^', include('django.contrib.auth.urls')),
Thom Wiggers's avatar
Thom Wiggers committed
122
    url(r'^i18n/', include('django.conf.urls.i18n')),
Thom Wiggers's avatar
Thom Wiggers committed
123
124
125
    # Sitemap
    url(r'^sitemap\.xml$', sitemap, {'sitemaps': thalia_sitemap},
        name='django.contrib.sitemaps.views.sitemap'),
126
127
    # Dependencies
    url(r'^tinymce/', include('tinymce.urls')),
128
129
    # Javascript translation catalog
    url(r'jsi18n/$', JavaScriptCatalog.as_view(), name='javascript-catalog'),
Thom Wiggers's avatar
Thom Wiggers committed
130
131
    # XXX
    url(r'crash/$', views.crash),
132
] + static(settings.MEDIA_URL + 'public/',
Thom Wiggers's avatar
Thom Wiggers committed
133
           document_root=os.path.join(settings.MEDIA_ROOT, 'public'))