From 90fbf15a9bf66ba83011eeedc48d687a4d94cbb2 Mon Sep 17 00:00:00 2001 From: Jan-Hendrik Willms <tleilax+studip@gmail.com> Date: Tue, 6 Sep 2022 14:54:39 +0000 Subject: [PATCH] fix creation and deletion of consultation events, fixes #982 Closes #982 Merge request studip/studip!971 --- lib/models/ConsultationBlock.php | 2 +- lib/models/ConsultationEvent.php | 2 +- lib/models/ConsultationSlot.php | 4 ++++ 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/lib/models/ConsultationBlock.php b/lib/models/ConsultationBlock.php index 4104ad8ca4f..7ae2bfe46ab 100644 --- a/lib/models/ConsultationBlock.php +++ b/lib/models/ConsultationBlock.php @@ -24,7 +24,7 @@ * @property bool has_bookings computed column * @property Range range computed column * @property SimpleORMapCollection slots has_many ConsultationSlot - * @property ConsultationResponsibility[] responsibilities has_many ConsultationResponsibility + * @property ConsultationResponsibility[]|SimpleCollection responsibilities has_many ConsultationResponsibility * @property User[] responsible_persons */ class ConsultationBlock extends SimpleORMap implements PrivacyObject diff --git a/lib/models/ConsultationEvent.php b/lib/models/ConsultationEvent.php index d02e2d8a0b0..afc69805ffd 100644 --- a/lib/models/ConsultationEvent.php +++ b/lib/models/ConsultationEvent.php @@ -22,7 +22,7 @@ class ConsultationEvent extends SimpleORMap 'class_name' => ConsultationSlot::class, 'foreign_key' => 'slot_id', ]; - $config['belongs_to']['event'] = [ + $config['has_one']['event'] = [ 'class_name' => EventData::class, 'foreign_key' => 'event_id', 'assoc_foreign_key' => 'event_id', diff --git a/lib/models/ConsultationSlot.php b/lib/models/ConsultationSlot.php index aac384c6677..217631128dc 100644 --- a/lib/models/ConsultationSlot.php +++ b/lib/models/ConsultationSlot.php @@ -193,6 +193,10 @@ class ConsultationSlot extends SimpleORMap */ public function updateEvents() { + if ($this->isNew()) { + return; + } + // If no range is associated, remove the event if (!$this->block->range) { $this->events->delete(); -- GitLab