forked from rc/aircox
feat: add error message page; improve admin ui; add missing test files
This commit is contained in:
@ -1,4 +1,4 @@
|
||||
from . import admin
|
||||
from . import admin, errors
|
||||
from .article import ArticleDetailView, ArticleListView
|
||||
from .base import BaseAPIView, BaseView
|
||||
from .diffusion import DiffusionListView
|
||||
@ -20,6 +20,7 @@ from .program import (
|
||||
|
||||
__all__ = (
|
||||
"admin",
|
||||
"errors",
|
||||
"ArticleDetailView",
|
||||
"ArticleListView",
|
||||
"BaseAPIView",
|
||||
|
@ -1,3 +1,4 @@
|
||||
from django.http import HttpResponseRedirect
|
||||
from django.urls import reverse
|
||||
from django.views.generic.base import ContextMixin, TemplateResponseMixin
|
||||
|
||||
@ -60,6 +61,11 @@ class BaseView(TemplateResponseMixin, ContextMixin):
|
||||
|
||||
return super().get_context_data(**kwargs)
|
||||
|
||||
def dispatch(self, *args, **kwargs):
|
||||
if not self.request.station:
|
||||
return HttpResponseRedirect(reverse("errors-no-station"))
|
||||
return super().dispatch(*args, **kwargs)
|
||||
|
||||
|
||||
# FIXME: rename to sth like [Base]?StationAPIView/Mixin
|
||||
class BaseAPIView:
|
||||
|
8
aircox/views/errors.py
Normal file
8
aircox/views/errors.py
Normal file
@ -0,0 +1,8 @@
|
||||
from django.views.generic.base import TemplateView
|
||||
|
||||
|
||||
__all__ = ("NoStationErrorView",)
|
||||
|
||||
|
||||
class NoStationErrorView(TemplateView):
|
||||
template_name = "aircox/errors/no_station.html"
|
Reference in New Issue
Block a user