Improved data ordering in requests and addes ac types CAP10
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user