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

Merge branch '264-hide-days' into 'master'

Resolve "Hide days"

Closes #264

See merge request !385
parents 8af62423 4607da0a
Branches 130-show-print-timetable-button-on-mobile-devices
No related tags found
1 merge request!385Resolve "Hide days"
Pipeline #193684 failed
Pipeline: AlekSIS

#193686

    ......@@ -4,6 +4,7 @@ import TimetableWrapper from "./TimetableWrapper.vue";
    <script>
    import { DateTime } from "luxon";
    import { gqlTimetableDays } from "./timetables.graphql";
    export default {
    name: "Timetable",
    ......@@ -12,6 +13,7 @@ export default {
    calendarFocus: "",
    calendarType: "week",
    initialRouteFocusSet: false,
    timetableDays: [1, 2, 3, 4, 5],
    };
    },
    methods: {
    ......@@ -79,6 +81,11 @@ export default {
    });
    },
    },
    apollo: {
    timetableDays: {
    query: gqlTimetableDays,
    },
    },
    };
    </script>
    ......@@ -93,6 +100,7 @@ export default {
    ]"
    :params="{ type: selected.type, id: selected.objId }"
    ref="calendarWithControls"
    :calendar-days-of-week="timetableDays"
    @changeCalendarFocus="setCalendarFocus"
    @changeCalendarType="setCalendarType"
    @calendarReady="setInnerFocusAndType"
    ......
    ......@@ -7,3 +7,7 @@ query gqlAvailableTimetables {
    shortName
    }
    }
    query gqlTimetableDays {
    timetableDays
    }
    ......@@ -122,3 +122,26 @@ class SupervisionEventFeedColor(StringPreference):
    verbose_name = _("Supervision calendar feed color")
    widget = ColorWidget
    required = True
    @site_preferences_registry.register
    class DaysInCalendar(MultipleChoicePreference):
    section = chronos
    name = "days_in_calendar"
    default = ["1", "2", "3", "4", "5"]
    verbose_name = _("Days of the week that appear in the timetable")
    choices = [
    ("0", _("Sunday")),
    ("1", _("Monday")),
    ("2", _("Tuesday")),
    ("3", _("Wednesday")),
    ("4", _("Thursday")),
    ("5", _("Friday")),
    ("6", _("Saturday")),
    ]
    required = True
    def validate(self, value):
    for v in value:
    if int(v) not in self.get_choice_values():
    raise ValidationError(f"{v} is not a valid choice")
    ......@@ -10,6 +10,7 @@ from aleksis.core.schema.base import (
    from aleksis.core.schema.group import GroupType
    from aleksis.core.schema.person import PersonType
    from aleksis.core.schema.room import RoomType
    from aleksis.core.util.core_helpers import get_site_preferences, has_person
    from ..models import LessonEvent
    from ..util.build import build_substitutions_list
    ......@@ -234,6 +235,7 @@ class Query(graphene.ObjectType):
    SubstitutionsForDateType,
    date=graphene.Date(),
    )
    timetable_days = graphene.List(graphene.Int)
    def resolve_timetable_teachers(self, info, **kwargs):
    return get_teachers(info.context.user)
    ......@@ -285,6 +287,25 @@ class Query(graphene.ObjectType):
    substitutions=[sub["el"] for sub in substitutions],
    )
    @staticmethod
    def resolve_timetable_days(root, info, **kwargs):
    first_day = "default"
    if has_person(info.context):
    first_day = info.context.user.person.preferences["calendar__first_day_of_the_week"]
    if first_day == "default":
    first_day = get_site_preferences()["calendar__first_day_of_the_week"]
    first_day = int(first_day)
    days = list(map(str, range(7)))
    sorted_days = days[first_day:] + days[:first_day]
    allowed_days = get_site_preferences()["chronos__days_in_calendar"]
    return list(map(int, filter(lambda d: d in allowed_days, sorted_days)))
    class Mutation(graphene.ObjectType):
    create_amend_lessons = AmendLessonBatchCreateMutation.Field()
    ......
    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