Upcoming and Past calendar tabs show a short message when that list is empty, so a calendar with no events is no longer a blank content area.
Empty copy stays hidden on a tab that has events.
Test plan
Open /calendar with no CalendarEvent rows and confirm Upcoming says “There are no upcoming events to display.”
Switch to Past and confirm it says “There are no past events to display.”
Add an upcoming event and confirm the Upcoming message is gone while Past still shows its empty message if there are no past events.
uv run python manage.py test schasite.tests.PublicPageTests.test_calendar_shows_empty_state_when_no_events schasite.tests.CalendarEventTests.test_calendar_page_splits_past_and_future
## Summary
Closes #34.
- Upcoming and Past calendar tabs show a short message when that list is empty, so a calendar with no events is no longer a blank content area.
- Empty copy stays hidden on a tab that has events.
## Test plan
- [ ] Open `/calendar` with no `CalendarEvent` rows and confirm Upcoming says “There are no upcoming events to display.”
- [ ] Switch to Past and confirm it says “There are no past events to display.”
- [ ] Add an upcoming event and confirm the Upcoming message is gone while Past still shows its empty message if there are no past events.
- [ ] `uv run python manage.py test schasite.tests.PublicPageTests.test_calendar_shows_empty_state_when_no_events schasite.tests.CalendarEventTests.test_calendar_page_splits_past_and_future`
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Summary
Closes #34.
Test plan
/calendarwith noCalendarEventrows and confirm Upcoming says “There are no upcoming events to display.”uv run python manage.py test schasite.tests.PublicPageTests.test_calendar_shows_empty_state_when_no_events schasite.tests.CalendarEventTests.test_calendar_page_splits_past_and_future