Files
website-v2/libraries/mixins.py
2023-06-23 10:47:26 -07:00

44 lines
1.3 KiB
Python

import structlog
from versions.models import Version
from .models import Category
logger = structlog.get_logger()
class CategoryMixin:
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
context["categories"] = Category.objects.all().order_by("name")
return context
class VersionAlertMixin:
"""Mixin to selectively add a version alert to the context"""
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
# Get the version from the GET parameters or default to the latest
version_slug = self.request.GET.get(
"version", Version.objects.most_recent().slug
)
try:
selected_version = Version.objects.get(slug=version_slug)
except Version.DoesNotExist:
selected_version = Version.objects.most_recent()
# compare the selected version with the latest version
latest_version = Version.objects.most_recent()
context["latest_version"] = latest_version
context["version"] = selected_version
if selected_version != latest_version:
context["version_alert"] = True
else:
context["version_alert"] = False
return context