Refactor the 'entries' views into a package rather than just one module, so more views can be added without clutter
This commit is contained in:
parent
cf0aea4f73
commit
c359b7640e
5 changed files with 36 additions and 32 deletions
|
@ -1,5 +1,6 @@
|
||||||
from django.conf.urls import url
|
from django.conf.urls import url
|
||||||
from . import feeds, kinds, views
|
from . import kinds
|
||||||
|
from .views import feeds, lists, perma
|
||||||
from lemoncurry import breadcrumbs as crumbs
|
from lemoncurry import breadcrumbs as crumbs
|
||||||
|
|
||||||
|
|
||||||
|
@ -18,7 +19,7 @@ app_name = 'entries'
|
||||||
urlpatterns = [
|
urlpatterns = [
|
||||||
url('^atom$', feeds.AtomHomeEntries(), name='atom'),
|
url('^atom$', feeds.AtomHomeEntries(), name='atom'),
|
||||||
url('^rss$', feeds.RssHomeEntries(), name='rss'),
|
url('^rss$', feeds.RssHomeEntries(), name='rss'),
|
||||||
url(to_pat('cats', slug, page), views.cat, name='cat'),
|
url(to_pat('cats', slug, page), lists.by_cat, name='cat'),
|
||||||
]
|
]
|
||||||
crumbs.add(prefix('cat'), parent='home:index')
|
crumbs.add(prefix('cat'), parent='home:index')
|
||||||
|
|
||||||
|
@ -28,11 +29,11 @@ for k in kinds.all:
|
||||||
kind = k.plural
|
kind = k.plural
|
||||||
id = r'/(?P<id>\d+)'
|
id = r'/(?P<id>\d+)'
|
||||||
urlpatterns += (
|
urlpatterns += (
|
||||||
url(to_pat(kind, page), views.index, name=k.index, kwargs={'kind': k}),
|
url(to_pat(kind, page), lists.by_kind, name=k.index, kwargs={'kind': k}),
|
||||||
url(to_pat(kind, '/atom'), feeds.AtomByKind(k), name=k.atom),
|
url(to_pat(kind, '/atom'), feeds.AtomByKind(k), name=k.atom),
|
||||||
url(to_pat(kind, '/rss'), feeds.RssByKind(k), name=k.rss),
|
url(to_pat(kind, '/rss'), feeds.RssByKind(k), name=k.rss),
|
||||||
url(to_pat(kind, id, slug, '/amp'), views.entry_amp, name=k.entry_amp),
|
url(to_pat(kind, id, slug, '/amp'), perma.entry_amp, name=k.entry_amp),
|
||||||
url(to_pat(kind, id, slug), views.entry, name=k.entry),
|
url(to_pat(kind, id, slug), perma.entry, name=k.entry),
|
||||||
)
|
)
|
||||||
|
|
||||||
crumbs.add(prefix(k.index), label=k.plural, parent='home:index')
|
crumbs.add(prefix(k.index), label=k.plural, parent='home:index')
|
||||||
|
|
0
entries/views/__init__.py
Normal file
0
entries/views/__init__.py
Normal file
|
@ -4,8 +4,8 @@ from django.urls import reverse
|
||||||
from django.utils.feedgenerator import Atom1Feed
|
from django.utils.feedgenerator import Atom1Feed
|
||||||
from urllib.parse import urljoin
|
from urllib.parse import urljoin
|
||||||
from lemoncurry.templatetags.markdown import markdown
|
from lemoncurry.templatetags.markdown import markdown
|
||||||
from .kinds import on_home
|
from ..kinds import on_home
|
||||||
from .models import Entry
|
from ..models import Entry
|
||||||
|
|
||||||
|
|
||||||
class EntriesFeed(Feed):
|
class EntriesFeed(Feed):
|
|
@ -1,12 +1,12 @@
|
||||||
from annoying.decorators import render_to
|
from annoying.decorators import render_to
|
||||||
from django.shortcuts import get_object_or_404, redirect
|
from django.shortcuts import get_object_or_404
|
||||||
from django.urls import reverse
|
from django.urls import reverse
|
||||||
from .models import Entry, Cat
|
from ..models import Entry, Cat
|
||||||
from .pagination import paginate
|
from ..pagination import paginate
|
||||||
|
|
||||||
|
|
||||||
@render_to('entries/index.html')
|
@render_to('entries/index.html')
|
||||||
def index(request, kind, page):
|
def by_kind(request, kind, page):
|
||||||
def url(page):
|
def url(page):
|
||||||
kwargs = {'page': page} if page > 1 else {}
|
kwargs = {'page': page} if page > 1 else {}
|
||||||
return reverse('entries:' + kind.index, kwargs=kwargs)
|
return reverse('entries:' + kind.index, kwargs=kwargs)
|
||||||
|
@ -25,7 +25,7 @@ def index(request, kind, page):
|
||||||
|
|
||||||
|
|
||||||
@render_to('entries/index.html')
|
@render_to('entries/index.html')
|
||||||
def cat(request, slug, page):
|
def by_cat(request, slug, page):
|
||||||
def url(page):
|
def url(page):
|
||||||
kwargs = {'slug': slug}
|
kwargs = {'slug': slug}
|
||||||
if page > 1:
|
if page > 1:
|
||||||
|
@ -42,23 +42,3 @@ def cat(request, slug, page):
|
||||||
'entries': entries,
|
'entries': entries,
|
||||||
'title': '#' + cat.name,
|
'title': '#' + cat.name,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@render_to('entries/entry.html')
|
|
||||||
def entry(request, id, slug=None):
|
|
||||||
entry = Entry.objects.get(pk=id)
|
|
||||||
if request.path != entry.url:
|
|
||||||
return redirect(entry.url, permanent=True)
|
|
||||||
return {
|
|
||||||
'entry': entry,
|
|
||||||
'title': entry.title,
|
|
||||||
'meta': entry.as_meta(request)
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@render_to('entries/entry_amp.html')
|
|
||||||
def entry_amp(request, id, slug=None):
|
|
||||||
entry = Entry.objects.get(pk=id)
|
|
||||||
if request.path != entry.amp_url:
|
|
||||||
return redirect(entry.amp_url, permanent=True)
|
|
||||||
return {'entry': entry}
|
|
23
entries/views/perma.py
Normal file
23
entries/views/perma.py
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
from annoying.decorators import render_to
|
||||||
|
from django.shortcuts import redirect
|
||||||
|
from ..models import Entry
|
||||||
|
|
||||||
|
|
||||||
|
@render_to('entries/entry.html')
|
||||||
|
def entry(request, id, slug=None):
|
||||||
|
entry = Entry.objects.get(pk=id)
|
||||||
|
if request.path != entry.url:
|
||||||
|
return redirect(entry.url, permanent=True)
|
||||||
|
return {
|
||||||
|
'entry': entry,
|
||||||
|
'title': entry.title,
|
||||||
|
'meta': entry.as_meta(request)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@render_to('entries/entry_amp.html')
|
||||||
|
def entry_amp(request, id, slug=None):
|
||||||
|
entry = Entry.objects.get(pk=id)
|
||||||
|
if request.path != entry.amp_url:
|
||||||
|
return redirect(entry.amp_url, permanent=True)
|
||||||
|
return {'entry': entry}
|
Loading…
Reference in a new issue