|
|
|
@ -1,9 +1,10 @@
|
|
|
|
|
from django.conf.urls import url |
|
|
|
|
from django.urls import reverse |
|
|
|
|
from django.urls import path, register_converter, reverse |
|
|
|
|
from . import kinds |
|
|
|
|
from .views import feeds, lists, perma |
|
|
|
|
from lemoncurry import breadcrumbs as crumbs |
|
|
|
|
|
|
|
|
|
register_converter(kinds.EntryKindConverter, 'kind') |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def to_pat(*args): |
|
|
|
|
return '^{0}$'.format(''.join(args)) |
|
|
|
@ -22,14 +23,21 @@ slug_opt = '(?:' + slug + ')?'
|
|
|
|
|
|
|
|
|
|
app_name = 'entries' |
|
|
|
|
urlpatterns = ( |
|
|
|
|
url('^atom$', feeds.AtomHomeEntries(), name='atom'), |
|
|
|
|
url('^rss$', feeds.RssHomeEntries(), name='rss'), |
|
|
|
|
url(to_pat('cats', slug, page), lists.by_cat, name='cat'), |
|
|
|
|
url(to_pat(kind, page), lists.by_kind, name='index'), |
|
|
|
|
url(to_pat(kind, '/atom'), feeds.AtomByKind(), name='atom_by_kind'), |
|
|
|
|
url(to_pat(kind, '/rss'), feeds.RssByKind(), name='rss_by_kind'), |
|
|
|
|
url(to_pat(kind, id, slug_opt, '/amp'), perma.entry_amp, name='entry_amp'), |
|
|
|
|
url(to_pat(kind, id, slug_opt), perma.entry, name='entry'), |
|
|
|
|
path('atom', feeds.AtomHomeEntries(), name='atom'), |
|
|
|
|
path('rss', feeds.RssHomeEntries(), name='rss'), |
|
|
|
|
path('cats/<slug:slug>', lists.by_cat, name='cat'), |
|
|
|
|
path('cats/<slug:slug>/page/<int:page>', lists.by_cat, name='cat'), |
|
|
|
|
path('<kind:kind>', lists.by_kind, name='index'), |
|
|
|
|
path('<kind:kind>/page/<int:page>', lists.by_kind, name='index'), |
|
|
|
|
path('<kind:kind>/atom', feeds.AtomByKind(), name='atom_by_kind'), |
|
|
|
|
path('<kind:kind>/rss', feeds.RssByKind(), name='rss_by_kind'), |
|
|
|
|
|
|
|
|
|
path('<kind:kind>/<int:id>/amp', perma.entry_amp, name='entry_amp'), |
|
|
|
|
path('<kind:kind>/<int:id>/<slug:slug>/amp', |
|
|
|
|
perma.entry_amp, name='entry_amp'), |
|
|
|
|
|
|
|
|
|
path('<kind:kind>/<int:id>', perma.entry, name='entry'), |
|
|
|
|
path('<kind:kind>/<int:id>/<slug:slug>', perma.entry, name='entry'), |
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -38,12 +46,16 @@ class IndexCrumb(crumbs.Crumb):
|
|
|
|
|
super().__init__(prefix('index'), parent='home:index') |
|
|
|
|
|
|
|
|
|
@property |
|
|
|
|
def label(self): |
|
|
|
|
def kind(self): |
|
|
|
|
return self.match.kwargs['kind'] |
|
|
|
|
|
|
|
|
|
@property |
|
|
|
|
def label(self): |
|
|
|
|
return self.kind.plural |
|
|
|
|
|
|
|
|
|
@property |
|
|
|
|
def url(self): |
|
|
|
|
return reverse(prefix('index'), kwargs={'kind': self.label}) |
|
|
|
|
return reverse(prefix('index'), kwargs={'kind': self.kind}) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
crumbs.add(prefix('cat'), parent='home:index') |
|
|
|
|