diff --git a/lib/classes/JsonApi/Routes/Courseware/StructuralElementsCreate.php b/lib/classes/JsonApi/Routes/Courseware/StructuralElementsCreate.php index 8f1c8bd84432a4e1845fd5873f82bc524110e4fa..bdb75d1ab498daf54a27c58ec070f5d011be9190 100644 --- a/lib/classes/JsonApi/Routes/Courseware/StructuralElementsCreate.php +++ b/lib/classes/JsonApi/Routes/Courseware/StructuralElementsCreate.php @@ -79,7 +79,7 @@ class StructuralElementsCreate extends JsonApiController 'editor_id' => $user->id, 'edit_blocker_id' => '', 'title' => self::arrayGet($json, 'data.attributes.title', ''), - 'purpose' => self::arrayGet($json, 'data.attributes.purpose', 'content'), + 'purpose' => $parent->purpose, 'payload' => self::arrayGet($json, 'data.attributes.payload', ''), 'position' => $parent->countChildren() ]); diff --git a/lib/models/Courseware/StructuralElement.php b/lib/models/Courseware/StructuralElement.php index f518cc1600592d76687844d9d901665d4522bf0b..5b834e9cd97a7ba3e730c0a35d3c9972c7faf833 100644 --- a/lib/models/Courseware/StructuralElement.php +++ b/lib/models/Courseware/StructuralElement.php @@ -227,20 +227,23 @@ class StructuralElement extends \SimpleORMap case 'course': $hasEditingPermission = $this->hasEditingPermission($user); if ($this->isTask()) { - // TODO: Was tun wir, wenn dieses Strukturelement purpose=task aber keinen Task hat? - if (!$this->task) { - return false; + $task = $this->task; + if (!$task) { + $task = $this->findParentTask(); + if (!$task) { + return false; + } } if ($hasEditingPermission) { return false; } - if ($this->task->isSubmitted()) { + if ($task->isSubmitted()) { return false; } - return $this->task->userIsASolver($user); + return $task->userIsASolver($user); } if ($hasEditingPermission) {