import nested_admin from django import forms from django.db import models from django.forms import TextInput, Textarea from django.http import HttpRequest from ..models.missions import Training from ..models.weekpref import WeekPreference from ..custom.student_permissions import has_edit_permission 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 formfield_overrides = { models.CharField: {'widget': TextInput(attrs={'size':'20'})}, models.TextField: {'widget': Textarea(attrs={'rows':4, 'cols':35})}, } # 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: return has_edit_permission(request=request, obj=obj) def has_delete_permission(self, request: HttpRequest, obj: WeekPreference | None = None) -> bool: return self.has_change_permission(request=request, obj=obj) def has_add_permission(self, request: HttpRequest, obj: WeekPreference | None = None) -> bool: return self.has_change_permission(request=request, obj=obj)