3 Commits

Author SHA1 Message Date
b79f0c318a Remove add permission if week expired 2025-11-25 11:51:46 +01:00
c91f603a50 Remove add permission if week expired 2025-11-25 11:51:24 +01:00
f7030e8da1 Merge pull request 'polymorphic' (#1) from polymorphic into flightslot
Reviewed-on: #1
2025-11-24 12:22:01 +01:00
2 changed files with 17 additions and 2 deletions

View File

@@ -51,7 +51,6 @@ class HourBuildingLegBaseInLine(nested_admin.NestedStackedPolymorphicInline):
form = HourBuildingLegFlightForm form = HourBuildingLegFlightForm
fk_name = "hourbuildinglegbase_ptr" fk_name = "hourbuildinglegbase_ptr"
fields = ("departure", "time", "destination", "pax", ) fields = ("departure", "time", "destination", "pax", )
hide_title = True
class HourBuildingLegStopInLine(nested_admin.NestedStackedPolymorphicInline.Child): class HourBuildingLegStopInLine(nested_admin.NestedStackedPolymorphicInline.Child):
model = HourBuildingLegStop model = HourBuildingLegStop
@@ -65,7 +64,7 @@ class HourBuildingLegBaseInLine(nested_admin.NestedStackedPolymorphicInline):
def has_change_permission(self, request: HttpRequest, obj: HourBuilding | None = None): def has_change_permission(self, request: HttpRequest, obj: HourBuilding | None = None):
if hasattr(request.user, "student") and obj: if hasattr(request.user, "student") and obj:
current_week = date.today().isocalendar().week current_week = date.today().isocalendar().week
if not obj.DoesNotExist and current_week > obj.weekpref.week: if current_week > obj.weekpref.week:
return False return False
return True return True
@@ -85,3 +84,16 @@ class HourBuildingInLine(nested_admin.NestedTabularInline):
models.TextField: {"widget": Textarea(attrs={"rows":4, "cols":35})}, 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):
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)
def has_add_permission(self, request: HttpRequest, obj: WeekPreference | None = None):
return self.has_change_permission(request=request, obj=obj)

View File

@@ -35,3 +35,6 @@ class TrainingInLIne(nested_admin.NestedTabularInline):
def has_delete_permission(self, request: HttpRequest, obj: WeekPreference | None = None): def has_delete_permission(self, request: HttpRequest, obj: WeekPreference | None = None):
return self.has_change_permission(request=request, obj=obj) return self.has_change_permission(request=request, obj=obj)
def has_add_permission(self, request: HttpRequest, obj: WeekPreference | None = None):
return self.has_change_permission(request=request, obj=obj)