Files
bus-manager/busManager/core_ui/views/base.py
T
2026-02-06 13:09:14 +11:00

47 lines
1.3 KiB
Python

from django.contrib import messages
from django.views.generic import (TemplateView, ListView, DetailView, CreateView, UpdateView)
class BaseContextMixin:
title = "Bus Portal"
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
user = self.request.user
context["theme"] = getattr(user, "theme", "theme-light")
nav_links = [
{"name": "Dashboard", "url": "/"},
{"name": "ORBAT", "url": "/orbat/"},
{"name": "Events", "url": "/events/"},
{"name": "Training", "url": "/training/"},
]
context["nav_links"] = nav_links
context.setdefault("breadcrumbs", [])
context["title"] = getattr(self, "title", "Bus Portal")
return context
def add_message(self, message, level=messages.INFO):
"""
Helper to add a message prompt to the user.
Can be called from any view inheriting this base.
"""
messages.add_message(self.request, level, message)
class BaseTemplateView(BaseContextMixin, TemplateView):
pass
class BaseListView(BaseContextMixin, ListView):
pass
class BaseDetailView(BaseContextMixin, DetailView):
pass
class BaseCreateView(BaseContextMixin, CreateView):
pass
class BaseUpdateView(BaseContextMixin, UpdateView):
pass