diff --git a/aircox/views/admin.py b/aircox/views/admin.py index 72166b0..d3c6cab 100644 --- a/aircox/views/admin.py +++ b/aircox/views/admin.py @@ -7,19 +7,16 @@ from .log import LogListView from ..models.log import LogArchiver -__all__ = ['BaseAdminView', 'StatisticsView'] +__all__ = ['AdminMixin', 'StatisticsView'] -class BaseAdminView(LoginRequiredMixin, UserPassesTestMixin): +class AdminMixin(LoginRequiredMixin, UserPassesTestMixin): title = '' @property def station(self): return self.request.station - def test_func(self): - return self.request.user.is_staff - def get_context_data(self, **kwargs): kwargs.update(admin.site.each_context(self.request)) kwargs.setdefault('title', self.title) @@ -27,15 +24,13 @@ class BaseAdminView(LoginRequiredMixin, UserPassesTestMixin): return super().get_context_data(**kwargs) -class StatisticsView(BaseAdminView, LogListView, ListView): +class StatisticsView(AdminMixin, LogListView, ListView): template_name = 'admin/aircox/statistics.html' redirect_date_url = 'admin:tools-stats' title = _('Statistics') date = None - def get_object_list(self, logs, *_): + def get_object_list(self, logs, full=False): if not logs.exists(): logs = LogArchiver().load(self.station, self.date) if self.date else [] return super().get_object_list(logs, True) - - diff --git a/aircox_streamer/controllers.py b/aircox_streamer/controllers.py index 7bec8f7..a966fe0 100755 --- a/aircox_streamer/controllers.py +++ b/aircox_streamer/controllers.py @@ -10,6 +10,7 @@ import tzlocal from django.template.loader import render_to_string from django.utils import timezone as tz +from django.utils.translation import gettext_lazy as _ from aircox import settings from aircox.models import Station, Sound, Port @@ -63,15 +64,15 @@ class BaseMetadata: if data: self.validate(data) - def validate_status(self, status): + def validate_status(self, status, i18n=False): on_air = self.controller.source if on_air and status == 'playing' and (on_air == self or on_air.rid == self.rid): - return 'playing' + return _('playing') if i18n else 'playing' elif status == 'playing': - return 'paused' + return _('paused') if i18n else 'paused' else: - return 'stopped' + return _('stopped') if i18n else 'stopped' def validate_air_time(self, air_time): if air_time: diff --git a/aircox_streamer/urls.py b/aircox_streamer/urls.py index 949c9aa..dcc2c8d 100644 --- a/aircox_streamer/urls.py +++ b/aircox_streamer/urls.py @@ -2,10 +2,10 @@ from django.contrib import admin from django.utils.translation import ugettext_lazy as _ from . import viewsets -from .views import StreamerAdminView +from .views import StreamerAdminMixin -admin.site.route_view('tools/streamer', StreamerAdminView.as_view(), +admin.site.route_view('tools/streamer', StreamerAdminMixin.as_view(), 'tools-streamer', label=_('Streamer Monitor')) streamer_prefix = 'streamer/(?P[0-9]+)/' diff --git a/aircox_streamer/views.py b/aircox_streamer/views.py index 843463c..ad8d2dd 100644 --- a/aircox_streamer/views.py +++ b/aircox_streamer/views.py @@ -1,10 +1,10 @@ from django.utils.translation import ugettext_lazy as _ from django.views.generic import TemplateView -from aircox.views.admin import BaseAdminView +from aircox.views.admin import AdminMixin -class StreamerAdminView(BaseAdminView, TemplateView): +class StreamerAdminMixin(AdminMixin, TemplateView): template_name = 'aircox_streamer/streamer.html' title = _('Streamer Monitor')