From 480af1ce982527570c7c598798a466c86fcee6e7 Mon Sep 17 00:00:00 2001 From: Ron Lucke <lucke@elan-ev.de> Date: Tue, 10 Jan 2023 08:25:45 +0000 Subject: [PATCH] fix #1991 Closes #1991 Merge request studip/studip!1299 --- lib/classes/JsonApi/Routes/Courseware/Authority.php | 2 +- lib/classes/JsonApi/Schemas/Courseware/Task.php | 2 +- .../vue/components/courseware/CoursewareDashboardStudents.vue | 1 + .../vue/components/courseware/CoursewareDashboardTasks.vue | 4 ++-- 4 files changed, 5 insertions(+), 4 deletions(-) diff --git a/lib/classes/JsonApi/Routes/Courseware/Authority.php b/lib/classes/JsonApi/Routes/Courseware/Authority.php index 1c7c9034192..da1724af36b 100644 --- a/lib/classes/JsonApi/Routes/Courseware/Authority.php +++ b/lib/classes/JsonApi/Routes/Courseware/Authority.php @@ -328,7 +328,7 @@ class Authority public static function canDeleteTask(User $user, Task $resource): bool { - return self::canCreateTasks($user, $resource->structural_element); + return self::canCreateTasks($user, $resource->structural_element) && !$resource->userIsASolver($user); } public static function canCreateTaskFeedback(User $user, Task $resource): bool diff --git a/lib/classes/JsonApi/Schemas/Courseware/Task.php b/lib/classes/JsonApi/Schemas/Courseware/Task.php index 32d4a187b4d..a87d335b64e 100644 --- a/lib/classes/JsonApi/Schemas/Courseware/Task.php +++ b/lib/classes/JsonApi/Schemas/Courseware/Task.php @@ -33,7 +33,7 @@ class Task extends SchemaProvider 'submission-date' => date('c', $resource['submission_date']), 'submitted' => (bool) $resource['submitted'], 'renewal' => empty($resource['renewal']) ? null : (string) $resource['renewal'], - 'renewal-date' => $resource['renewal_date'] ? date('c', $resource['renewal_date']) : null, + 'renewal-date' => date('c', $resource['renewal_date']), 'mkdate' => date('c', $resource['mkdate']), 'chdate' => date('c', $resource['chdate']), ]; diff --git a/resources/vue/components/courseware/CoursewareDashboardStudents.vue b/resources/vue/components/courseware/CoursewareDashboardStudents.vue index 6ad27bfa25d..025ad745700 100644 --- a/resources/vue/components/courseware/CoursewareDashboardStudents.vue +++ b/resources/vue/components/courseware/CoursewareDashboardStudents.vue @@ -355,6 +355,7 @@ export default { }, solveRenewalRequest(task) { this.currentDialogTask = _.cloneDeep(task); + this.currentDialogTask.attributes['renewal-date'] = new Date().toISOString(); this.showRenewalDialog = true; }, updateRenewal() { diff --git a/resources/vue/components/courseware/CoursewareDashboardTasks.vue b/resources/vue/components/courseware/CoursewareDashboardTasks.vue index 501fc47a56e..e1329baebb6 100644 --- a/resources/vue/components/courseware/CoursewareDashboardTasks.vue +++ b/resources/vue/components/courseware/CoursewareDashboardTasks.vue @@ -39,7 +39,7 @@ <td> <a :href="getLinkToElement(element.id)">{{ element.attributes.title }}</a> </td> - <td>{{ task.attributes.progress.toFixed(2) }}%</td> + <td>{{ task.attributes?.progress?.toFixed(2) || '-'}}%</td> <td>{{ getReadableDate(task.attributes['submission-date']) }}</td> <td> <studip-icon v-if="task.attributes.submitted" shape="accept" role="status-green" /> @@ -198,7 +198,7 @@ export default { return menuItems; }, async renewalRequest(task) { - let attributes = {}; + let attributes = task.attributes; attributes.renewal = 'pending'; await this.updateTask({ attributes: attributes, -- GitLab