From 7c1896e155e51892541fa70de978ade3f56fc04e Mon Sep 17 00:00:00 2001 From: devketanpro Date: Wed, 8 Nov 2023 18:42:49 +0530 Subject: [PATCH] update assignment preview to support multilngual fields data --- server/planning/planning/planning.py | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/server/planning/planning/planning.py b/server/planning/planning/planning.py index 3204a9ec0..1414b1160 100644 --- a/server/planning/planning/planning.py +++ b/server/planning/planning/planning.py @@ -456,6 +456,7 @@ def remove_coverage_entity(self, coverage_entity, original_planning, entity_type self._create_update_assignment(original_planning, {}, updated_coverage_entity, coverage_entity) def add_coverages(self, updates, original): + # print("sdjksndfndsjksdjndsjdsjdsndjsjsdjsdfjn\n\n\n\n\n\n\n\n", original) planning_date = original.get("planning_date") or updates.get("planning_date") for coverage in updates.get("coverages") or []: coverage_id = coverage.get("coverage_id", "") @@ -474,6 +475,7 @@ def add_coverages(self, updates, original): set_original_creator(coverage) self.set_coverage_active(coverage, updates) self.set_slugline_from_xmp(coverage, None) + # print("sdjksndfndsjksdjndsjdsjdsndjsjsdjsdfjn\n\n\n\n\n\n\n\n", original) self._create_update_assignment(original, updates, coverage) self.add_scheduled_updates(updates, original, coverage) @@ -735,6 +737,21 @@ def _create_update_assignment( coverage_status = updates.get("workflow_status", original.get("workflow_status")) is_coverage_draft = coverage_status == WORKFLOW_STATE.DRAFT + translations = planning.get("translations") + if translations is not None: + translated_value = { + entry["field"]: entry["value"] + for entry in translations or [] + if entry["language"] == doc.get("planning", {}).get("language") + } + doc["planning"].update( + { + key: val + for key, val in translated_value.items() + if key in ("ednote", "description_text", "headline", "slugline", "authors", "internal_note") + } + ) + if not assigned_to.get("assignment_id") and (assigned_to.get("user") or assigned_to.get("desk")): # Creating a new assignment assign_state = ASSIGNMENT_WORKFLOW_STATE.DRAFT if is_coverage_draft else ASSIGNMENT_WORKFLOW_STATE.ASSIGNED @@ -743,6 +760,9 @@ def _create_update_assignment( if assigned_to.get("state") and assigned_to["state"] != ASSIGNMENT_WORKFLOW_STATE.DRAFT: assign_state = assigned_to.get("state") + if translated_value.get("name") and not "headline" in doc["planning"]: + doc["planning"]["headline"] = translated_value.get("name") + assignment = { "assigned_to": { "user": assigned_to.get("user"), @@ -756,6 +776,8 @@ def _create_update_assignment( "priority": assigned_to.get("priority", DEFAULT_ASSIGNMENT_PRIORITY), "description_text": planning.get("description_text"), } + if translated_value.get("name") and assignment.get("name") != translated_value.get("name"): + assignment["name"] = translated_value.get("name") if doc.get("scheduled_update_id"): assignment["scheduled_update_id"] = doc["scheduled_update_id"] @@ -846,7 +868,7 @@ def _create_update_assignment( # If the Planning name has been changed if planning_original.get("name") != planning_updates.get("name"): - assignment["name"] = planning["name"] + assignment["name"] = planning["name"] if not translated_value.get("name") else translated_value["name"] # If there has been a change in the planning internal note then notify the assigned users/desk if planning_updates.get("internal_note") and planning_original.get("internal_note") != planning_updates.get(