Skip to content

Commit

Permalink
update assignment preview to support multilngual fields data
Browse files Browse the repository at this point in the history
  • Loading branch information
devketanpro committed Nov 8, 2023
1 parent 003c1c5 commit 7c1896e
Showing 1 changed file with 23 additions and 1 deletion.
24 changes: 23 additions & 1 deletion server/planning/planning/planning.py
Original file line number Diff line number Diff line change
Expand Up @@ -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", "")
Expand All @@ -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)

Expand Down Expand Up @@ -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
Expand All @@ -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"),
Expand All @@ -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"]
Expand Down Expand Up @@ -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(
Expand Down

0 comments on commit 7c1896e

Please sign in to comment.