from django.contrib.auth.decorators import login_required from django.http import HttpRequest from django.shortcuts import render from django.utils import timezone from django.utils.translation import gettext_lazy as _ from konova.contexts import BaseContext from konova.sub_settings.context_settings import TAB_TITLE_IDENTIFIER from news.models import ServerMessage @login_required def index_view(request: HttpRequest): """ Renders an overview of all news Args: request (HttpRequest): The incoming request Returns: """ template = "news/index.html" now = timezone.now() news = ServerMessage.objects.filter( is_active=True, publish_on__lte=now, unpublish_on__gte=now ).order_by( "-publish_on" ) context = { "news": news, TAB_TITLE_IDENTIFIER: _("News"), } context = BaseContext(request, context).context return render(request, template, context)