diff --git a/aleksis/apps/chronos/forms.py b/aleksis/apps/chronos/forms.py index d519ba6c303717976801a3326ffca55a9ca670fe..685f67f7923f64f992822dd2004627adc8ba8760 100644 --- a/aleksis/apps/chronos/forms.py +++ b/aleksis/apps/chronos/forms.py @@ -1,7 +1,10 @@ from django import forms from django_select2.forms import ModelSelect2MultipleWidget +from django.utils.translation import gettext_lazy as _ +from material import Fieldset from .models import LessonSubstitution +from aleksis.core.forms import AnnouncementForm class LessonSubstitutionForm(forms.ModelForm): @@ -17,3 +20,6 @@ class LessonSubstitutionForm(forms.ModelForm): ] ) } + + +AnnouncementForm.add_node_to_layout(Fieldset(_("Options for timetables"), "show_in_timetables")) diff --git a/aleksis/apps/chronos/models.py b/aleksis/apps/chronos/models.py index 55c5f7c403f98638832fc99b4c1f75b64354c7b3..704eee74a8b53e7e3f8bb07a905053fbd60faf5e 100644 --- a/aleksis/apps/chronos/models.py +++ b/aleksis/apps/chronos/models.py @@ -19,9 +19,10 @@ from django.utils.translation import ugettext_lazy as _ from calendarweek.django import CalendarWeek, i18n_day_names_lazy, i18n_day_abbrs_lazy from django_global_request.middleware import get_request +from jsonstore import BooleanField from aleksis.core.mixins import ExtensibleModel -from aleksis.core.models import Group, Person, DashboardWidget +from aleksis.core.models import Group, Person, DashboardWidget, Announcement from aleksis.apps.chronos.util.date import week_weekday_from_date from aleksis.core.util.core_helpers import has_person @@ -552,6 +553,15 @@ class LessonPeriod(ExtensibleModel): indexes = [models.Index(fields=["lesson", "period"])] +@classmethod +def for_timetables(cls): + return cls.objects.filter(show_in_timetables=True) + + +Announcement.for_timetables = for_timetables +Announcement.field(show_in_timetables=BooleanField(verbose_name=_("Show announcement in timetable views?"))) + + class TimetableWidget(DashboardWidget): template = "chronos/widget.html"