mirror of
https://gitlab.com/Chill-Projet/chill-bundles.git
synced 2025-06-12 21:34:25 +00:00
Fix loading data for customfield, using proper DI
This commit is contained in:
parent
2ad82e8cc1
commit
9690359dfa
@ -35,12 +35,12 @@ services:
|
|||||||
tags:
|
tags:
|
||||||
- { name: 'form.type', alias: 'custom_field' }
|
- { name: 'form.type', alias: 'custom_field' }
|
||||||
|
|
||||||
chill.custom_field.text:
|
Chill\CustomFieldsBundle\CustomFields\CustomFieldText:
|
||||||
class: Chill\CustomFieldsBundle\CustomFields\CustomFieldText
|
|
||||||
autowire: true
|
autowire: true
|
||||||
autoconfigure: true
|
autoconfigure: true
|
||||||
tags:
|
tags:
|
||||||
- { name: 'chill.custom_field', type: 'text' }
|
- { name: 'chill.custom_field', type: 'text' }
|
||||||
|
chill.custom_field.text: '@Chill\CustomFieldsBundle\CustomFields\CustomFieldText'
|
||||||
|
|
||||||
chill.custom_field.number:
|
chill.custom_field.number:
|
||||||
class: Chill\CustomFieldsBundle\CustomFields\CustomFieldNumber
|
class: Chill\CustomFieldsBundle\CustomFields\CustomFieldNumber
|
||||||
@ -59,12 +59,12 @@ services:
|
|||||||
tags:
|
tags:
|
||||||
- { name: form.type_extension, extended_type: Symfony\Component\Form\Extension\Core\Type\NumberType }
|
- { name: form.type_extension, extended_type: Symfony\Component\Form\Extension\Core\Type\NumberType }
|
||||||
|
|
||||||
chill.custom_field.choice:
|
Chill\CustomFieldsBundle\CustomFields\CustomFieldChoice:
|
||||||
class: Chill\CustomFieldsBundle\CustomFields\CustomFieldChoice
|
|
||||||
autowire: true
|
autowire: true
|
||||||
autoconfigure: true
|
autoconfigure: true
|
||||||
tags:
|
tags:
|
||||||
- { name: 'chill.custom_field', type: 'choice' }
|
- { name: 'chill.custom_field', type: 'choice' }
|
||||||
|
chill.custom_field.choice: '@Chill\CustomFieldsBundle\CustomFields\CustomFieldChoice'
|
||||||
|
|
||||||
chill.custom_field.custom_fields_group_linked_custom_fields:
|
chill.custom_field.custom_fields_group_linked_custom_fields:
|
||||||
class: Chill\CustomFieldsBundle\Form\Type\LinkedCustomFieldsType
|
class: Chill\CustomFieldsBundle\Form\Type\LinkedCustomFieldsType
|
||||||
|
@ -353,7 +353,7 @@ class LoadPostalCodes extends AbstractFixture implements OrderedFixtureInterface
|
|||||||
->setCode($code[0])
|
->setCode($code[0])
|
||||||
->setName(ucwords(strtolower($code[1])));
|
->setName(ucwords(strtolower($code[1])));
|
||||||
|
|
||||||
if (null !== $code[3]) {
|
if (null !== ($code[3] ?? null)) {
|
||||||
$c->setRefPostalCodeId($code[3]);
|
$c->setRefPostalCodeId($code[3]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -30,29 +30,21 @@ use Symfony\Contracts\Translation\TranslatorInterface;
|
|||||||
use Twig\Environment;
|
use Twig\Environment;
|
||||||
|
|
||||||
class LoadCustomFields extends AbstractFixture implements
|
class LoadCustomFields extends AbstractFixture implements
|
||||||
ContainerAwareInterface,
|
|
||||||
OrderedFixtureInterface
|
OrderedFixtureInterface
|
||||||
{
|
{
|
||||||
/**
|
private $cfText;
|
||||||
* @var ContainerInterface
|
|
||||||
*/
|
private $cfChoice;
|
||||||
private $container;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var CustomField
|
|
||||||
*/
|
|
||||||
private $customFieldChoice;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @var CustomField
|
|
||||||
*/
|
|
||||||
private $customFieldText;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* LoadCustomFields constructor.
|
* LoadCustomFields constructor.
|
||||||
*/
|
*/
|
||||||
public function __construct(private readonly TranslatableStringHelper $translatableStringHelper)
|
public function __construct(
|
||||||
{
|
private readonly EntityManagerInterface $entityManager,
|
||||||
|
private readonly CustomFieldChoice $customFieldChoice,
|
||||||
|
private readonly CustomFieldText $customFieldText,
|
||||||
|
) {
|
||||||
}
|
}
|
||||||
|
|
||||||
//put your code here
|
//put your code here
|
||||||
@ -68,41 +60,26 @@ class LoadCustomFields extends AbstractFixture implements
|
|||||||
$manager->flush();
|
$manager->flush();
|
||||||
}
|
}
|
||||||
|
|
||||||
public function setContainer(?ContainerInterface $container = null)
|
|
||||||
{
|
|
||||||
if (null === $container) {
|
|
||||||
throw new RuntimeException('The given container should not be null');
|
|
||||||
}
|
|
||||||
|
|
||||||
$this->container = $container;
|
|
||||||
}
|
|
||||||
|
|
||||||
private function createCustomFieldChoice()
|
private function createCustomFieldChoice()
|
||||||
{
|
{
|
||||||
return new CustomFieldChoice(
|
return $this->customFieldChoice;
|
||||||
$this->container->get(Environment::class),
|
|
||||||
$this->translatableStringHelper
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private function createCustomFieldText()
|
private function createCustomFieldText()
|
||||||
{
|
{
|
||||||
return new CustomFieldText(
|
return $this->customFieldText;
|
||||||
$this->container->get(Environment::class),
|
|
||||||
$this->translatableStringHelper
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private function loadData(ObjectManager $manager)
|
private function loadData(ObjectManager $manager)
|
||||||
{
|
{
|
||||||
$personIds = $this->container->get(EntityManagerInterface::class)
|
$personIds = $this->entityManager
|
||||||
->createQuery('SELECT person.id FROM ChillPersonBundle:Person person')
|
->createQuery('SELECT person.id FROM ChillPersonBundle:Person person')
|
||||||
->getScalarResult();
|
->getScalarResult();
|
||||||
|
|
||||||
// get possible values for cfGroup
|
// get possible values for cfGroup
|
||||||
$choices = array_map(
|
$choices = array_map(
|
||||||
static fn ($a) => $a['slug'],
|
static fn ($a) => $a['slug'],
|
||||||
$this->customFieldChoice->getOptions()['choices']
|
$this->cfChoice->getOptions()['choices']
|
||||||
);
|
);
|
||||||
// create faker
|
// create faker
|
||||||
$faker = \Faker\Factory::create('fr_FR');
|
$faker = \Faker\Factory::create('fr_FR');
|
||||||
@ -114,9 +91,9 @@ class LoadCustomFields extends AbstractFixture implements
|
|||||||
$person = $manager->getRepository(Person::class)->find($id);
|
$person = $manager->getRepository(Person::class)->find($id);
|
||||||
$person->setCFData([
|
$person->setCFData([
|
||||||
'remarques' => $this->createCustomFieldText()
|
'remarques' => $this->createCustomFieldText()
|
||||||
->serialize($faker->text(random_int(150, 250)), $this->customFieldText),
|
->serialize($faker->text(random_int(150, 250)), $this->cfText),
|
||||||
'document-d-identite' => $this->createCustomFieldChoice()
|
'document-d-identite' => $this->createCustomFieldChoice()
|
||||||
->serialize([$choices[array_rand($choices)]], $this->customFieldChoice),
|
->serialize([$choices[array_rand($choices)]], $this->cfChoice),
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -148,7 +125,7 @@ class LoadCustomFields extends AbstractFixture implements
|
|||||||
$manager->persist($customField0);
|
$manager->persist($customField0);
|
||||||
|
|
||||||
// create text field
|
// create text field
|
||||||
$this->customFieldText = (new CustomField())
|
$this->cfText = $customFieldText = (new CustomField())
|
||||||
->setActive(true)
|
->setActive(true)
|
||||||
->setName(['fr' => 'Remarques'])
|
->setName(['fr' => 'Remarques'])
|
||||||
->setSlug('remarques')
|
->setSlug('remarques')
|
||||||
@ -156,10 +133,10 @@ class LoadCustomFields extends AbstractFixture implements
|
|||||||
->setType('text')
|
->setType('text')
|
||||||
->setOptions(['maxLength' => 5000])
|
->setOptions(['maxLength' => 5000])
|
||||||
->setCustomFieldsGroup($cfGroup);
|
->setCustomFieldsGroup($cfGroup);
|
||||||
$manager->persist($this->customFieldText);
|
$manager->persist($customFieldText);
|
||||||
|
|
||||||
// create choice field
|
// create choice field
|
||||||
$this->customFieldChoice = (new CustomField())
|
$this->cfChoice = $customFieldChoice = (new CustomField())
|
||||||
->setActive(true)
|
->setActive(true)
|
||||||
->setName(['fr' => "Document d'identité"])
|
->setName(['fr' => "Document d'identité"])
|
||||||
->setSlug('document-d-identite')
|
->setSlug('document-d-identite')
|
||||||
@ -190,6 +167,6 @@ class LoadCustomFields extends AbstractFixture implements
|
|||||||
],
|
],
|
||||||
],
|
],
|
||||||
]);
|
]);
|
||||||
$manager->persist($this->customFieldChoice);
|
$manager->persist($customFieldChoice);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user