centralized student permission in one function
This commit is contained in:
@@ -11,6 +11,8 @@ from ..models.hourbuildings import HourBuilding, HourBuildingLegBase, HourBuildi
|
||||
from ..models.weekpref import WeekPreference
|
||||
from ..models.students import Student
|
||||
|
||||
from ..custom.student_permissions import has_edit_permission
|
||||
|
||||
from datetime import date
|
||||
|
||||
class HourBuildingLegFlightForm(forms.ModelForm):
|
||||
@@ -75,12 +77,7 @@ class HourBuildingInLine(nested_admin.NestedTabularInline):
|
||||
|
||||
# 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: int = date.today().isocalendar().week
|
||||
if current_week > obj.week or not student.active:
|
||||
return False
|
||||
return True
|
||||
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)
|
||||
|
||||
Reference in New Issue
Block a user