import nested_admin from django import forms from django.http import HttpRequest from ..models.missions import Training from ..models.weekpref import WeekPreference from datetime import date class TrainingForm(forms.ModelForm): model=Training class TrainingInLIne(nested_admin.NestedTabularInline): model = Training form = TrainingForm extra = 0 fk_name = 'weekpref' verbose_name_plural = "Training Missions" max_num = 7 # 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): if hasattr(request.user, 'student') and obj: current_week: int = date.today().isocalendar().week if current_week > obj.week: return False return True def has_delete_permission(self, request: HttpRequest, obj: WeekPreference | None = None): return self.has_change_permission(request=request, obj=obj)