From 2a697c4ba43f5521c2c5348f25cb3254894ce91a Mon Sep 17 00:00:00 2001
From: Jan-Hendrik Willms <tleilax+studip@gmail.com>
Date: Thu, 23 Mar 2023 14:33:04 +0000
Subject: [PATCH] fix responsible institute assignment for modules, fixes #2434

Closes #2434

Merge request studip/studip!1625
---
 lib/models/Modul.php | 20 +++++++++++++-------
 1 file changed, 13 insertions(+), 7 deletions(-)

diff --git a/lib/models/Modul.php b/lib/models/Modul.php
index a3d7d9c31a5..80e2753854e 100644
--- a/lib/models/Modul.php
+++ b/lib/models/Modul.php
@@ -397,15 +397,21 @@ class Modul extends ModuleManagementModelTreeItem
         if (!$institute) {
             return false;
         }
-        if ($this->responsible_institute && $this->responsible_institute->institut_id != $institut_id) {
-            $this->responsible_institute && $this->responsible_institute->delete();
-            $resp_institute = new ModulInst();
-            $resp_institute->institut_id = $institute->id;
-            $resp_institute->modul_id = $this->id;
-            $resp_institute->gruppe = 'hauptverantwortlich';
-            $this->responsible_institute = $resp_institute;
+
+        if (!$this->responsible_institute || $this->responsible_institute->institut_id !== $institut_id) {
+            if ($this->responsible_institute) {
+                $this->responsible_institute->delete();
+            }
+
+            $this->responsible_institute = ModulInst::build([
+                'institut_id' => $institute->id,
+                'modul_id'    => $this->id,
+                'gruppe'      => 'hauptverantwortlich',
+            ]);
         }
+
         $this->assigned_institutes->unsetBy('institut_id', $institute->id);
+
         return true;
     }
 
-- 
GitLab