urls.py 5.39 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.views import login
Thom Wiggers's avatar
Thom Wiggers committed
37
from django.contrib.sitemaps.views import sitemap
38
from django.views.generic import TemplateView
39
from django.views.i18n import JavaScriptCatalog
40
from rest_framework.authtoken import views as rfviews
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
Thom Wiggers's avatar
Thom Wiggers committed
47
from partners.sitemaps import sitemap as partners_sitemap
48
from thabloid.sitemaps import sitemap as thabloid_sitemap
49
from thaliawebsite.forms import AuthenticationForm
50
from utils.views import private_thumbnails, generate_thumbnail
Thom Wiggers's avatar
Thom Wiggers committed
51
from . import views
52
from .sitemaps import StaticViewSitemap
Thom Wiggers's avatar
Thom Wiggers committed
53

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

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