32 lines
1.1 KiB
Python
32 lines
1.1 KiB
Python
from django.db.models import Q
|
|
from django.contrib.auth.mixins import LoginRequiredMixin
|
|
from django.utils.translation import gettext_lazy as _
|
|
from django.views.generic.base import TemplateView
|
|
|
|
from aircox import models
|
|
from .base import BaseView
|
|
|
|
|
|
class DashboardView(LoginRequiredMixin, BaseView, TemplateView):
|
|
template_name = "aircox/dashboard/dashboard.html"
|
|
title = _("Dashboard")
|
|
|
|
def get_context_data(self, **kwargs):
|
|
programs = models.Program.objects.editor(self.request.user)
|
|
comments = models.Comment.objects.filter(
|
|
Q(page__in=programs) | Q(page__episode__parent__in=programs) | Q(page__article__parent__in=programs)
|
|
)
|
|
|
|
kwargs.update(
|
|
{
|
|
"subtitle": self.request.user.get_username(),
|
|
"programs": programs.order_by("title"),
|
|
"comments": comments.order_by("-date"),
|
|
"next_diffs": models.Diffusion.objects.editor(self.request.user)
|
|
.select_related("episode")
|
|
.after()
|
|
.order_by("start"),
|
|
}
|
|
)
|
|
return super().get_context_data(**kwargs)
|