Bulk fixups from staff review#285
Merged
JacobCoffee merged 19 commits intomainfrom Apr 30, 2026
Merged
Conversation
Per organizer feedback — the official venue name includes "& Entertainment Center". Updates the Venues & Hours hero and the Wi-Fi availability note. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
The conference-map page now hosts multiple maps (Floor Plans, 3D Tour, Expo Hall) so the entry point label should be plural. Updates the side menu, the Help page link, and the Venues & Hours quick-link. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Tutorials run May 13-14, the main conference May 13-17, and Sprints May 18-19. The hero subtitle should cover the full attendee window. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…oard Talk slots actually run 30-45 minutes. Open Space sign-ups happen on the digital board, not a physical one — call that out so attendees know where to look. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
The previous handle (pycon.org) is broken — the official PyCon US Bluesky account lives at @pycon.us. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- Sponsors now points at python.org/psf/sponsors/ (the canonical page) - Volunteer at PyCon US now points at us.pycon.org/2026/volunteer/volunteering/ (the conference-year volunteer page) instead of the generic PSF page - Adds a PSF LinkedIn entry under News & Social Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Organizers confirmed PyLadies Lunch is in Room 101AB, not 103AB. The 101A/101B room entries already advertise PyLadies Lunch, so the dedicated 103AB entry added in 7687a5b was based on incorrect upstream data and is no longer needed. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Mirrors the treatment Open Spaces gets on the schedule list — a short description of what Development Sprints are, plus a button to the canonical Sprints page on us.pycon.org for full details. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
The previous implementation passed `App-prefs:WIFI` (private iOS API) and the bare action constant `android.settings.WIFI_SETTINGS` to window.open — neither is a valid URL, so the button silently failed. - Android: use the intent URL form `intent:#Intent;action=android.settings.WIFI_SETTINGS;end`, which the OS URL handler dispatches to Settings.ACTION_WIFI_SETTINGS. - iOS: Apple doesn't allow third-party apps to deep-link to the Wi-Fi pane. Open `app-settings:` (the sanctioned URL scheme that lands on the app's own Settings page) and surface a toast pointing the user one tap further: "Tap Wi-Fi from Settings to connect to PyConUS26". - Web/PWA fallback: show a toast instructing the user to open device settings manually, since there's no programmatic path off the page. Each branch is wrapped in try/catch with a friendly fallback toast so the button is never just dead. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
The CMS-side wifi content is just SSID/password, so the sponsor mention has to live in the app shell. Subscribes to the sponsor list, finds the first sponsor whose name contains "temporal" (case-insensitive), and renders a small card under the password card linking to the sponsor detail page. If the sponsor list is missing or doesn't include Temporal, the card simply doesn't render. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Per organizer ask. The CMS markdown for Venues & Hours doesn't carry sponsor info, so this attaches a sponsor binding in the section builder: when a section heading matches "quiet room", look up the sponsor named (case-insensitive contains) "google" from the conference sponsor list and render a small card next to the Quiet Room map that links to the Google sponsor detail page. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Tapping the calendar icon was silently doing nothing for a lot of users. Three causes covered here: 1. On web/PWA, @ebarooni/capacitor-calendar is a no-op that resolves silently. Detect non-hybrid platforms and skip the native plugin entirely — open Google Calendar's prefilled `render?action=TEMPLATE` URL in the system browser instead. 2. On native, wrap the plugin calls in try/catch. On any failure (permission denied, plugin throw), fall back to the same Google Calendar URL with a toast: "Opening Google Calendar instead…". 3. Validate session.startUtc / session.endUtc up front. If either parses to NaN, show a toast and bail rather than handing garbage to the plugin or the URL. Description now also includes the session URL so the resulting calendar event still links back to the schedule entry. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Adds a "Job Fair" segment alongside Floor Plans / 3D Tour / Expo Hall that renders the Job Fair & Community Showcase floor plan in a pinch-zoom view. Reuses the same pinch-zoom config as the floor-plan modal so behaviour matches the existing maps. The *ngIf binding recreates the pinch-zoom on tab switch, which resets zoom state for free. Source PNG was 6600×8400 / 4.3 MB; resized to 1700×2200 JPG (~340 KB) for the full view and 618×800 thumb (~64 KB) — same sizing budget as the existing floor-plans. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
When a session is the Job Fair (matched on name + content_override containing "job fair"), show a compact card under the hero with the floor-plan thumbnail and a "View Job Fair Floor Plan" affordance. Tapping opens the existing FloorPlanModalComponent zoomed view, so the same pinch-zoom UI used on the conference-map tab. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Tapping a sponsor's booth pill sometimes zoomed the Expo Hall map to a DIFFERENT sponsor's booth. Three prior commits chased this in the map component (queryParamMap subscribe + router.events fallback + lastZoomedBoothId). It was never a map-side problem. Root cause is in sponsor-detail. IonicRouteStrategy reuses the same component instance across different :sponsorId values (the routeConfig is identical), so `this.sponsor` from the previous sponsor lingers. The old lookup loop had `if (this.sponsor) break` after the inner loop, so once it stayed truthy from the prior sponsor it skipped the remaining levels — never finding the new sponsor and rendering the OLD sponsor's data (including booth_number) on the new sponsor's URL. Tapping the booth pill then navigated to the wrong booth. Fix: - sponsor-detail.ts now resets sponsor/jobListings on entry, and the level scan uses a labelled `break outer` so a real new match exits cleanly (not a stale-state short-circuit). - expo-hall-map.component.ts: while in there, drop the queryParamMap + router.events + lastZoomedBoothId triple. Replace with a public zoomToBoothId(id) the parent can call, plus a zoomToken to invalidate superseded async zooms (rare race when a second tap arrives while the first awaits image load). - conference-map.page.ts gains an ionViewWillEnter that reads ?booth=<id> off route.snapshot, flips the segment to expo-hall, and calls expoMap.zoomToBoothId(). Ionic guarantees ionViewWillEnter fires on every entry — first nav, cached re-entry with a new booth, tab-switch, cold-start deeplink — so the dual-subscription dance is unnecessary. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Mirrors the affordance added to the Job Fair session-detail page in 6775a89 — a compact card under the search bar with the floor-plan thumbnail opens the existing FloorPlanModalComponent zoom view. Every listing on this page is a job-fair-adjacent role, so the card is always rendered (no per-row guard). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
All summits (Typing, Packaging, Maintainers, etc.) require advance registration just like tutorials, but the preRegistered flag was only firing for kind="tutorial" or names that literally contained "pre-registration". Summits got neither, so the "Pre-registration required" badge never showed up for them on the schedule list, room detail, or session detail pages. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Schedule list and session detail render the "Pre-registration required" badge from session.preRegistered, but the room-detail list omitted it. Tutorials/summits/PyLadies Lunch in a room view now match the badge treatment elsewhere in the app. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Per organizer ask. The CMS-driven body was already addressed in the content-update script, but the page hero, ion-title, and side-menu entry are hardcoded in the app and were still plural. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
-use full "Long Beach Convention & Entertainment Center" name