schedule performance enhancement v2#3483
Draft
Saksham-Sirohi wants to merge 3 commits intofossasia:devfrom
Draft
schedule performance enhancement v2#3483Saksham-Sirohi wants to merge 3 commits intofossasia:devfrom
Saksham-Sirohi wants to merge 3 commits intofossasia:devfrom
Conversation
Contributor
There was a problem hiding this comment.
Sorry @Saksham-Sirohi, you have reached your weekly rate limit of 500000 diff characters.
Please try again later or upgrade to continue using Sourcery
Contributor
There was a problem hiding this comment.
Pull request overview
This PR aims to improve schedule rendering performance by reducing initial page payloads, caching expensive schedule JSON/meta computations server-side, and fetching expanded session/speaker details on demand from the API.
Changes:
- Inline a non-enriched schedule JSON payload into agenda pages (schedule/talk/speaker) and add server-side caching + cache warming on schedule release.
- Refactor/extend schedule export/QR-code URL helpers and move exporter menu construction into shared frontend utilities.
- Reduce API query overhead by making submission prefetching conditional on
expand=fields.
Reviewed changes
Copilot reviewed 22 out of 22 changed files in this pull request and generated 10 comments.
Show a summary per file
| File | Description |
|---|---|
| app/eventyay/webapp/schedule/vite.config.wc.js | Adjust build chunking and enable sourcemaps for schedule web component build. |
| app/eventyay/webapp/schedule/src/utils.js | Add helpers to compute exporters and build export menu items. |
| app/eventyay/webapp/schedule/src/lib.js | Re-export new utility helpers from the schedule library entrypoint. |
| app/eventyay/webapp/schedule/src/components/TalkDetail.vue | Render answers/resources from expanded API payload; add API fetch fallback. |
| app/eventyay/webapp/schedule/src/components/SpeakerDetail.vue | Render speaker answers and fetch speaker API payload when missing. |
| app/eventyay/webapp/schedule/src/components/SessionModal.vue | Prefer API-provided description/resources and reuse shared export menu builder. |
| app/eventyay/webapp/schedule/src/App.vue | Pre-fetch initial talk API payload in talk view; include resources in session detail fetch; compute exporters helper. |
| app/eventyay/webapp/schedule-editor/vite.config.js | Enable sourcemaps for schedule editor build. |
| app/eventyay/common/middleware/event.py | Adjust event queryset prefetch/select_related set (add cfp). |
| app/eventyay/base/models/schedule.py | Add QR-code map helpers; add submission_codes filter to build_data; refactor QR-code generation. |
| app/eventyay/api/views/submission.py | Make prefetching conditional based on expanded fields to reduce query load. |
| app/eventyay/api/serializers/question.py | Expose is_public on the base Question serializer (remove from orga-only serializer). |
| app/eventyay/api/auth/permission.py | Change default API permission behavior for anonymous SAFE requests. |
| app/eventyay/agenda/views/widget.py | Reuse new QR-code map helpers for widget QR endpoints. |
| app/eventyay/agenda/views/utils.py | Add cached schedule JSON builders (full/talk/speaker) and cache public exporter metadata. |
| app/eventyay/agenda/views/talk.py | Switch talk page to use slim per-talk schedule JSON builder. |
| app/eventyay/agenda/views/speaker.py | Add slim per-speaker schedule JSON builder to speaker page context. |
| app/eventyay/agenda/views/schedule.py | Inline/caches schedule JSON/meta and cache schedule meta JSON for released schedules. |
| app/eventyay/agenda/templates/agenda/speaker.html | Inline schedule JSON and remove enrich-data attribute. |
| app/eventyay/agenda/templates/agenda/schedule.html | Inline schedule JSON and remove enrich-data attribute. |
| app/eventyay/agenda/tasks.py | Add Celery task to warm schedule JSON caches after schedule release. |
| app/eventyay/agenda/apps.py | Hook schedule release signal to invalidate caches and enqueue cache warming. |
b741b36 to
c1ec597
Compare
c1ec597 to
bb359d7
Compare
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.
Enhancements to schedule rendering