From 726e66febab8bb2fe16d9600526056b69ae9dbbf Mon Sep 17 00:00:00 2001 From: Jonathan Weth <git@jonathanweth.de> Date: Fri, 12 Apr 2024 21:49:55 +0200 Subject: [PATCH] Support displaying dates of validity ranges in TimeGridField --- .../validity_range/TimeGridField.vue | 30 +++++++++++++------ .../apps/lesrooster/frontend/messages/en.json | 6 ++-- 2 files changed, 25 insertions(+), 11 deletions(-) diff --git a/aleksis/apps/lesrooster/frontend/components/validity_range/TimeGridField.vue b/aleksis/apps/lesrooster/frontend/components/validity_range/TimeGridField.vue index 73134aa4..87e3ee93 100644 --- a/aleksis/apps/lesrooster/frontend/components/validity_range/TimeGridField.vue +++ b/aleksis/apps/lesrooster/frontend/components/validity_range/TimeGridField.vue @@ -47,6 +47,13 @@ export default defineComponent({ required: [(value) => !!value || this.$t("forms.errors.required")], }; }, + props: { + withDates: { + type: Boolean, + required: false, + default: false, + }, + }, methods: { getCreateData(item) { return { @@ -80,16 +87,21 @@ export default defineComponent({ ); }, formatItem(item) { - if (item.group === null) { - return this.$t( - "lesrooster.validity_range.time_grid.repr.generic", - item.validityRange, - ); + const data = { + name: item.validityRange.name, + group: item.group ? item.group.name : "", + start: this.$d(this.$parseISODate(item.validityRange.dateStart)), + end: this.$d(this.$parseISODate(item.validityRange.dateEnd)), + }; + + let key = "generic"; + if (item.group !== null) { + key = "group"; + } + if (this.withDates) { + key = "dates_" + key; } - return this.$t("lesrooster.validity_range.time_grid.repr.default", [ - item.validityRange.name, - item.group.name, - ]); + return this.$t(`lesrooster.validity_range.time_grid.repr.${key}`, data); }, }, }); diff --git a/aleksis/apps/lesrooster/frontend/messages/en.json b/aleksis/apps/lesrooster/frontend/messages/en.json index 9a73841f..1789802d 100644 --- a/aleksis/apps/lesrooster/frontend/messages/en.json +++ b/aleksis/apps/lesrooster/frontend/messages/en.json @@ -36,8 +36,10 @@ }, "confirm_delete_body": "If you remove this group from the validity range, all connected data, like slots and lessons are deleted.", "repr": { - "default": "{0} ({1})", - "generic": "{name} (generic/catch-all)" + "default": "{name} ({group})", + "generic": "{name} (generic/catch-all)", + "dates_default": "{start}–{end} ({group})", + "dates_generic": "{start}–{end}" } } }, -- GitLab