From afc3b193f6f21419025d6eb665ded767434d89c8 Mon Sep 17 00:00:00 2001 From: Matias Bordese Date: Thu, 7 Sep 2023 08:49:33 -0300 Subject: [PATCH] Update insight logs for shift swaps requests (#2987) --- engine/apps/api/views/on_call_shifts.py | 2 +- engine/apps/api/views/shift_swap.py | 9 +++++++++ engine/apps/schedules/models/shift_swap_request.py | 10 +++++++++- 3 files changed, 19 insertions(+), 2 deletions(-) diff --git a/engine/apps/api/views/on_call_shifts.py b/engine/apps/api/views/on_call_shifts.py index 62c4e36f..4441ceb1 100644 --- a/engine/apps/api/views/on_call_shifts.py +++ b/engine/apps/api/views/on_call_shifts.py @@ -69,7 +69,7 @@ class OnCallShiftView(TeamFilteringMixin, PublicPrimaryKeyMixin, UpdateSerialize write_resource_insight_log( instance=serializer.instance, author=self.request.user, - event=EntityEvent.DELETED, + event=EntityEvent.CREATED, ) def perform_update(self, serializer): diff --git a/engine/apps/api/views/shift_swap.py b/engine/apps/api/views/shift_swap.py index 496412c5..9fbdf0fd 100644 --- a/engine/apps/api/views/shift_swap.py +++ b/engine/apps/api/views/shift_swap.py @@ -42,6 +42,7 @@ class BaseShiftSwapViewSet(ModelViewSet): def _do_take(self, benefactor: User) -> dict: shift_swap = self.get_object() + prev_state = shift_swap.insight_logs_serialized try: shift_swap.take(benefactor) @@ -50,6 +51,14 @@ class BaseShiftSwapViewSet(ModelViewSet): except exceptions.BeneficiaryCannotTakeOwnShiftSwapRequest: raise BadRequest(detail="A shift swap request cannot be created and taken by the same user") + write_resource_insight_log( + instance=shift_swap, + author=self.request.user, + event=EntityEvent.UPDATED, + prev_state=prev_state, + new_state=shift_swap.insight_logs_serialized, + ) + update_shift_swap_request_message.apply_async((shift_swap.pk,)) return ShiftSwapRequestSerializer(shift_swap).data diff --git a/engine/apps/schedules/models/shift_swap_request.py b/engine/apps/schedules/models/shift_swap_request.py index ba90e215..ad6b0406 100644 --- a/engine/apps/schedules/models/shift_swap_request.py +++ b/engine/apps/schedules/models/shift_swap_request.py @@ -235,4 +235,12 @@ class ShiftSwapRequest(models.Model): @property def insight_logs_metadata(self): - return {} + result = {} + if self.schedule.team: + result["team"] = self.schedule.team.name + result["team_id"] = self.schedule.team.public_primary_key + else: + result["team"] = "General" + result["schedule"] = self.schedule.insight_logs_verbal + result["schedule_id"] = self.schedule.public_primary_key + return result