diff --git a/aleksis/apps/chronos/frontend/components/Timetable.vue b/aleksis/apps/chronos/frontend/components/Timetable.vue index 6cd8e875adf52c96bc8062c4e1ed0001480ef16b..d685684be91e9e63b7c1e2dc0e991ee7b098b7cf 100644 --- a/aleksis/apps/chronos/frontend/components/Timetable.vue +++ b/aleksis/apps/chronos/frontend/components/Timetable.vue @@ -10,6 +10,21 @@ export default { apollo: { availableTimetables: { query: gqlAvailableTimetables, + result() { + if ( + !this.selected && + this.$route.params.id && + this.$route.params.type + ) { + this.selectTimetable( + this.availableTimetables.find( + (t) => + t.objId === this.$route.params.id && + t.type.toLowerCase() === this.$route.params.type + ) + ); + } + }, }, }, data() { @@ -29,7 +44,7 @@ export default { this.$router.push({ name: "chronos.timetable" }); } else if ( selected.objId !== this.$route.params.id || - selected.type !== this.$route.params.type + selected.type.toLowerCase() !== this.$route.params.type ) { this.$router.push({ name: "chronos.timetableWithId", diff --git a/aleksis/apps/chronos/frontend/index.js b/aleksis/apps/chronos/frontend/index.js index c6492797fe70c3e789fb1f937c7035ad7b3d1da7..ad8b0516a4e2599588c1646465f7dfc00cd95fa3 100644 --- a/aleksis/apps/chronos/frontend/index.js +++ b/aleksis/apps/chronos/frontend/index.js @@ -27,187 +27,8 @@ export default { path: "timetable/:type/:id/", component: Timetable, name: "chronos.timetableWithId", - }, - { - path: "", - component: () => import("aleksis.core/components/LegacyBaseTemplate.vue"), - name: "chronos.allTimetables", - meta: { - inMenu: true, - titleKey: "chronos.timetable.menu_title_all", - icon: "mdi-grid", - permission: "chronos.view_timetable_overview_rule", - }, - props: { - byTheGreatnessOfTheAlmightyAleksolotlISwearIAmWorthyOfUsingTheLegacyBaseTemplate: true, - }, - }, - { - path: "timetable/my/", - component: () => import("aleksis.core/components/LegacyBaseTemplate.vue"), - name: "chronos.myTimetable", meta: { - inMenu: true, - titleKey: "chronos.timetable.menu_title_my", - icon: "mdi-account-outline", - permission: "chronos.view_my_timetable_rule", - }, - props: { - byTheGreatnessOfTheAlmightyAleksolotlISwearIAmWorthyOfUsingTheLegacyBaseTemplate: true, - }, - }, - { - path: "timetable/my/:year/:month/:day/", - component: () => import("aleksis.core/components/LegacyBaseTemplate.vue"), - name: "chronos.myTimetableByDate", - props: { - byTheGreatnessOfTheAlmightyAleksolotlISwearIAmWorthyOfUsingTheLegacyBaseTemplate: true, - }, - }, - { - path: "timetable/:type_/:pk/", - component: () => import("aleksis.core/components/LegacyBaseTemplate.vue"), - name: "chronos.timetable", - props: { - byTheGreatnessOfTheAlmightyAleksolotlISwearIAmWorthyOfUsingTheLegacyBaseTemplate: true, - }, - }, - { - path: "timetable/:type_/:pk/:year/:week/", - component: () => import("aleksis.core/components/LegacyBaseTemplate.vue"), - name: "chronos.timetableByWeek", - props: { - byTheGreatnessOfTheAlmightyAleksolotlISwearIAmWorthyOfUsingTheLegacyBaseTemplate: true, - }, - }, - { - path: "timetable/:type_/:pk/print/", - component: () => import("aleksis.core/components/LegacyBaseTemplate.vue"), - name: "chronos.timetablePrint", - props: { - byTheGreatnessOfTheAlmightyAleksolotlISwearIAmWorthyOfUsingTheLegacyBaseTemplate: true, - }, - }, - { - path: "timetable/:type_/:pk/:regular/", - component: () => import("aleksis.core/components/LegacyBaseTemplate.vue"), - name: "chronos.timetableRegular", - props: { - byTheGreatnessOfTheAlmightyAleksolotlISwearIAmWorthyOfUsingTheLegacyBaseTemplate: true, - }, - }, - { - path: "lessons/", - component: () => import("aleksis.core/components/LegacyBaseTemplate.vue"), - name: "chronos.lessonsDay", - meta: { - inMenu: true, - titleKey: "chronos.lessons.menu_title_daily", - icon: "mdi-calendar-outline", - permission: "chronos.view_lessons_day_rule", - }, - props: { - byTheGreatnessOfTheAlmightyAleksolotlISwearIAmWorthyOfUsingTheLegacyBaseTemplate: true, - }, - }, - { - path: "lessons/:year/:month/:day/", - component: () => import("aleksis.core/components/LegacyBaseTemplate.vue"), - name: "chronos.lessonsDayByDate", - props: { - byTheGreatnessOfTheAlmightyAleksolotlISwearIAmWorthyOfUsingTheLegacyBaseTemplate: true, - }, - }, - { - path: "lessons/:id_/:week/substitution/", - component: () => import("aleksis.core/components/LegacyBaseTemplate.vue"), - name: "chronos.editSubstitution", - props: { - byTheGreatnessOfTheAlmightyAleksolotlISwearIAmWorthyOfUsingTheLegacyBaseTemplate: true, - }, - }, - { - path: "lessons/:id_/:week/substitution/delete/", - component: () => import("aleksis.core/components/LegacyBaseTemplate.vue"), - name: "chronos.deleteSubstitution", - props: { - byTheGreatnessOfTheAlmightyAleksolotlISwearIAmWorthyOfUsingTheLegacyBaseTemplate: true, - }, - }, - { - path: "substitutions/", - component: () => import("aleksis.core/components/LegacyBaseTemplate.vue"), - name: "chronos.substitutions", - meta: { - inMenu: true, - titleKey: "chronos.substitutions.menu_title", - icon: "mdi-update", - permission: "chronos.view_substitutions_rule", - }, - props: { - byTheGreatnessOfTheAlmightyAleksolotlISwearIAmWorthyOfUsingTheLegacyBaseTemplate: true, - }, - }, - { - path: "substitutions/print/", - component: () => import("aleksis.core/components/LegacyBaseTemplate.vue"), - name: "chronos.substitutionsPrint", - props: { - byTheGreatnessOfTheAlmightyAleksolotlISwearIAmWorthyOfUsingTheLegacyBaseTemplate: true, - }, - }, - { - path: "substitutions/:year/:month/:day/", - component: () => import("aleksis.core/components/LegacyBaseTemplate.vue"), - name: "chronos.substitutionsByDate", - props: { - byTheGreatnessOfTheAlmightyAleksolotlISwearIAmWorthyOfUsingTheLegacyBaseTemplate: true, - }, - }, - { - path: "substitutions/:year/:month/:day/print/", - component: () => import("aleksis.core/components/LegacyBaseTemplate.vue"), - name: "chronos.substitutionsPrintByDate", - props: { - byTheGreatnessOfTheAlmightyAleksolotlISwearIAmWorthyOfUsingTheLegacyBaseTemplate: true, - }, - }, - { - path: "supervisions/", - component: () => import("aleksis.core/components/LegacyBaseTemplate.vue"), - name: "chronos.supervisionsDay", - meta: { - inMenu: true, - titleKey: "chronos.supervisions.menu_title_daily", - icon: "mdi-calendar-outline", - permission: "chronos.view_supervisions_day_rule", - }, - props: { - byTheGreatnessOfTheAlmightyAleksolotlISwearIAmWorthyOfUsingTheLegacyBaseTemplate: true, - }, - }, - { - path: "supervisions/:year/:month/:day/", - component: () => import("aleksis.core/components/LegacyBaseTemplate.vue"), - name: "chronos.supervisionsDayByDate", - props: { - byTheGreatnessOfTheAlmightyAleksolotlISwearIAmWorthyOfUsingTheLegacyBaseTemplate: true, - }, - }, - { - path: "supervisions/:id_/:week/substitution/", - component: () => import("aleksis.core/components/LegacyBaseTemplate.vue"), - name: "chronos.editSupervisionSubstitution", - props: { - byTheGreatnessOfTheAlmightyAleksolotlISwearIAmWorthyOfUsingTheLegacyBaseTemplate: true, - }, - }, - { - path: "supervisions/:id_/:week/substitution/delete/", - component: () => import("aleksis.core/components/LegacyBaseTemplate.vue"), - name: "chronos.deleteSupervisionSubstitution", - props: { - byTheGreatnessOfTheAlmightyAleksolotlISwearIAmWorthyOfUsingTheLegacyBaseTemplate: true, + permission: "chronos.view_timetables_rule", }, }, ], diff --git a/aleksis/apps/chronos/menus.py b/aleksis/apps/chronos/menus.py deleted file mode 100644 index 810e88c6d75a4cefb95210234fb70d690bb32ea1..0000000000000000000000000000000000000000 --- a/aleksis/apps/chronos/menus.py +++ /dev/null @@ -1,73 +0,0 @@ -from django.utils.translation import gettext_lazy as _ - -MENUS = { - "NAV_MENU_CORE": [ - { - "name": _("Timetables"), - "url": "#", - "svg_icon": "mdi:school-outline", - "root": True, - "validators": [ - "menu_generator.validators.is_authenticated", - "aleksis.core.util.core_helpers.has_person", - ], - "submenu": [ - { - "name": _("My timetable"), - "url": "my_timetable", - "svg_icon": "mdi:account-outline", - "validators": [ - ( - "aleksis.core.util.predicates.permission_validator", - "chronos.view_my_timetable_rule", - ), - ], - }, - { - "name": _("All timetables"), - "url": "all_timetables", - "svg_icon": "mdi:grid", - "validators": [ - ( - "aleksis.core.util.predicates.permission_validator", - "chronos.view_timetable_overview_rule", - ), - ], - }, - { - "name": _("Daily lessons"), - "url": "lessons_day", - "svg_icon": "mdi:calendar-outline", - "validators": [ - ( - "aleksis.core.util.predicates.permission_validator", - "chronos.view_lessons_day_rule", - ), - ], - }, - { - "name": _("Daily supervisions"), - "url": "supervisions_day", - "svg_icon": "mdi:calendar-outline", - "validators": [ - ( - "aleksis.core.util.predicates.permission_validator", - "chronos.view_supervisions_day_rule", - ), - ], - }, - { - "name": _("Substitutions"), - "url": "substitutions", - "svg_icon": "mdi:update", - "validators": [ - ( - "aleksis.core.util.predicates.permission_validator", - "chronos.view_substitutions_rule", - ), - ], - }, - ], - } - ] -}