Skip to content
Snippets Groups Projects
Verified Commit 6a6159a6 authored by Jonathan Weth's avatar Jonathan Weth :keyboard:
Browse files

Support substitutions with CalendarEvent (status and amends)

parent 1e979f87
No related branches found
No related tags found
1 merge request!301New data model based on calendar events
Pipeline #130169 failed
......@@ -1404,6 +1404,16 @@ class LessonEvent(CalendarEvent):
null=True,
)
cancelled = models.BooleanField(
default=False,
verbose_name=_("Cancelled"),
)
comment = models.TextField(
verbose_name=_("Comment"),
blank=True,
)
@property
def all_members(self: "LessonEvent") -> list[Person]:
return list(itertools.chain(*[list(g.members.all()) for g in self.groups.all()]))
......@@ -1463,15 +1473,25 @@ class LessonEvent(CalendarEvent):
"""Get the location of the event."""
return ", ".join([r.name for r in reference_object.rooms.all()])
@classmethod
def value_status(cls, reference_object: "LessonEvent") -> str:
"""Get the status of the event."""
if reference_object.cancelled:
return "CANCELLED"
return "CONFIRMED"
@classmethod
def get_objects(cls, request) -> Iterable:
"""Return all objects that should be included in the calendar."""
return (
super()
.get_objects(request)
.filter(Q(teachers=request.user.person) | Q(groups__members=request.user.person))
.distinct()
)
objs = super().get_objects(request)
amended = objs.filter(
Q(teachers=request.user.person) | Q(groups__members=request.user.person)
).values_list("amended_by__pk", flat=True)
return objs.filter(
Q(teachers=request.user.person)
| Q(groups__members=request.user.person)
| Q(pk__in=amended)
).distinct()
class Meta:
verbose_name = _("Lesson Event")
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment