urls.py 6.31 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
44
from members.sitemaps import sitemap as members_sitemap
from members.views import ObtainThaliaAuthToken
45
from activemembers.sitemaps import sitemap as activemembers_sitemap
Thom Wiggers's avatar
Thom Wiggers committed
46
from documents.sitemaps import sitemap as documents_sitemap
47
from events.sitemaps import sitemap as events_sitemap
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
53
from utils.views import (generate_thumbnail, private_thumbnails,
                         private_thumbnails_api)

Thom Wiggers's avatar
Thom Wiggers committed
54
from . import views
55
from .sitemaps import StaticViewSitemap
Thom Wiggers's avatar
Thom Wiggers committed
56

57
58
59
__all__ = ['urlpatterns']

THALIA_SITEMAP = {
Thom Wiggers's avatar
Thom Wiggers committed
60
61
    'main-static': StaticViewSitemap,
}
62
63
64
65
66
67
68
69
70
THALIA_SITEMAP.update(activemembers_sitemap)
THALIA_SITEMAP.update(members_sitemap)
THALIA_SITEMAP.update(documents_sitemap)
THALIA_SITEMAP.update(thabloid_sitemap)
THALIA_SITEMAP.update(partners_sitemap)
THALIA_SITEMAP.update(events_sitemap)

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