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

Improve format of date and times for calendar events, fix all day events

parent 107c65b8
No related branches found
No related tags found
1 merge request!1148Calendar events and iCal feeds
......@@ -26,13 +26,31 @@
</v-list-item-icon>
<v-list-item-content>
<v-list-item-title>
<span v-if="selectedEvent.start !== selectedEvent.end">
<span
v-if="
selectedEvent.allDay &&
selectedEvent.start.getTime() === selectedEvent.end.getTime()
"
>
{{ $d(selectedEvent.start, "short") }}
</span>
<span v-else-if="selectedEvent.allDay">
{{ $d(selectedEvent.start, "short") }}
{{ $d(selectedEvent.end, "short") }}
</span>
<span
v-else-if="
dateWithoutTime(selectedEvent.start).getTime() ===
dateWithoutTime(selectedEvent.end).getTime()
"
>
{{ $d(selectedEvent.start, "shortDateTime") }}
{{ $d(selectedEvent.end, "shortDateTime") }}
{{ $d(selectedEvent.end, "shortTime") }}
</span>
<span v-else>
{{ $d(selectedEvent.start, "shortDateTime") }}</span
>
{{ $d(selectedEvent.start, "shortDateTime") }}
{{ $d(selectedEvent.end, "shortDateTime") }}
</span>
</v-list-item-title>
</v-list-item-content>
</v-list-item>
......@@ -63,5 +81,12 @@ export default {
name: "BaseCalendarFeedDetails",
components: { CancelledCalendarStatusChip },
mixins: [calendarFeedDetailsMixin],
methods: {
dateWithoutTime(d) {
d = new Date(d);
d.setHours(0, 0, 0, 0);
return d;
},
},
};
</script>
......@@ -1562,11 +1562,15 @@ class CalendarEvent(CalendarEventMixin, ExtensiblePolymorphicModel):
@classmethod
def value_end_datetime(
cls, reference_object: "CalendarEvent", request
) -> Union[datetime, date]:
) -> Union[datetime, date, None]:
"""Return the end datetime of the calendar event."""
if reference_object.datetime_end:
return reference_object.datetime_end.astimezone(reference_object.timezone)
return reference_object.date_end + timedelta(days=1)
if reference_object.date_end == reference_object.date_start:
# Rule for all day events: If the event is only one day long,
# the end date has to be empty
return None
return reference_object.date_end
@classmethod
def value_rrule(cls, reference_object: "CalendarEvent", request) -> Optional[vRecur]:
......
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