Skip to content

Comments

KAAV-3517 OAS-vaiheen aikajana meni sekaisin (Esilläolo-2 tulee ennen esilläolo-1)#660

Merged
henrihaapalasiili merged 1 commit intoKAAV-3492bfrom
KAAV-3517
Jan 20, 2026
Merged

KAAV-3517 OAS-vaiheen aikajana meni sekaisin (Esilläolo-2 tulee ennen esilläolo-1)#660
henrihaapalasiili merged 1 commit intoKAAV-3492bfrom
KAAV-3517

Conversation

@henrihaapalasiili
Copy link
Contributor

KAAV-3517: Add phase start boundaries to confirmed_fields when first esilläolo is confirmed

Frontend changes:

  • Updated generateConfirmedFields.js to include phase START boundary fields in confirmed_fields when the first esilläolo of that phase is confirmed
  • Added phaseStartMap mapping phase names to their start boundary field identifiers
  • Phase END boundaries are NOT protected (user can still add more esilläolos)

This ensures that when a user confirms the first esilläolo date of a phase, the phase start date becomes locked and won't be recalculated during save.

…esilläolo is confirmed

Frontend changes:
- Updated generateConfirmedFields.js to include phase START boundary fields in confirmed_fields when the first esilläolo of that phase is confirmed
- Added phaseStartMap mapping phase names to their start boundary field identifiers
- Phase END boundaries are NOT protected (user can still add more esilläolos)

This ensures that when a user confirms the first esilläolo date of a phase, the phase start date becomes locked and won't be recalculated during save.
@sonarqubecloud
Copy link

@henrihaapalasiili henrihaapalasiili changed the base branch from development to KAAV-3492b January 20, 2026 09:28
@henrihaapalasiili henrihaapalasiili merged commit d6023c4 into KAAV-3492b Jan 20, 2026
3 checks passed
henrihaapalasiili added a commit that referenced this pull request Feb 3, 2026
…esilläolo is confirmed (#660)

Frontend changes:
- Updated generateConfirmedFields.js to include phase START boundary fields in confirmed_fields when the first esilläolo of that phase is confirmed
- Added phaseStartMap mapping phase names to their start boundary field identifiers
- Phase END boundaries are NOT protected (user can still add more esilläolos)

This ensures that when a user confirms the first esilläolo date of a phase, the phase start date becomes locked and won't be recalculated during save.
henrihaapalasiili added a commit that referenced this pull request Feb 16, 2026
…esilläolo is confirmed (#660)

Frontend changes:
- Updated generateConfirmedFields.js to include phase START boundary fields in confirmed_fields when the first esilläolo of that phase is confirmed
- Added phaseStartMap mapping phase names to their start boundary field identifiers
- Phase END boundaries are NOT protected (user can still add more esilläolos)

This ensures that when a user confirms the first esilläolo date of a phase, the phase start date becomes locked and won't be recalculated during save.
henrihaapalasiili added a commit that referenced this pull request Feb 19, 2026
…eenpäin, kun elementtiä siirretään menneisyydestä (#658)

* KAAV-3492 validation logic change to make validation faster

* KAAV-3492 simplified showing erross at validation saga

* KAAV-3492 removed non used UPDATE_PROJECT_FAILURE and added put error

* KAAV-3492 modified timeutil test to use dynamic dates

* KAAV-3492: Fix race condition in timeline validation

- Move validateProjectTimetable dispatch from VisTimelineGroup drag handlers
  to EditProjectTimetableModal componentDidUpdate
- Validation now triggers after checkForDecreasingValues cascade completes
- Pass attributeData directly to validateProjectTimetable action to avoid
  stale selector values
- Add guard to prevent duplicate validation requests
- Update saga to use passedAttributeData and compute diff with
  getChangedAttributeData

Fixes issue where validation was running before cascaded date values
were synced to the form, causing incorrect corrections.

* KAAV-3492: Improve timetable validation flow

- Remove unused validateProjectTimetable import from VisTimelineGroup
- Validation now triggers from EditProjectTimetableModal after cascade completes
- Saga uses passed attributeData and computes diff vs initial values
- Remove unused 'initialize' import from projectSaga

Ensures single PATCH request per date drag and proper handling of
cascaded date values before backend validation.

* guard to prevent cascade loops during validation

* KAAV-3492 Sync phase bar boundaries - each phase end = next phase start, L and XL have reversed order in ehdotus phase: lautakunta first, nähtävilläolo last bug fix

* KAAV-3492 trigger validation after adding a group, ensuring the backend cascade runs for the new dates

* KAAV-3517: Add phase start boundaries to confirmed_fields when first esilläolo is confirmed (#660)

Frontend changes:
- Updated generateConfirmedFields.js to include phase START boundary fields in confirmed_fields when the first esilläolo of that phase is confirmed
- Added phaseStartMap mapping phase names to their start boundary field identifiers
- Phase END boundaries are NOT protected (user can still add more esilläolos)

This ensures that when a user confirms the first esilläolo date of a phase, the phase start date becomes locked and won't be recalculated during save.

* KAAV-3517: Trigger validation when removing deadline groups

- Updated getChangedValues to return isAdd and isRemove separately
- Added validation trigger for group removal (isRemove) to recalculate phase boundaries
- This ensures phase dates are properly recalculated when esilläolo or lautakunta groups are deleted

* KAAV-3492: Fix esilläolo OFF handling and adjustDeadlineData

- Add hasEsillaolo check to limit esillaoloOff logic to periaatteet/luonnos phases
- Fix adjustDeadlineData || operator to explicit undefined check
- Fix test key typo tarkistettuehdotusvaihe -> tarkistettu_ehdotusvaihe

* KAAV-3492: Use DB distance values instead of hardcoded fallbacks

- objectUtil.js: Replace hardcoded gaps (22, 5) with DB values

- timeUtil.js: Remove hardcoded gap overrides for maaraaika/nahtavilla
- Add projectVisibilityUtils.js for centralized visibility logic
- Add unit tests for objectUtil, timeUtil, projectReducer

* refactor(tests): reduce duplication in timeUtil.test.js

- Extract runAndGetDaysDiff() helper for dateDifference tests
- Use test.each() for parameterized test cases
- Reduce dateDifference tests from ~150 to ~70 lines
- Fix projectReducer.test.js expected date (timezone handling)

* mock data sonarlcloud suggestion fix

* fixex local time vs Github UTC time comparison on test

* KAAV-3492 Save original values before mutation to prevent cascading against just-updated value, Only push timeline values forward if there's an actual overlaps

* KAAV-3492 commented not needed test because logic changes

* sonarcloud false positive fix

* sonarcloud false positive fix

* KAAV-3492 Fixing Frontend Distance Calculation

* KAAV-3492 when deleting phases the phase lengths leaves a gap between adjacent phases bug fix

* commented annoying local redux spam

* Fix cross-phase cascade pushing OAS deadlines when adding periaatteet groups

Skip cascade for non-boundary deadlines across phases. Only phase boundaries cascade
from previous phase. Fixes oas_esillaolo_aineiston_maaraaika incorrectly using
periaatteet predecessor instead of oasvaihe_alkaa_pvm.

* Deleting and re-adding first esillaolo crashes page fix

* - Add getDateFieldsForDeadlineGroup() to clear dates on group deletion
- Prevents stale dates from reappearing when group is re-added

* fixed test to check correct vals

* Fixed the bug where moving tarkistettu_ehdotus_kylk_maaraaika backwards caused unexpected date jumps.

* cleaned comments

* fix(timeline): filter viimeistaan_mielipiteet from cascade to prevent stale date overlap

* fix

* Timeline saving flag and validation objectutil logic changes to use actual previous index

* re-enabeling added phase leaves calculation wrong and not implementing initial distance  with validation and user would need to move it fix

* Use calculated values for timeline rendering to prevent visual jump

* fix delete ehodut,luonnos,periaatteet phase, save, come back adding not working fix

* fixes for legth when adding first lautakunta when delted

* more robust check for re-adding first phase after saving

* re-adding periaatteet,luonnos,esilläolo phases lenght to be correct

* moving princibles board dates backwards next to käynnistys end not to change käynnistys dates

* U1 date to sync with K1
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant