Files
catops/cntmanage/flightslot/custom/student_permissions.py

22 lines
822 B
Python

from django.http import HttpRequest
from ..models.students import Student
from ..models.weekpref import WeekPreference
from datetime import date
def has_week_add_permission(request: HttpRequest):
if hasattr(request.user, 'student'):
student: Student = request.user.student
current_week: int = date.today().isocalendar().week
return student.active and not WeekPreference.objects.filter(student_id=student.id, week=current_week).count()
return True
# allow add, modify, delete depending on a set of requirements
def has_edit_permission(request: HttpRequest, obj: WeekPreference | None = None) -> bool:
if hasattr(request.user, 'student'):
current_week: int = date.today().isocalendar().week
if obj and current_week > obj.week:
return False
return True