Repository navigation
Conversation
Adds an Upcoming events section to the network page with a list/calendar toggle, group and date filters, same-day clash badge and a subscribe button. The network events API now returns events overlapping the window, excludes archived groups and exposes the cancelled flag. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Preview: https://restarters-pr-944.fly.dev✅ Ready - restore and migrations succeeded.
|
|
@edwh In addition to our run through of the questions in our catchup - some additional thoughts. From taking a quick look at the preview, I love it as a concept already. Immediate utility to network coordinators. The page becomes a bit cluttered, so some considered re-jigging of the page might be needed. It now strikes me that perhaps more immediately relevant than #945 as a follow up to this is adding a similar events list / calendar to the existing events page (/party). If we did, the odd tabbing interface of /party could probably be dropped. You'd just have the list / calendar, and:
Though an open question is the map question. It's a bit less clear how that would work here. Show other events nearby without a map means an artificial definition of what 'nearby' means. But syncing a map / list / calendar based on where you're looking at on the map in the same way we do on the groups page might not quite work either. Worth playing with and thinking about more. |
…drop clash badge The events API takes include_unapproved, honoured only for an admin or a coordinator of the network (identified by api_token); everyone else still gets approved events on approved, active groups. GroupSummary now says whether the group is approved. The page sends the token and badges those events in the list, and draws them as dashed chips in the calendar. Cancelled events are struck through without being greyed out. The clash badge is gone: clash warnings belong when a group creates an event, not on the coordinator's calendar. The List/Calendar toggle uses the same styling as the share modal's target buttons, because the theme's .btn-primary.active is white on white. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…nto resdisco-248-network-calendar
…events Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|


What the prototype does now
Prototype (RESDISCO-248), not intended to merge as-is.
CalendarAddModalwith/calendar/network/{id}).aria-labelper cell, count dot only on small screens. Events on unapproved or archived groups are dashed chips; the chip's tooltip says why.GET /api/v2/networks/{id}/events:start/endreturn events overlapping the window.include_unapproved=1adds unapproved and archived groups, but only when theapi_tokenbelongs to an admin or a coordinator of that network; otherwise it is ignored.PartySummaryhascancelled;GroupSummaryhasapproved(alongside the existingarchived_at).networks.events.*.networkEventsUtil,NetworkEvents,NetworkPage); PHPUnittestNetworkEventsOverlapArchivedAndCancelledandtestNetworkEventsIncludeUnapprovedForCoordinators(guest, host, another network's coordinator, this network's coordinator, admin).Out of scope: clash detection (better as a warning when a group creates an event on a busy day, a separate feature), map view, URL-synced filters, pagination. The component fetches directly with axios rather than via the events Vuex store (the store's old-format conversion expects stats the summary feed does not carry).
Screenshots
List, upcoming only (the default):
List with past events, showing the archived group's past event:
Calendar, and the next month with the unapproved group's event as a dashed chip:
Decisions (from the call with Edward and Neil)
include_unapprovedis ignored for guests, hosts, volunteers and other networks' coordinators (tested)./calendar/network/{id}iCal feed, via the "Subscribe to calendar" button.Notes
/party.networks.phpblocks, which are near-identical by nature. Excludinglang/**from duplication in SonarCloud's project settings would fix it; that setting is only in the SonarCloud UI.