diff options
Diffstat (limited to 'lib/models/Modul.php')
| -rw-r--r-- | lib/models/Modul.php | 20 |
1 files changed, 13 insertions, 7 deletions
diff --git a/lib/models/Modul.php b/lib/models/Modul.php index a3d7d9c..80e2753 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; } |
