mirror of
https://github.com/Part-DB/Part-DB-server.git
synced 2025-06-21 01:25:55 +02:00
Hopefully fixed AbstractParameter exception on the LabelProfile controller
This commit is contained in:
parent
d804184073
commit
f0947fd948
14 changed files with 85 additions and 82 deletions
|
@ -41,12 +41,12 @@ use Symfony\Component\Routing\Annotation\Route;
|
||||||
*/
|
*/
|
||||||
class AttachmentTypeController extends BaseAdminController
|
class AttachmentTypeController extends BaseAdminController
|
||||||
{
|
{
|
||||||
protected $entity_class = AttachmentType::class;
|
protected string $entity_class = AttachmentType::class;
|
||||||
protected $twig_template = 'AdminPages/AttachmentTypeAdmin.html.twig';
|
protected string $twig_template = 'AdminPages/AttachmentTypeAdmin.html.twig';
|
||||||
protected $form_class = AttachmentTypeAdminForm::class;
|
protected string $form_class = AttachmentTypeAdminForm::class;
|
||||||
protected $route_base = 'attachment_type';
|
protected string $route_base = 'attachment_type';
|
||||||
protected $attachment_class = AttachmentTypeAttachment::class;
|
protected string $attachment_class = AttachmentTypeAttachment::class;
|
||||||
protected $parameter_class = AttachmentTypeParameter::class;
|
protected ?string $parameter_class = AttachmentTypeParameter::class;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Route("/{id}", name="attachment_type_delete", methods={"DELETE"})
|
* @Route("/{id}", name="attachment_type_delete", methods={"DELETE"})
|
||||||
|
|
|
@ -65,12 +65,12 @@ use function Symfony\Component\Translation\t;
|
||||||
|
|
||||||
abstract class BaseAdminController extends AbstractController
|
abstract class BaseAdminController extends AbstractController
|
||||||
{
|
{
|
||||||
protected $entity_class = '';
|
protected string $entity_class = '';
|
||||||
protected $form_class = '';
|
protected string $form_class = '';
|
||||||
protected $twig_template = '';
|
protected string $twig_template = '';
|
||||||
protected $route_base = '';
|
protected string $route_base = '';
|
||||||
protected $attachment_class = '';
|
protected string $attachment_class = '';
|
||||||
protected $parameter_class = '';
|
protected ?string $parameter_class = '';
|
||||||
|
|
||||||
protected UserPasswordHasherInterface $passwordEncoder;
|
protected UserPasswordHasherInterface $passwordEncoder;
|
||||||
protected TranslatorInterface $translator;
|
protected TranslatorInterface $translator;
|
||||||
|
@ -103,7 +103,7 @@ abstract class BaseAdminController extends AbstractController
|
||||||
throw new InvalidArgumentException('You have to override the $attachment_class value with a valid Attachment class in your subclass!');
|
throw new InvalidArgumentException('You have to override the $attachment_class value with a valid Attachment class in your subclass!');
|
||||||
}
|
}
|
||||||
|
|
||||||
if ('' === $this->parameter_class || !is_a($this->parameter_class, AbstractParameter::class, true)) {
|
if ('' === $this->parameter_class || ($this->parameter_class && !is_a($this->parameter_class, AbstractParameter::class, true))) {
|
||||||
throw new InvalidArgumentException('You have to override the $parameter_class value with a valid Parameter class in your subclass!');
|
throw new InvalidArgumentException('You have to override the $parameter_class value with a valid Parameter class in your subclass!');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -40,12 +40,12 @@ use Symfony\Component\Routing\Annotation\Route;
|
||||||
*/
|
*/
|
||||||
class CategoryController extends BaseAdminController
|
class CategoryController extends BaseAdminController
|
||||||
{
|
{
|
||||||
protected $entity_class = Category::class;
|
protected string $entity_class = Category::class;
|
||||||
protected $twig_template = 'AdminPages/CategoryAdmin.html.twig';
|
protected string $twig_template = 'AdminPages/CategoryAdmin.html.twig';
|
||||||
protected $form_class = CategoryAdminForm::class;
|
protected string $form_class = CategoryAdminForm::class;
|
||||||
protected $route_base = 'category';
|
protected string $route_base = 'category';
|
||||||
protected $attachment_class = CategoryAttachment::class;
|
protected string $attachment_class = CategoryAttachment::class;
|
||||||
protected $parameter_class = CategoryParameter::class;
|
protected ?string $parameter_class = CategoryParameter::class;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Route("/{id}", name="category_delete", methods={"DELETE"})
|
* @Route("/{id}", name="category_delete", methods={"DELETE"})
|
||||||
|
|
|
@ -58,12 +58,12 @@ use Symfony\Contracts\Translation\TranslatorInterface;
|
||||||
*/
|
*/
|
||||||
class CurrencyController extends BaseAdminController
|
class CurrencyController extends BaseAdminController
|
||||||
{
|
{
|
||||||
protected $entity_class = Currency::class;
|
protected string $entity_class = Currency::class;
|
||||||
protected $twig_template = 'AdminPages/CurrencyAdmin.html.twig';
|
protected string $twig_template = 'AdminPages/CurrencyAdmin.html.twig';
|
||||||
protected $form_class = CurrencyAdminForm::class;
|
protected string $form_class = CurrencyAdminForm::class;
|
||||||
protected $route_base = 'currency';
|
protected string $route_base = 'currency';
|
||||||
protected $attachment_class = CurrencyAttachment::class;
|
protected string $attachment_class = CurrencyAttachment::class;
|
||||||
protected $parameter_class = CurrencyParameter::class;
|
protected ?string $parameter_class = CurrencyParameter::class;
|
||||||
|
|
||||||
protected ExchangeRateUpdater $exchangeRateUpdater;
|
protected ExchangeRateUpdater $exchangeRateUpdater;
|
||||||
|
|
||||||
|
|
|
@ -41,12 +41,12 @@ use Symfony\Component\Routing\Annotation\Route;
|
||||||
*/
|
*/
|
||||||
class FootprintController extends BaseAdminController
|
class FootprintController extends BaseAdminController
|
||||||
{
|
{
|
||||||
protected $entity_class = Footprint::class;
|
protected string $entity_class = Footprint::class;
|
||||||
protected $twig_template = 'AdminPages/FootprintAdmin.html.twig';
|
protected string $twig_template = 'AdminPages/FootprintAdmin.html.twig';
|
||||||
protected $form_class = FootprintAdminForm::class;
|
protected string $form_class = FootprintAdminForm::class;
|
||||||
protected $route_base = 'footprint';
|
protected string $route_base = 'footprint';
|
||||||
protected $attachment_class = FootprintAttachment::class;
|
protected string $attachment_class = FootprintAttachment::class;
|
||||||
protected $parameter_class = FootprintParameter::class;
|
protected ?string $parameter_class = FootprintParameter::class;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Route("/{id}", name="footprint_delete", methods={"DELETE"})
|
* @Route("/{id}", name="footprint_delete", methods={"DELETE"})
|
||||||
|
|
|
@ -40,13 +40,13 @@ use Symfony\Component\Routing\Annotation\Route;
|
||||||
*/
|
*/
|
||||||
class LabelProfileController extends BaseAdminController
|
class LabelProfileController extends BaseAdminController
|
||||||
{
|
{
|
||||||
protected $entity_class = LabelProfile::class;
|
protected string $entity_class = LabelProfile::class;
|
||||||
protected $twig_template = 'AdminPages/LabelProfileAdmin.html.twig';
|
protected string $twig_template = 'AdminPages/LabelProfileAdmin.html.twig';
|
||||||
protected $form_class = LabelProfileAdminForm::class;
|
protected string $form_class = LabelProfileAdminForm::class;
|
||||||
protected $route_base = 'label_profile';
|
protected string $route_base = 'label_profile';
|
||||||
protected $attachment_class = LabelAttachment::class;
|
protected string $attachment_class = LabelAttachment::class;
|
||||||
//Just a placeholder
|
//Just a placeholder
|
||||||
protected $parameter_class = AbstractParameter::class;
|
protected ?string $parameter_class = null;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Route("/{id}", name="label_profile_delete", methods={"DELETE"})
|
* @Route("/{id}", name="label_profile_delete", methods={"DELETE"})
|
||||||
|
|
|
@ -40,12 +40,12 @@ use Symfony\Component\Routing\Annotation\Route;
|
||||||
*/
|
*/
|
||||||
class ManufacturerController extends BaseAdminController
|
class ManufacturerController extends BaseAdminController
|
||||||
{
|
{
|
||||||
protected $entity_class = Manufacturer::class;
|
protected string $entity_class = Manufacturer::class;
|
||||||
protected $twig_template = 'AdminPages/ManufacturerAdmin.html.twig';
|
protected string $twig_template = 'AdminPages/ManufacturerAdmin.html.twig';
|
||||||
protected $form_class = CompanyForm::class;
|
protected string $form_class = CompanyForm::class;
|
||||||
protected $route_base = 'manufacturer';
|
protected string $route_base = 'manufacturer';
|
||||||
protected $attachment_class = ManufacturerAttachment::class;
|
protected string $attachment_class = ManufacturerAttachment::class;
|
||||||
protected $parameter_class = ManufacturerParameter::class;
|
protected ?string $parameter_class = ManufacturerParameter::class;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Route("/{id}", name="manufacturer_delete", methods={"DELETE"})
|
* @Route("/{id}", name="manufacturer_delete", methods={"DELETE"})
|
||||||
|
|
|
@ -41,12 +41,12 @@ use Symfony\Component\Routing\Annotation\Route;
|
||||||
*/
|
*/
|
||||||
class MeasurementUnitController extends BaseAdminController
|
class MeasurementUnitController extends BaseAdminController
|
||||||
{
|
{
|
||||||
protected $entity_class = MeasurementUnit::class;
|
protected string $entity_class = MeasurementUnit::class;
|
||||||
protected $twig_template = 'AdminPages/MeasurementUnitAdmin.html.twig';
|
protected string $twig_template = 'AdminPages/MeasurementUnitAdmin.html.twig';
|
||||||
protected $form_class = MeasurementUnitAdminForm::class;
|
protected string $form_class = MeasurementUnitAdminForm::class;
|
||||||
protected $route_base = 'measurement_unit';
|
protected string $route_base = 'measurement_unit';
|
||||||
protected $attachment_class = MeasurementUnitAttachment::class;
|
protected string $attachment_class = MeasurementUnitAttachment::class;
|
||||||
protected $parameter_class = MeasurementUnitParameter::class;
|
protected ?string $parameter_class = MeasurementUnitParameter::class;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Route("/{id}", name="measurement_unit_delete", methods={"DELETE"})
|
* @Route("/{id}", name="measurement_unit_delete", methods={"DELETE"})
|
||||||
|
|
|
@ -41,12 +41,12 @@ use Symfony\Component\Routing\Annotation\Route;
|
||||||
*/
|
*/
|
||||||
class ProjectAdminController extends BaseAdminController
|
class ProjectAdminController extends BaseAdminController
|
||||||
{
|
{
|
||||||
protected $entity_class = Project::class;
|
protected string $entity_class = Project::class;
|
||||||
protected $twig_template = 'AdminPages/ProjectAdmin.html.twig';
|
protected string $twig_template = 'AdminPages/ProjectAdmin.html.twig';
|
||||||
protected $form_class = ProjectAdminForm::class;
|
protected string $form_class = ProjectAdminForm::class;
|
||||||
protected $route_base = 'project';
|
protected string $route_base = 'project';
|
||||||
protected $attachment_class = ProjectAttachment::class;
|
protected string $attachment_class = ProjectAttachment::class;
|
||||||
protected $parameter_class = ProjectParameter::class;
|
protected ?string $parameter_class = ProjectParameter::class;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Route("/{id}", name="project_delete", methods={"DELETE"})
|
* @Route("/{id}", name="project_delete", methods={"DELETE"})
|
||||||
|
|
|
@ -40,12 +40,12 @@ use Symfony\Component\Routing\Annotation\Route;
|
||||||
*/
|
*/
|
||||||
class StorelocationController extends BaseAdminController
|
class StorelocationController extends BaseAdminController
|
||||||
{
|
{
|
||||||
protected $entity_class = Storelocation::class;
|
protected string $entity_class = Storelocation::class;
|
||||||
protected $twig_template = 'AdminPages/StorelocationAdmin.html.twig';
|
protected string $twig_template = 'AdminPages/StorelocationAdmin.html.twig';
|
||||||
protected $form_class = StorelocationAdminForm::class;
|
protected string $form_class = StorelocationAdminForm::class;
|
||||||
protected $route_base = 'store_location';
|
protected string $route_base = 'store_location';
|
||||||
protected $attachment_class = StorelocationAttachment::class;
|
protected string $attachment_class = StorelocationAttachment::class;
|
||||||
protected $parameter_class = StorelocationParameter::class;
|
protected ?string $parameter_class = StorelocationParameter::class;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Route("/{id}", name="store_location_delete", methods={"DELETE"})
|
* @Route("/{id}", name="store_location_delete", methods={"DELETE"})
|
||||||
|
|
|
@ -40,12 +40,12 @@ use Symfony\Component\Routing\Annotation\Route;
|
||||||
*/
|
*/
|
||||||
class SupplierController extends BaseAdminController
|
class SupplierController extends BaseAdminController
|
||||||
{
|
{
|
||||||
protected $entity_class = Supplier::class;
|
protected string $entity_class = Supplier::class;
|
||||||
protected $twig_template = 'AdminPages/SupplierAdmin.html.twig';
|
protected string $twig_template = 'AdminPages/SupplierAdmin.html.twig';
|
||||||
protected $form_class = SupplierForm::class;
|
protected string $form_class = SupplierForm::class;
|
||||||
protected $route_base = 'supplier';
|
protected string $route_base = 'supplier';
|
||||||
protected $attachment_class = SupplierAttachment::class;
|
protected string $attachment_class = SupplierAttachment::class;
|
||||||
protected $parameter_class = SupplierParameter::class;
|
protected ?string $parameter_class = SupplierParameter::class;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Route("/{id}", name="supplier_delete", methods={"DELETE"})
|
* @Route("/{id}", name="supplier_delete", methods={"DELETE"})
|
||||||
|
|
|
@ -44,12 +44,12 @@ use Symfony\Component\Routing\Annotation\Route;
|
||||||
*/
|
*/
|
||||||
class GroupController extends BaseAdminController
|
class GroupController extends BaseAdminController
|
||||||
{
|
{
|
||||||
protected $entity_class = Group::class;
|
protected string $entity_class = Group::class;
|
||||||
protected $twig_template = 'AdminPages/GroupAdmin.html.twig';
|
protected string $twig_template = 'AdminPages/GroupAdmin.html.twig';
|
||||||
protected $form_class = GroupAdminForm::class;
|
protected string $form_class = GroupAdminForm::class;
|
||||||
protected $route_base = 'group';
|
protected string $route_base = 'group';
|
||||||
protected $attachment_class = GroupAttachment::class;
|
protected string $attachment_class = GroupAttachment::class;
|
||||||
protected $parameter_class = GroupParameter::class;
|
protected ?string $parameter_class = GroupParameter::class;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Route("/{id}/edit/{timestamp}", requirements={"id"="\d+"}, name="group_edit")
|
* @Route("/{id}/edit/{timestamp}", requirements={"id"="\d+"}, name="group_edit")
|
||||||
|
|
|
@ -53,13 +53,12 @@ use Symfony\Component\Routing\Annotation\Route;
|
||||||
*/
|
*/
|
||||||
class UserController extends AdminPages\BaseAdminController
|
class UserController extends AdminPages\BaseAdminController
|
||||||
{
|
{
|
||||||
protected $entity_class = User::class;
|
protected string $entity_class = User::class;
|
||||||
protected $twig_template = 'AdminPages/UserAdmin.html.twig';
|
protected string $twig_template = 'AdminPages/UserAdmin.html.twig';
|
||||||
protected $form_class = UserAdminForm::class;
|
protected string $form_class = UserAdminForm::class;
|
||||||
protected $route_base = 'user';
|
protected string $route_base = 'user';
|
||||||
protected $attachment_class = UserAttachment::class;
|
protected string $attachment_class = UserAttachment::class;
|
||||||
//Just define a value here to prevent error. It is not used.
|
protected ?string $parameter_class = null;
|
||||||
protected $parameter_class = AbstractParameter::class;
|
|
||||||
|
|
||||||
protected function additionalActionEdit(FormInterface $form, AbstractNamedDBElement $entity): bool
|
protected function additionalActionEdit(FormInterface $form, AbstractNamedDBElement $entity): bool
|
||||||
{
|
{
|
||||||
|
|
|
@ -25,6 +25,7 @@ namespace App\Form\AdminPages;
|
||||||
use App\Entity\Base\AbstractNamedDBElement;
|
use App\Entity\Base\AbstractNamedDBElement;
|
||||||
use App\Entity\Base\AbstractStructuralDBElement;
|
use App\Entity\Base\AbstractStructuralDBElement;
|
||||||
use App\Entity\LabelSystem\LabelProfile;
|
use App\Entity\LabelSystem\LabelProfile;
|
||||||
|
use App\Entity\Parameters\AbstractParameter;
|
||||||
use App\Form\AttachmentFormType;
|
use App\Form\AttachmentFormType;
|
||||||
use App\Form\ParameterType;
|
use App\Form\ParameterType;
|
||||||
use App\Form\Type\MasterPictureAttachmentType;
|
use App\Form\Type\MasterPictureAttachmentType;
|
||||||
|
@ -56,6 +57,7 @@ class BaseEntityAdminForm extends AbstractType
|
||||||
parent::configureOptions($resolver);
|
parent::configureOptions($resolver);
|
||||||
$resolver->setRequired('attachment_class');
|
$resolver->setRequired('attachment_class');
|
||||||
$resolver->setRequired('parameter_class');
|
$resolver->setRequired('parameter_class');
|
||||||
|
$resolver->setAllowedTypes('parameter_class', ['string', 'null']);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function buildForm(FormBuilderInterface $builder, array $options): void
|
public function buildForm(FormBuilderInterface $builder, array $options): void
|
||||||
|
@ -143,7 +145,9 @@ class BaseEntityAdminForm extends AbstractType
|
||||||
'empty_data' => null,
|
'empty_data' => null,
|
||||||
]);
|
]);
|
||||||
|
|
||||||
if ($entity instanceof AbstractStructuralDBElement) {
|
if ($options['parameter_class']) {
|
||||||
|
$prototype = new $options['parameter_class']();
|
||||||
|
|
||||||
$builder->add(
|
$builder->add(
|
||||||
'parameters',
|
'parameters',
|
||||||
CollectionType::class,
|
CollectionType::class,
|
||||||
|
@ -155,7 +159,7 @@ class BaseEntityAdminForm extends AbstractType
|
||||||
'reindex_enable' => true,
|
'reindex_enable' => true,
|
||||||
'label' => false,
|
'label' => false,
|
||||||
'by_reference' => false,
|
'by_reference' => false,
|
||||||
'prototype_data' => new $options['parameter_class'](),
|
'prototype_data' => $prototype,
|
||||||
'entry_options' => [
|
'entry_options' => [
|
||||||
'data_class' => $options['parameter_class'],
|
'data_class' => $options['parameter_class'],
|
||||||
],
|
],
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue