50 lines
1.1 KiB
Python
50 lines
1.1 KiB
Python
from django.shortcuts import render
|
|
from django.urls import path
|
|
|
|
from .models import AdditionalPage
|
|
|
|
# Create your views here.
|
|
|
|
|
|
def template(filename, ec={}):
|
|
def closure(request):
|
|
return render(request, filename + ".html", ec)
|
|
|
|
return closure
|
|
|
|
|
|
def reverse_template(filename, model, ec={}):
|
|
def closure(request, id):
|
|
return render(
|
|
request,
|
|
filename + "-reverse.html",
|
|
{**ec, "focus": model.objects.get(pk=id)},
|
|
)
|
|
|
|
return closure
|
|
|
|
|
|
def tpath(p: str, filename: str, ec={}):
|
|
return path(p, template(filename, ec), name=filename.replace("/", "_"))
|
|
|
|
|
|
def rtpath(p: str, filename: str, model, ec={}):
|
|
return path(
|
|
p,
|
|
reverse_template(filename, model, ec),
|
|
name=filename.replace("/", "_") + "-reverse",
|
|
)
|
|
|
|
|
|
def wildcard_additional_page(request, wildcard):
|
|
return render(
|
|
request,
|
|
"page.html",
|
|
context={
|
|
"page": wildcard,
|
|
"posts": posts.filter(
|
|
published=True
|
|
) if (posts := AdditionalPage.objects.get(slug=wildcard).posts) is not None else None,
|
|
},
|
|
)
|