Switch home.urls and entries.urls over to modern path() definitions, with param conversion and such
This commit is contained in:
parent
0b43aad50e
commit
e9c46f23db
8 changed files with 60 additions and 31 deletions
|
|
@ -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')
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue