e32f87a21f65b7e811ad25344c6a0bf0abc48c8d
[django-migdal.git] / migdal / urls.py
1 # -*- coding: utf-8 -*-
2 # This file is part of PrawoKultury, licensed under GNU Affero GPLv3 or later.
3 # Copyright © Fundacja Nowoczesna Polska. See NOTICE for more information.
4 #
5 from django.conf import settings
6 from django.conf.urls import url
7 from django.utils.translation import ugettext_lazy as _
8 from django.utils.translation import string_concat
9 from migdal import feeds, app_settings
10 import migdal.views
11 from django.conf.urls.i18n import i18n_patterns
12
13 pats = []
14 for t in app_settings.TYPES:
15     pats += [
16         # entry list
17         url(string_concat(r'^', t.slug, r'/$'),
18             migdal.views.entry_list, {'type_db': t.db},
19             name='migdal_entry_list_%s' % t.db),
20         url(string_concat(r'^', t.slug, r'/rss.xml$'),
21             feeds.EntriesFeed(), {'type_db': t.db},
22             name='migdal_entry_list_%s_feed' % t.db),
23         # single entry
24         url(string_concat(r'^', t.slug, r'/(?P<slug>[^/]+)/$'),
25             migdal.views.entry, {'type_db': t.db},
26             name='migdal_entry_%s' % t.db),
27     ]
28
29
30 urlpatterns = i18n_patterns(
31     # main page
32     url(r'^$', migdal.views.main, name='migdal_main'),
33     url(r'^rss.xml$', feeds.EntriesFeed(), name='migdal_main_feed'),
34     # submit new entry
35     url(string_concat(r'^', _('submit'), r'/$'), migdal.views.submit, name='migdal_submit'),
36     url(string_concat(r'^', _('submit'), r'/', _('thanks'), r'$'), migdal.views.submit_thanks,
37         name='migdal_submit_thanks'),
38     # category
39     url(string_concat(r'^', _('categories'), r'/(?P<category_slug>[^/]*)/$'),
40         migdal.views.entry_list, name='migdal_category'),
41     url(string_concat(r'^', _('categories'), r'/(?P<category_slug>[^/]*)/rss.xml$'),
42         feeds.EntriesFeed(), name='migdal_category_feed'),
43     url(string_concat(r'^', _('search')), migdal.views.SearchPublishedView(), name='search'),
44     # type-specific views
45     *pats,
46     prefix_default_language=False
47 )
48
49
50 if 'django.contrib.sitemaps' in settings.INSTALLED_APPS:
51     import django.contrib.sitemaps.views
52     from .sitemap import sitemaps
53     urlpatterns += (
54         url(r'^sitemap\.xml$', django.contrib.sitemaps.views.sitemap, {
55             'sitemaps': sitemaps
56         }),
57     )