From cad0c10e630fcf8aa510c32c6fedaa0b524b4647 Mon Sep 17 00:00:00 2001 From: Dinesh <97143739+dinesh-aot@users.noreply.github.com> Date: Tue, 16 Apr 2024 09:26:58 -0700 Subject: [PATCH] 1470 (#2121) * project name issue fix for works * Existence check for work title changes * handle termination/withdrawn * work start date per start event and phaes change --- .../src/api/actions/set_work_state.py | 15 ++++++++++-- epictrack-api/src/api/services/event.py | 17 +++++++++++++ .../002_Exemption_Request.xlsx | Bin 83564 -> 82337 bytes .../workPlan/phase/PhaseAccordion.tsx | 23 +++++++++++++----- 4 files changed, 47 insertions(+), 8 deletions(-) diff --git a/epictrack-api/src/api/actions/set_work_state.py b/epictrack-api/src/api/actions/set_work_state.py index 85b857375..97f53c49a 100644 --- a/epictrack-api/src/api/actions/set_work_state.py +++ b/epictrack-api/src/api/actions/set_work_state.py @@ -2,7 +2,8 @@ from api.actions.base import ActionFactory from api.models import db -from api.models.work import Work +from api.models.work import Work, WorkStateEnum +from .change_phase_end_event import ChangePhaseEndEvent class SetWorkState(ActionFactory): @@ -10,6 +11,16 @@ class SetWorkState(ActionFactory): def run(self, source_event, params) -> None: """Sets the work as per action configuration""" + work_state = params.get("work_state") + if work_state in [WorkStateEnum.TERMINATED.value, WorkStateEnum.WITHDRAWN.value]: + change_phase_end_event = ChangePhaseEndEvent() + change_phase_end_event_param = { + "phase_name": source_event.event_configuration.work_phase.name, + "work_type_id": source_event.work.work_type_id, + "ea_act_id": source_event.work.ea_act_id, + "event_name": source_event.event_configuration.name + } + change_phase_end_event.run(source_event, change_phase_end_event_param) db.session.query(Work).filter(Work.id == source_event.work_id).update( - {Work.work_state: params.get("work_state")} + {Work.work_state: work_state} ) diff --git a/epictrack-api/src/api/services/event.py b/epictrack-api/src/api/services/event.py index 72ef6ebb7..03bed1cf0 100644 --- a/epictrack-api/src/api/services/event.py +++ b/epictrack-api/src/api/services/event.py @@ -307,6 +307,9 @@ def _process_events( cls._previous_event_acutal_date_rule( all_work_events, all_work_phases, current_work_phase_index, event, event_old ) + cls._handle_work_start_date_for_start_event_start_phase( + event, current_work_phase_index + ) number_of_days_to_be_pushed = cls._get_number_of_days_to_be_pushed( event, event_old, current_work_phase ) @@ -531,6 +534,20 @@ def _handle_work_phase_for_start_event( current_work_phase.as_dict(recursive=False), commit=False ) + @classmethod + def _handle_work_start_date_for_start_event_start_phase( + cls, event: Event, current_phase_index: int + ): + """Update the work start date to the event's actual if the event is start event and the phase is start phase""" + if ( + event.actual_date + and event.event_position == EventPositionEnum.START.value + and current_phase_index == 0 + ): + work = event.work + work.start_date = event.actual_date + work.update(work.as_dict(recursive=False), commit=False) + @classmethod def _handle_end_event_date_when_start_event_changed( cls, diff --git a/epictrack-api/src/api/templates/event_templates/exemption_request/002_Exemption_Request.xlsx b/epictrack-api/src/api/templates/event_templates/exemption_request/002_Exemption_Request.xlsx index 1916e0545a880e79ec5abdd6d37458f955e6cb28..af26c5aea81fe4d30e96d53582e1b75e294644d3 100644 GIT binary patch delta 17400 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 S51H~ { { : Palette.neutral.dark, }} > - {phase.days_left < 0 ? 0 : phase.days_left} /{" "} - {phase.total_number_of_days.toString()} - {phase.days_left < 0 - ? ` (${Math.abs(phase.days_left)} over)` - : ""} + {phase.work_phase.is_completed && ( + <>{phase.days_left < 0 ? 0 : phase.days_left} + )} + {!phase.work_phase.is_completed && ( + <> + {phase.days_left < 0 ? 0 : phase.days_left} /{" "} + {phase.total_number_of_days.toString()} + {phase.days_left < 0 + ? ` (${Math.abs(phase.days_left)} over)` + : ""} + + )}