From f6bc150e8e8e0a0c7b3bc1b73674f5b60bf50450 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Simon=20K=C3=BCnzel?= <simonk@fsmpi.rwth-aachen.de>
Date: Fri, 23 May 2025 01:11:07 +0200
Subject: [PATCH] Fix lecture media duration not being updated properly

---
 job_controller/jobs/media_process_scheduler/job.py | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/job_controller/jobs/media_process_scheduler/job.py b/job_controller/jobs/media_process_scheduler/job.py
index 3509ed7..d6b63e9 100644
--- a/job_controller/jobs/media_process_scheduler/job.py
+++ b/job_controller/jobs/media_process_scheduler/job.py
@@ -108,8 +108,6 @@ class ProcessScheduler:
         if self._process.publish_wait_for_full_process and missing_targets:
             return
         
-        publish_media_to_delete_due_to_metadata_conflicts = []
-        
         # Publish new media
         for target_id in self._process.publish_target_ids:
             if target_id not in self._produced_media:
@@ -165,6 +163,10 @@ class ProcessScheduler:
                     f"Publishing {target_id} (metadata {new_metadata.id}) by creating a "
                     f"new publish medium")
         
+        # Lecture doesn't know about the new publish media and that relationship is readonly. So we do a refresh.
+        self._session.flush()
+        self._session.refresh(self._lecture, ["publish_media"])
+        
         # Delete old publish media
         for publish_medium in self._lecture.publish_media:
             assert isinstance(publish_medium.medium_metadata, MediumMetadata)
-- 
GitLab