diff --git a/events/services/calendar.py b/events/services/calendar.py index e7019f8..24c713b 100644 --- a/events/services/calendar.py +++ b/events/services/calendar.py @@ -158,6 +158,12 @@ def week_grid(events, week_start: datetime.date) -> dict: "hours": list(range(day_start_hour, day_end_hour + 1)), "day_start_hour": day_start_hour, "day_end_hour": day_end_hour, + # The grid always spans the full day (see DEFAULT_DAY_START_HOUR/END_HOUR's + # own comment -- never clipped), so a plain "top of the grid" scroll position + # would default to an empty 00:00 view most weeks. The template scrolls its + # bounded viewport to just before this hour instead -- None when the week has + # no events at all, since there's nothing to reveal either way. + "first_event_hour": min((start.hour for _event, start, _end in spans), default=None), } diff --git a/events/tests.py b/events/tests.py index f052d3a..7d77726 100644 --- a/events/tests.py +++ b/events/tests.py @@ -1708,6 +1708,22 @@ class CalendarGridTests(EventsTestBase): self.assertEqual(grid["day_start_hour"], 0) self.assertEqual(grid["day_end_hour"], 24) + def test_week_grid_first_event_hour_is_the_earliest_events_start_hour(self): + monday = date(2026, 8, 17) + morning = self.make_event(title="Morning", start=self.at(monday, 9), end=self.at(monday, 10)) + evening = self.make_event(title="Evening", start=self.at(monday + timedelta(days=2), 18), end=self.at(monday + timedelta(days=2), 19)) + + grid = week_grid([morning, evening], monday) + + self.assertEqual(grid["first_event_hour"], 9) + + def test_week_grid_first_event_hour_is_none_when_the_week_has_no_events(self): + monday = date(2026, 8, 17) + + grid = week_grid([], monday) + + self.assertIsNone(grid["first_event_hour"]) + def test_week_grid_excludes_events_outside_the_week(self): monday = date(2026, 8, 17) event = self.make_event(start=self.at(monday + timedelta(days=7), 10)) diff --git a/management/templates/management/_document_preview_card.html b/management/templates/management/_document_preview_card.html index 120707e..b8362ec 100644 --- a/management/templates/management/_document_preview_card.html +++ b/management/templates/management/_document_preview_card.html @@ -29,6 +29,6 @@ {% if show_text_toggle %} -
{{ preview.text }}
+ {{ preview.text }}
{% endif %}
diff --git a/management/templates/management/_generic_list.html b/management/templates/management/_generic_list.html
index a7970ff..99686d6 100644
--- a/management/templates/management/_generic_list.html
+++ b/management/templates/management/_generic_list.html
@@ -17,7 +17,7 @@