Skip to content

Commit

Permalink
Implement evaluation grid archival
Browse files Browse the repository at this point in the history
  • Loading branch information
carlobeltrame committed Aug 2, 2024
1 parent f061aa2 commit ff59b19
Show file tree
Hide file tree
Showing 4 changed files with 13 additions and 7 deletions.
1 change: 1 addition & 0 deletions app/Http/Controllers/CourseController.php
Original file line number Diff line number Diff line change
Expand Up @@ -117,6 +117,7 @@ public function archive(Request $request, Course $course) {
$course->observations()->delete();
$course->observationAssignments()->delete();
$course->participantGroups()->delete();
$course->evaluationGrids()->delete();
$course->update(['archived' => true]);
});
// Perform the image deletion after database deletion, so that a failing image doesn't prevent the whole deletion operation.
Expand Down
6 changes: 3 additions & 3 deletions lang/de/t.php
Original file line number Diff line number Diff line change
Expand Up @@ -274,16 +274,16 @@
"course_settings" => array(
"archive" => "Kurs archivieren…",
"archive_confirm" => "Definitiv archivieren",
"archive_description" => "Dies wird alle TN, Beobachtungen, TN-Gruppen, Beobachtungsaufträge und Rückmeldungen im Kurs komplett und dauerhaft löschen. Diese Aktion kann nicht rückgängig gemacht werden. Blöcke, Anforderungen, Kategorien und Equipenmitglieder bleiben zur späteren Einsicht bestehen.",
"archive_description" => "Dies wird alle TN, Beobachtungen, TN-Gruppen, Beobachtungsaufträge, ausgefüllte Beurteilungsraster und Rückmeldungen im Kurs komplett und dauerhaft löschen. Diese Aktion kann nicht rückgängig gemacht werden. Blöcke, Anforderungen, Kategorien, Beurteilungsraster-Vorlagen und Equipenmitglieder bleiben zur späteren Einsicht bestehen.",
"archive_or_delete" => "Kurs archivieren oder löschen",
"archive_success" => "Kurs \":name\" wurde archiviert.",
"archive_vs_delete" => array(
"answer" => "Wenn du einen Kurs archivierst, werden alle personenbezogenen Daten (TN, Bilder, Beobachtungen, TN-Gruppen, Beobachtungsaufträge, Rückmeldungen) dauerhaft gelöscht. So kannst du Datenschutz-Problemen entgegenwirken, aber für spätere Kurse trotzdem noch deine alten Anforderungen und Blöcke einsehen. Wenn du den Kurs hingegen ganz löschst wird alles was damit zu tun hat unwiderruflich entfernt.",
"answer" => "Wenn du einen Kurs archivierst, werden alle personenbezogenen Daten (TN, Bilder, Beobachtungen, TN-Gruppen, Beobachtungsaufträge, ausgefüllte Beurteilungsraster, Rückmeldungen) dauerhaft gelöscht. So kannst du Datenschutz-Problemen entgegenwirken, aber für spätere Kurse trotzdem noch deine alten Anforderungen und Blöcke einsehen. Wenn du den Kurs hingegen ganz löschst wird alles was damit zu tun hat unwiderruflich entfernt.",
"question" => "Was ist der Unterschied?",
),
"delete" => "Kurs komplett löschen…",
"delete_confirm" => "Definitiv löschen",
"delete_description" => "Dies wird den Kurs komplett und dauerhaft löschen, inklusive alle Blöcke, TN, Anforderungen, Kategorien, TN-Gruppen, Beobachtungsaufträge, Rückmeldungen und Beobachtungen darin. Diese Aktion kann nicht rückgängig gemacht werden.",
"delete_description" => "Dies wird den Kurs komplett und dauerhaft löschen, inklusive alle Blöcke, TN, Beobachtungen, Anforderungen, Kategorien, TN-Gruppen, Beobachtungsaufträge, Beurteilungsraster und Rückmeldungen darin. Diese Aktion kann nicht rückgängig gemacht werden.",
"delete_success" => "Kurs \":name\" und alle damit verbundenen Daten wurden gelöscht.",
"edit" => "Kurseinstellungen :name",
"edit_success" => "Kursdetails erfolgreich gespeichert.",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,9 @@
{ label: $t('t.models.evaluation_grid_template.name'), value: evaluationGridTemplate => evaluationGridTemplate.name },
]"
:actions="{
edit: evaluationGridTemplate => routeUri('admin.evaluation_grid_templates.edit', {course: {{ $course->id }}, evaluation_grid_template: evaluationGridTemplate.id}),
@if(!$course->archived)
edit: evaluationGridTemplate => routeUri('admin.evaluation_grid_templates.edit', {course: {{ $course->id }}, evaluation_grid_template: evaluationGridTemplate.id}),
@endif
print: evaluationGridTemplate => ['button-print-evaluation-grid', { courseId: {{ $course->id }}, evaluationGridTemplateId: evaluationGridTemplate.id }],
delete: evaluationGridTemplate => ({
text: $t('t.views.admin.evaluation_grid_templates.really_delete', evaluationGridTemplate),
Expand Down
9 changes: 6 additions & 3 deletions routes/web.php
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@

Route::get('/course/{course}/crib/{user?}', [BlockListController::class, 'crib'])->name('crib');

// This route must be defined above feedbackContent.print, in order to make sure "print" isn't interpreted as an evaluation grid id
Route::get('/course/{course}/evaluation_grid/{evaluation_grid_template}/print', [EvaluationGridTemplateController::class, 'print'])->name('admin.evaluation_grid_templates.print');

Route::middleware('courseNotArchived')->group(function () {
Expand Down Expand Up @@ -142,9 +143,11 @@
Route::delete('/course/{course}/admin/feedbacks/{feedback_data}', [FeedbackController::class, 'destroy'])->name('admin.feedbacks.delete');

Route::get('/course/{course}/admin/evaluation_grids', [EvaluationGridTemplateController::class, 'index'])->name('admin.evaluation_grid_templates');
Route::post('/course/{course}/admin/evaluation_grids', [EvaluationGridTemplateController::class, 'store'])->name('admin.evaluation_grid_templates.store');
Route::get('/course/{course}/admin/evaluation_grids/{evaluation_grid_template}', [EvaluationGridTemplateController::class, 'edit'])->name('admin.evaluation_grid_templates.edit');
Route::post('/course/{course}/admin/evaluation_grids/{evaluation_grid_template}', [EvaluationGridTemplateController::class, 'update'])->name('admin.evaluation_grid_templates.update');
Route::middleware('courseNotArchived')->group(function() {
Route::post('/course/{course}/admin/evaluation_grids', [EvaluationGridTemplateController::class, 'store'])->name('admin.evaluation_grid_templates.store');
Route::get('/course/{course}/admin/evaluation_grids/{evaluation_grid_template}', [EvaluationGridTemplateController::class, 'edit'])->name('admin.evaluation_grid_templates.edit');
Route::post('/course/{course}/admin/evaluation_grids/{evaluation_grid_template}', [EvaluationGridTemplateController::class, 'update'])->name('admin.evaluation_grid_templates.update');
});
Route::delete('/course/{course}/admin/evaluation_grids/{evaluation_grid_template}', [EvaluationGridTemplateController::class, 'destroy'])->name('admin.evaluation_grid_templates.delete');

Route::get('/newcourse', [CourseController::class, 'create'])->name('admin.newcourse');
Expand Down

0 comments on commit ff59b19

Please sign in to comment.