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