34 lines
1.1 KiB
Python
34 lines
1.1 KiB
Python
from django.http import HttpResponseRedirect, Http404
|
|
from django.utils.translation import get_language
|
|
from django.views import generic
|
|
from django.urls import reverse
|
|
from nsfw import views as nsfw
|
|
from .models import Page, PageContent
|
|
|
|
|
|
def index(request):
|
|
default_page = Page.objects.filter(default=True).first()
|
|
return HttpResponseRedirect(reverse('page', args=(default_page.slug, )))
|
|
|
|
|
|
class PageView(generic.DetailView):
|
|
model = PageContent
|
|
context_object_name = 'page'
|
|
template_name = 'pages/page.html'
|
|
|
|
def dispatch(self, request, *args, **kwargs):
|
|
if self.get_object().page.is_nsfw:
|
|
if not nsfw.is_nsfw_allowed(request):
|
|
return nsfw.redirect(request)
|
|
else:
|
|
nsfw.alert(request)
|
|
return super().dispatch(request, *args, **kwargs)
|
|
|
|
def get_object(self):
|
|
obj = PageContent.objects.filter(
|
|
language=get_language(),
|
|
page__slug=self.kwargs['slug']
|
|
).first()
|
|
if obj is None:
|
|
raise Http404('Page not found: %s' % self.kwargs['slug'])
|
|
return obj
|