fix: wire Details card edit to event details modal (#1631)#2222
fix: wire Details card edit to event details modal (#1631)#2222aasimsyed wants to merge 17 commits into
Conversation
Extract shared time normalization for create and update, and route event PUT through EventPUTSerializer so orgs, schedule, and location can be updated without the read serializer.
Add date utilities to map API event times to form state, normalize v-calendar ranges, and build PUT payloads for all-day and timed entries.
Wire the Details card pencil to ModalEventDetails for orgs, location, and schedule edits, fixing org pre-population, all-day checkbox state, and single-day calendar hydration on reopen.
Cover Details card edit wiring, detail mutations, updateEvent service calls, and schedule mapping behavior.
Add PREVIEW_CLEAN to force fresh builds, reuse existing .output when unchanged, and switch the frontend healthcheck to wget.
Add content and permissions specs for the Details card modal, covering organizations, schedule, location saves, and member access rules.
✅ Deploy Preview for activist-org ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
Thank you for the pull request! ❤️The activist team will do our best to address your contribution as soon as we can. The following are some important points:
Note activist uses Conventional Comments in reviews to make sure that communication is as clear as possible. |
Maintainer ChecklistThe following is a checklist for maintainers to make sure this process goes as well as possible. Feel free to address the points below yourself in further commits if you realize that actions are needed :)
|
Satisfy numpydoc lint for validate_times, validate, and update on the event details PUT serializer.
Move detail update cases into test_event_update.py so test function names match the file prefix required by validate_pytest_structure.
…y CI. Extract focused helpers for event time validation and PUT update steps so cyclomatic complexity stays within the allowed limit.
Move shared schedule labels to _global keys and modal-specific strings to modal_event_details so key-naming and sorted-keys CI checks pass.
Document the extracted serializer helpers so numpydoc lint passes in CI.
Tighten event time and location types, format frontend files, and fix lint ordering and unused imports on the event details edit branch.
Retry async org option loading and next-step navigation so create-event and create-group modal specs stop flaking on Mobile Chrome CI.
Target edit-event-texts on the About card and share a stronger loadSecondPage helper for list pagination specs.
Resolve conflicts from the upstream dependency/feature updates: - i18n locales (en-US, de, es, fr, id, it, uk): drop the stale components._global.action key (main renamed it to _global.action and updated all call sites) while keeping components._global.all_day_long_event, which the event details/time components use. - Combine the duplicated "Physical location" value (PR's modal_event_details.physical_location and main's use_get_label_by_key_filter.location_type_physical) into a shared _global.physical_location key and repoint both call sites, satisfying the i18n-check repeat-values rule. - backend/complexipy-snapshot.json: regenerate from the merged events/serializers.py (both EventPUTSerializer and main's create refactor are present; all functions now within the complexity limit).
…ils-edit-modal # Conflicts: # docker-compose.yml # frontend/i18n/locales/ar.json # frontend/i18n/locales/de.json # frontend/i18n/locales/en-US.json # frontend/i18n/locales/es.json # frontend/i18n/locales/fr.json # frontend/i18n/locales/id.json # frontend/i18n/locales/it.json # frontend/i18n/locales/uk.json # frontend/test-e2e/component-objects/CreateGroupModal.ts
Contributor checklist
Description
Fixes #1631 by wiring the Details card pencil on the event About page to a new
ModalEventDetailsinstead of the text edit modal. The modal supports editing organizations, location type/link, and event schedule (all-day and timed).Backend
EventPUTSerializerfor partial updates to orgs, times, location type, online link, and physical location_prepare_event_times()shared by create and update flowsEventDetailAPIViewPUT through the new serializerFrontend
ModalEventDetailswith form validation anduseEventDetailMutationsedit-event-details) from About text edit (edit-event-texts)Tests
test_event_update_details.pyupdateEvent, mutations,CardDetailsevent-about-details-content.spec.tsandevent-about-details-permissions.spec.ts(permissions, orgs, schedule, online link)Docker (dev convenience)
PREVIEW_CLEANto force preview rebuilds.outputwhen unchangedcurltowgetTesting performed
event-about-details-*.spec.tsagainst local previewRelated issue