diff --git a/lib/classes/JsonApi/Routes/Courseware/StructuralElementsCreate.php b/lib/classes/JsonApi/Routes/Courseware/StructuralElementsCreate.php index 8f1c8bd84432a4e1845fd5873f82bc524110e4fa..bdb75d1ab498daf54a27c58ec070f5d011be9190 100755 --- 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 4b3d7e9f85542efa549572aed47136be5d6afe2a..f0a9cf352b265d9488a64d8ea2195f04712c9786 100755 --- a/lib/models/Courseware/StructuralElement.php +++ b/lib/models/Courseware/StructuralElement.php @@ -225,20 +225,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) {