This commit is contained in:
team 1
2026-05-12 11:53:36 +02:00
parent 3f914c1efd
commit 64d1ec71e8
7 changed files with 289 additions and 5 deletions

View File

@@ -92,6 +92,7 @@ final class AdminEvalController extends AbstractController
return $this->render('admin/evals/case_new.html.twig', [
'types' => $evals->supportedTypes(),
'cases_by_type' => $evals->casesByType(),
'case_draft' => $draft,
]);
}
@@ -146,7 +147,46 @@ final class AdminEvalController extends AbstractController
return $this->render('admin/evals/case_new.html.twig', [
'types' => $evals->supportedTypes(),
'cases_by_type' => $evals->casesByType(),
'case_draft' => $draft,
], new Response('', Response::HTTP_UNPROCESSABLE_ENTITY));
}
#[Route('/cases/delete', name: 'admin_evals_case_delete', methods: ['POST'])]
public function deleteCase(Request $request, EvalAdminService $evals): Response
{
$this->denyAccessUnlessGranted(ApplicationRoles::ROLE_KNOWLEDGE_ADMIN);
$type = trim((string) $request->request->get('type', 'retrieval'));
$caseId = trim((string) $request->request->get('case_id', ''));
if (!$this->isCsrfTokenValid(
sprintf('admin_eval_case_delete_%s_%s', $type, $caseId),
(string) $request->request->get('_token')
)) {
throw $this->createAccessDeniedException();
}
try {
$deleted = $evals->deleteCase($type, $caseId);
$type = (string) ($deleted['type'] ?? $type);
$this->addFlash(
'success',
sprintf('Eval-Case "%s" wurde aus %s.ndjson entfernt.', (string) ($deleted['id'] ?? $caseId), $type)
);
} catch (\Throwable $e) {
$this->addFlash('danger', $e->getMessage());
}
if (!in_array($type, $evals->supportedTypeNames(), true)) {
$type = 'retrieval';
}
return $this->redirectToRoute('admin_evals_case_new', [
'type' => $type,
]);
}
}