WIP: Implementation of stuff goes on

This commit is contained in:
Björn Fromme
2023-10-05 12:53:17 +02:00
parent 96d6170907
commit 1097b84447
23 changed files with 443 additions and 118 deletions
@@ -4,14 +4,24 @@ namespace App\Controller\Admin\Assignment;
use App\Entity\Assignment;
use App\Form\AssignmentType;
use Doctrine\ORM\EntityManagerInterface;
use Psr\Log\LoggerInterface;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Component\Security\Http\Attribute\IsGranted;
class CreateController extends AbstractController
{
public function __construct(
private readonly EntityManagerInterface $entityManager,
private readonly LoggerInterface $logger
) {
}
#[Route('/admin/assignment/create', name: 'app_admin_assignment_create')]
#[IsGranted('ROLE_ADMINISTRATIVE')]
public function index(Request $request): Response
{
$assignment = new Assignment();
@@ -19,6 +29,15 @@ class CreateController extends AbstractController
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$this->entityManager->persist($assignment);
$this->entityManager->flush();
$this->addFlash('success', 'Der Einsatz wurde angelegt');
$this->logger->info('Create assignment', [
'assignment' => $assignment->getUuid(),
]);
return $this->redirectToRoute('app_admin_assignment_index');
}
@@ -0,0 +1,46 @@
<?php
namespace App\Controller\Admin\Assignment;
use App\Entity\Assignment;
use App\Form\AssignmentType;
use Doctrine\ORM\EntityManagerInterface;
use Psr\Log\LoggerInterface;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Component\Security\Http\Attribute\IsGranted;
class EditController extends AbstractController
{
public function __construct(
private readonly EntityManagerInterface $entityManager,
private readonly LoggerInterface $logger
) {
}
#[Route('/admin/assignment/edit/{uuid}', name: 'app_admin_assignment_edit')]
#[IsGranted('ROLE_ADMINISTRATIVE')]
public function index(Assignment $assignment, Request $request): Response
{
$form = $this->createForm(AssignmentType::class, $assignment);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$this->entityManager->flush();
$this->addFlash('success', 'Der Einsatz wurde aktualisiert');
$this->logger->info('Edit assignment', [
'assignment' => $assignment->getUuid(),
]);
return $this->redirectToRoute('app_admin_assignment_index');
}
return $this->render('admin/assignment/edit.html.twig', [
'form' => $form,
]);
}
}
@@ -2,15 +2,43 @@
namespace App\Controller\Admin\Assignment;
use App\Repository\AssignmentRepository;
use Knp\Component\Pager\PaginatorInterface;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Component\Security\Http\Attribute\IsGranted;
class IndexController extends AbstractController
{
public function __construct(
private readonly AssignmentRepository $assignmentRepository,
private readonly PaginatorInterface $paginator
) {
}
#[Route('/admin/assignment', name: 'app_admin_assignment_index')]
public function index(): Response
#[IsGranted('ROLE_ADMINISTRATIVE')]
public function index(Request $request): Response
{
return $this->render('admin/assignment/index.html.twig');
$query = $this
->assignmentRepository
->getListQuery()
;
$pagination = $this->paginator->paginate(
$query,
$request->query->getInt('page', 1),
10,
[
'defaultSortFieldName' => 'assignment.dateFrom',
'defaultSortDirection' => 'asc',
]
);
return $this->render('admin/assignment/index.html.twig', [
'pagination' => $pagination,
]);
}
}
@@ -32,7 +32,7 @@ class HotelController extends AbstractController
$name = $hotel->getName();
if (1 === preg_match('/'.preg_quote($queryString, '/').'/i', $name)) {
$data[] = [
'value' => $hotel->getId(),
'value' => $hotel->getBusProId(),
'text' => sprintf('%s (%s)', $name, $hotel->getCode()),
];
}