Improved data ordering in requests and addes ac types CAP10

This commit is contained in:
2025-12-01 14:23:46 +01:00
parent af62bf843c
commit a31798d0b0
8 changed files with 72 additions and 20 deletions

View File

@@ -2,12 +2,12 @@ import nested_admin
from django.forms import Form
from django.db.models.query import QuerySet
from django.contrib.auth.models import User
from django.http import HttpRequest, HttpResponse
from django.contrib import admin, messages
from django.utils.translation import ngettext
from django.utils.safestring import SafeText
from ..models.students import Student
from ..models.missions import Training
from ..models.weekpref import WeekPreference
@@ -62,7 +62,7 @@ class WeekPreferenceAdmin(nested_admin.NestedPolymorphicModelAdmin):
# If a user is registered as student show only their preferences
def get_queryset(self, request: HttpRequest) -> QuerySet[WeekPreference]:
qs = super().get_queryset(request)
qs = super().get_queryset(request).order_by("-week", "-student__course", "student__surname", "student__name")
if hasattr(request.user, "student"):
return qs.filter(student=request.user.student)
# If admin show everything
@@ -79,7 +79,7 @@ class WeekPreferenceAdmin(nested_admin.NestedPolymorphicModelAdmin):
# If student is current user making request
if hasattr(request.user, "student"):
student = request.user.student
student: Student = request.user.student
if "student" in form.base_fields:
form.base_fields["student"].initial = student
form.base_fields["student"].disabled = True
@@ -89,8 +89,9 @@ class WeekPreferenceAdmin(nested_admin.NestedPolymorphicModelAdmin):
# If user is a student deny edit permission for week past the current one
def has_change_permission(self, request: HttpRequest, obj: WeekPreference | None = None) -> bool:
if hasattr(request.user, "student") and obj:
student: Student = request.user.student
current_week = date.today().isocalendar().week
if current_week > obj.week:
if current_week > obj.week or not student.active:
return False
return True
@@ -105,9 +106,10 @@ class WeekPreferenceAdmin(nested_admin.NestedPolymorphicModelAdmin):
def changeform_view(self, request: HttpRequest, object_id: int | None = None, form_url: str = "", extra_context=None):
extra_context = extra_context or {}
if hasattr(request.user, "student") and object_id:
student: Student = request.user.student
current_week = date.today().isocalendar().week
weekpref = WeekPreference.objects.get(id=object_id)
if current_week > weekpref.week:
if current_week > weekpref.week or not student.active:
extra_context["show_save"] = False
extra_context["show_save_and_continue"] = False
extra_context["show_save_and_add_another"] = False