RoomCateryBedType - API and admin panel improvements.
CI / Docker Lint (push) Successful in 20s

This commit is contained in:
2024-09-12 18:08:33 +02:00
parent 06577df0ad
commit 7475be603c
5 changed files with 65 additions and 17 deletions
@@ -55,8 +55,12 @@ class RoomCategoryBedTypeAdminController extends AbstractController
public function createCategoryBedType(Request $request, RoomCategoryBedTypeRepository $repo, string $categoryId): Response public function createCategoryBedType(Request $request, RoomCategoryBedTypeRepository $repo, string $categoryId): Response
{ {
$roomCatBedType = new RoomCategoryBedType(); $roomCatBedType = new RoomCategoryBedType();
$roomCategoryItem = $this->entityManager->find(RoomCategory::class, $categoryId);
$roomCatBedType->setRoomCategory($roomCategoryItem);
$form = $this->createForm(RoomCategoryBedTypeFormType::class, $roomCatBedType); $form = $this->createForm(RoomCategoryBedTypeFormType::class, $roomCatBedType, [
'selectRoomCategory' => false,
]);
$form->handleRequest($request); $form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) { if ($form->isSubmitted() && $form->isValid()) {
@@ -76,17 +80,17 @@ class RoomCategoryBedTypeAdminController extends AbstractController
return $this->render('admin/adminEdit.html.twig', [ return $this->render('admin/adminEdit.html.twig', [
'form' => $form, 'form' => $form,
'ElementType' => "Room Categoy Bed Type", 'ElementType' => "Room Categoy Bed Type",
'ElementName' => "Room Categoy - " . $categoryId 'ElementName' => "Room Categoy - " . $roomCategoryItem
]); ]);
} }
// Edit a RoomAvailability numAvailable. // Edit a RoomCategory BedType.
#[Route('/admin/roomCategoryBedType/{categoryId}/{bedTypeId}/edit', name: 'admin_roomCategoryBedType_category_update')] #[Route('/admin/roomCategoryBedType/{categoryId}/{bedTypeId}/edit', name: 'admin_roomCategoryBedType_category_update')]
public function updateCategoryBedType(Request $request, RoomCategoryBedTypeRepository $repo, string $categoryId, string $bedTypeId): Response public function updateCategoryBedType(Request $request, RoomCategoryBedTypeRepository $repo, string $categoryId, string $bedTypeId): Response
{ {
$bedTypeItem = $repo->find(["bedType" => $bedTypeId, "roomCategory" => $categoryId]); $categoryBedTypeItem = $repo->find(["bedType" => $bedTypeId, "roomCategory" => $categoryId]);
if ($bedTypeItem == null) { if ($categoryBedTypeItem == null) {
//TODOME: Aquí deberíamos llevar a una página de error o algo. //TODOME: Aquí deberíamos llevar a una página de error o algo.
$url = $this->adminUrlGenerator->setRoute('admin_roomCategoryBedType_category', [ $url = $this->adminUrlGenerator->setRoute('admin_roomCategoryBedType_category', [
@@ -95,12 +99,14 @@ class RoomCategoryBedTypeAdminController extends AbstractController
return $this->redirect($url); return $this->redirect($url);
} }
$form = $this->createForm(RoomCategoryBedTypeFormType::class, $bedTypeItem); $form = $this->createForm(RoomCategoryBedTypeFormType::class, $categoryBedTypeItem, [
'selectRoomCategory' => false,
]);
$form->handleRequest($request); $form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) { if ($form->isSubmitted() && $form->isValid()) {
// $form->getData() holds the submitted values // $form->getData() holds the submitted values
// but, the original `$bedTypeItem` variable has also been updated // but, the original `$categoryBedTypeItem` variable has also been updated
$this->entityManager->flush(); $this->entityManager->flush();
@@ -114,7 +120,24 @@ class RoomCategoryBedTypeAdminController extends AbstractController
return $this->render('admin/adminEdit.html.twig', [ return $this->render('admin/adminEdit.html.twig', [
'form' => $form, 'form' => $form,
'ElementType' => "Room Categoy Bed Type", 'ElementType' => "Room Categoy Bed Type",
'ElementName' => "Room Categoy - " . $categoryId 'ElementName' => "Room Categoy - " . $categoryBedTypeItem->getRoomCategory()
]); ]);
} }
// Remove a RoomCategoryBedType.
#[Route('/admin/roomCategoryBedType/{categoryId}/{bedTypeId}/remove', name: 'admin_roomCategoryBedType_category_remove')]
public function removeCategoryBedType(RoomCategoryBedTypeRepository $repo, string $categoryId, string $bedTypeId) : Response {
$categoryBedTypeItem = $repo->find(["bedType" => $bedTypeId, "roomCategory" => $categoryId]);
if(!$categoryBedTypeItem) {
throw $this->createNotFoundException('Element not found');
}
$this->entityManager->remove($categoryBedTypeItem);
$this->entityManager->flush();
$url = $this->adminUrlGenerator->setRoute('admin_roomCategoryBedType_category', [
'categoryId' => $categoryId,
])->generateUrl();
return $this->redirect($url);
}
} }
+11
View File
@@ -12,6 +12,7 @@ class RoomCategoryBedType
#[ORM\Id] #[ORM\Id]
#[ORM\ManyToOne(inversedBy: 'roomCategoryBedTypes')] #[ORM\ManyToOne(inversedBy: 'roomCategoryBedTypes')]
#[ORM\JoinColumn(nullable: false, onDelete: "CASCADE")] #[ORM\JoinColumn(nullable: false, onDelete: "CASCADE")]
#[Ignore]
private ?RoomCategory $roomCategory = null; private ?RoomCategory $roomCategory = null;
#[ORM\Id] #[ORM\Id]
@@ -53,15 +54,25 @@ class RoomCategoryBedType
return $this; return $this;
} }
#[Ignore]
public function getBedType(): ?BedType public function getBedType(): ?BedType
{ {
return $this->bedType; return $this->bedType;
} }
#[Ignore]
public function setBedType(?BedType $bedType): static public function setBedType(?BedType $bedType): static
{ {
$this->bedType = $bedType; $this->bedType = $bedType;
return $this; return $this;
} }
public function getBedTypeName(): string {
return $this->getBedType()->getName();
}
public function getBedTypeIcon(): string {
return $this->getBedType()->getIconUrl();
}
} }
+2
View File
@@ -12,6 +12,7 @@ class RoomCategoryPhoto
#[ORM\Id] #[ORM\Id]
#[ORM\GeneratedValue] #[ORM\GeneratedValue]
#[ORM\Column] #[ORM\Column]
#[Ignore]
private ?int $id = null; private ?int $id = null;
#[ORM\Column(length: 255, nullable: false)] #[ORM\Column(length: 255, nullable: false)]
@@ -28,6 +29,7 @@ class RoomCategoryPhoto
#[Ignore] #[Ignore]
private ?RoomCategory $roomCategory = null; private ?RoomCategory $roomCategory = null;
#[Ignore]
public function getId(): ?int public function getId(): ?int
{ {
return $this->id; return $this->id;
+16 -9
View File
@@ -8,6 +8,7 @@ use App\Entity\RoomCategoryBedType;
use Symfony\Bridge\Doctrine\Form\Type\EntityType; use Symfony\Bridge\Doctrine\Form\Type\EntityType;
use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\Form\Extension\Core\Type\IntegerType;
use Symfony\Component\Form\Extension\Core\Type\SubmitType; use Symfony\Component\Form\Extension\Core\Type\SubmitType;
use Symfony\Component\OptionsResolver\OptionsResolver; use Symfony\Component\OptionsResolver\OptionsResolver;
@@ -15,24 +16,30 @@ class RoomCategoryBedTypeFormType extends AbstractType
{ {
public function buildForm(FormBuilderInterface $builder, array $options): void public function buildForm(FormBuilderInterface $builder, array $options): void
{ {
$builder $selectRoomCategory = $options['selectRoomCategory'];
->add('amount')
->add('roomCategory', EntityType::class, [ if($selectRoomCategory) {
$builder->add('roomCategory', EntityType::class, [
'class' => RoomCategory::class, 'class' => RoomCategory::class,
'choice_label' => 'name', 'choice_label' => 'name'
]) ]);
->add('bedType', EntityType::class, [ }
$builder->add('bedType', EntityType::class, [
'class' => BedType::class, 'class' => BedType::class,
'choice_label' => 'name', 'choice_label' => 'name',
]) ]);
->add('save', SubmitType::class) $builder->add('amount', IntegerType::class);
; $builder->add('save', SubmitType::class);
} }
public function configureOptions(OptionsResolver $resolver): void public function configureOptions(OptionsResolver $resolver): void
{ {
$resolver->setDefaults([ $resolver->setDefaults([
'data_class' => RoomCategoryBedType::class, 'data_class' => RoomCategoryBedType::class,
'selectRoomCategory' => true,
]); ]);
$resolver->setAllowedTypes('selectRoomCategory', 'bool');
} }
} }
@@ -28,6 +28,11 @@
Edit Edit
</a> </a>
</td> </td>
<td>
<a href="{{ ea_url().setRoute('admin_roomCategoryBedType_category_remove', { bedTypeId: bedType.bedType.id, categoryId: bedType.roomCategory.id }) }}">
Remove
</a>
</td>
</tr> </tr>
{% endfor %} {% endfor %}
</tbody> </tbody>