Browse Source

Merge branch 'develop' of https://forge.laclic.fr/Laclic/SovBundle into develop

feature/symfony6.1
Guillaume 3 years ago
parent
commit
c3fd5d1ab9
19 changed files with 264 additions and 157 deletions
  1. +1
    -2
      Controller/AbstractAdminController.php
  2. +4
    -1
      Controller/Ticket/TicketAdminController.php
  3. +3
    -3
      Field/Filter/AssociationFilter.php
  4. +2
    -2
      Field/Filter/CheckboxFilter.php
  5. +18
    -20
      Field/Filter/ChoiceFilter.php
  6. +24
    -28
      Field/Filter/DateFilter.php
  7. +64
    -38
      Field/Filter/FilterManager.php
  8. +55
    -0
      Field/Filter/ImageFilter.php
  9. +17
    -17
      Field/Filter/TextFilter.php
  10. +3
    -1
      Field/ImageManagerField.php
  11. +4
    -1
      Field/StatusField.php
  12. +46
    -39
      Form/Common/FiltersFormType.php
  13. +1
    -1
      Model/Site/NewsModel.php
  14. +2
    -1
      Resources/translations/admin.fr.yaml
  15. +7
    -1
      Resources/views/admin/ticket/field/email.html.twig
  16. +6
    -0
      Resources/views/admin/ticket/field/firstname.html.twig
  17. +6
    -0
      Resources/views/admin/ticket/field/lastname.html.twig
  18. +0
    -1
      Resources/views/admin/ticket/field/username.html.twig
  19. +1
    -1
      Resources/views/adminlte/crud/field/image.html.twig

+ 1
- 2
Controller/AbstractAdminController.php View File

$filters $filters
); );



//TOdo utiliser les repositoryQuery ? //TOdo utiliser les repositoryQuery ?
if ($this->isInstanceOf(TreeInterface::class)) { if ($this->isInstanceOf(TreeInterface::class)) {
$entityId = $searchDto->getRequest()->get('entityId'); $entityId = $searchDto->getRequest()->get('entityId');
$filterManager = $this->get(FilterManager::class); $filterManager = $this->get(FilterManager::class);


$this->filtersForm->handleRequest($searchDto->getRequest()); $this->filtersForm->handleRequest($searchDto->getRequest());
/*if (($this->filtersForm->isSubmitted() && $this->filtersForm->isValid())) {


}*/
$filterManager->handleFiltersForm($queryBuilder, $this->filtersForm, $fields, $entityDto); $filterManager->handleFiltersForm($queryBuilder, $this->filtersForm, $fields, $entityDto);





+ 4
- 1
Controller/Ticket/TicketAdminController.php View File

DateField::new('createdAt')->setFormat('short') DateField::new('createdAt')->setFormat('short')
->hideOnForm(), ->hideOnForm(),
TextField::new('visitorFirstName') TextField::new('visitorFirstName')
->setTemplatePath('@LcSov/admin/ticket/field/username.html.twig')
->setTemplatePath('@LcSov/admin/ticket/field/firstname.html.twig')
->hideOnForm(),
TextField::new('visitorLastName')
->setTemplatePath('@LcSov/admin/ticket/field/lastname.html.twig')
->hideOnForm(), ->hideOnForm(),
TextField::new('visitorEmail') TextField::new('visitorEmail')
->setTemplatePath('@LcSov/admin/ticket/field/email.html.twig') ->setTemplatePath('@LcSov/admin/ticket/field/email.html.twig')

+ 3
- 3
Field/Filter/AssociationFilter.php View File

{ {
$targetEntity = $options['entity_dto']->getPropertyMetadata($fieldDto->getProperty())->get('targetEntity'); $targetEntity = $options['entity_dto']->getPropertyMetadata($fieldDto->getProperty())->get('targetEntity');


$classImplements = class_implements($targetEntity);
//todo utiliser choices plutot que query_builder voir ProductCategoriesFilter
$builder->add( $builder->add(
$fieldDto->getProperty(), $fieldDto->getProperty(),
EntityType::class, EntityType::class,
array( array(
'class' => $targetEntity, 'class' => $targetEntity,
'placeholder' => '--', 'placeholder' => '--',
'query_builder' => function (EntityRepository $repo) use ($classImplements) {
'query_builder' => function (EntityRepository $repo){
return $repo->createQueryBuilder('entity'); return $repo->createQueryBuilder('entity');
}, },
'required' => false, 'required' => false,
); );
} }


public function applyFilter(QueryBuilder $queryBuilder, string $fieldProperty, string $filteredValue = null)
public function applyFilter(QueryBuilder $queryBuilder, string $fieldProperty, $filteredValue = null)
{ {
if ($filteredValue !== null) { if ($filteredValue !== null) {
$queryBuilder->andWhere('entity.'.$fieldProperty.' = :'.$fieldProperty.''); $queryBuilder->andWhere('entity.'.$fieldProperty.' = :'.$fieldProperty.'');

+ 2
- 2
Field/Filter/CheckboxFilter.php View File

); );
$queryBuilder->setParameter( $queryBuilder->setParameter(
$this->getFieldPropertySnake($fieldProperty), $this->getFieldPropertySnake($fieldProperty),
'%'.$filteredValue.'%'
$filteredValue
); );
} else { } else {
$queryBuilder->andWhere( $queryBuilder->andWhere(
'entity.'.$fieldProperty.' = :'.$fieldProperty.'' 'entity.'.$fieldProperty.' = :'.$fieldProperty.''
); );
$queryBuilder->setParameter($fieldProperty, '%'.$filteredValue.'%');
$queryBuilder->setParameter($fieldProperty, $filteredValue);
} }


} }

+ 18
- 20
Field/Filter/ChoiceFilter.php View File



public function buildProperty(FormBuilderInterface $builder, FieldDto $fieldDto, $options = array()) public function buildProperty(FormBuilderInterface $builder, FieldDto $fieldDto, $options = array())
{ {
$entity = new $options['entity_class'];
$choicesFct = 'get'.u($fieldDto->getProperty())->title()->toString().'Choices';

if (method_exists($entity, $choicesFct)) {
$builder->add(
$fieldDto->getProperty(),
ChoiceType::class,
array(
'required' => false,
'choices' => $this->translatorAdmin->transChoices(
$entity->$choicesFct(),
$options['entity_name'],
$fieldDto->getProperty()
),
'attr' => array(
'class' => 'select2 input-sm',
'form' => 'filters-form',
),
)
if($fieldDto->getCustomOption('choices')){
$choices = $fieldDto->getCustomOption('choices');
}else if($fieldDto->getFormTypeOption('choices') !=null){
$choices = $fieldDto->getFormTypeOption('choices');
}else{
$choices = array();
}
$builder->add(
$fieldDto->getProperty(),
ChoiceType::class,
array(
'required' => false,
'choices' => $choices,
'attr' => array(
'class' => 'select2 input-sm',
'form' => 'filters-form',
),
)
); );
}
} }


public function applyFilter(QueryBuilder $queryBuilder, string $fieldProperty, string $filteredValue = null) public function applyFilter(QueryBuilder $queryBuilder, string $fieldProperty, string $filteredValue = null)

+ 24
- 28
Field/Filter/DateFilter.php View File

public function buildProperty(FormBuilderInterface $builder, FieldDto $fieldDto, $options = array()) public function buildProperty(FormBuilderInterface $builder, FieldDto $fieldDto, $options = array())
{ {
$builder->add( $builder->add(
$builder->create(
str_replace('.', '_', $fieldDto->getProperty()),
FormType::class,
array('inherit_data' => true)
$builder->create(
str_replace('.', '_', $fieldDto->getProperty()),
FormType::class,
array('inherit_data' => true)
)
->add(
'dateStart',
DateType::class,
array(
'widget' => 'single_text',
'required' => false,
)
) )
->add(
'dateStart',
DateType::class,
array(
'widget' => 'single_text',
'required' => false,
)
)
->add(
'dateEnd',
DateType::class,
array(
'widget' => 'single_text',
'required' => false,
->add(
'dateEnd',
DateType::class,
array(
'widget' => 'single_text',
'required' => false,


)
)
)
)
); );
} }


public function applyFilter(
QueryBuilder $queryBuilder,
string $fieldProperty,
\DateTime $dateStart = null,
\DateTime $dateEnd = null
) {
public function applyFilter(QueryBuilder $queryBuilder, string $fieldProperty, \DateTime $dateStart = null, \DateTime $dateEnd = null)
{
if ($dateStart) { if ($dateStart) {
$queryBuilder->andWhere( $queryBuilder->andWhere(
'entity.'.$fieldProperty.' >= :dateStart'
'entity.' . $fieldProperty . ' >= :dateStart'
)->setParameter('dateStart', $dateStart); )->setParameter('dateStart', $dateStart);
} }
if ($dateEnd) { if ($dateEnd) {
$dateEnd->setTime(23, 59, 59); $dateEnd->setTime(23, 59, 59);
$queryBuilder->andWhere( $queryBuilder->andWhere(
'entity.'.$fieldProperty.' <= :dateEnd'
'entity.' . $fieldProperty . ' <= :dateEnd'
)->setParameter('dateEnd', $dateEnd); )->setParameter('dateEnd', $dateEnd);
} }
} }

+ 64
- 38
Field/Filter/FilterManager.php View File



use Doctrine\ORM\EntityManagerInterface; use Doctrine\ORM\EntityManagerInterface;
use Doctrine\ORM\QueryBuilder; use Doctrine\ORM\QueryBuilder;
use DoctrineExtensions\Query\Mysql\Field;
use EasyCorp\Bundle\EasyAdminBundle\Config\Crud; use EasyCorp\Bundle\EasyAdminBundle\Config\Crud;
use EasyCorp\Bundle\EasyAdminBundle\Contracts\Field\FieldInterface; use EasyCorp\Bundle\EasyAdminBundle\Contracts\Field\FieldInterface;
use EasyCorp\Bundle\EasyAdminBundle\Dto\EntityDto; use EasyCorp\Bundle\EasyAdminBundle\Dto\EntityDto;
} }
} }


public function getFieldProperty(FieldDto $fieldDto)
{
$property = $fieldDto->getProperty();
//TODO pas forcément utile, à discuter
if ($fieldDto->getCustomOption('filter_on')) {
$property = $property . '.' . $fieldDto->getCustomOption('filter_on');
}
return $property;
}

public function applyFilter(QueryBuilder $queryBuilder, FieldDto $fieldDto, array $filteredValue) public function applyFilter(QueryBuilder $queryBuilder, FieldDto $fieldDto, array $filteredValue)
{ {
switch ($fieldDto->getFormType()) {
case CheckboxType::class:
$checkboxFilter = new CheckboxFilter();
$checkboxFilter->applyFilter($queryBuilder, $fieldDto->getProperty(), $filteredValue['value']);
break;
case ChoiceType::class:
$choiceFilter = new ChoiceFilter();
$choiceFilter->applyFilter($queryBuilder, $fieldDto->getProperty(), $filteredValue['value']);
break;
case IntegerType::class:
$integerFilter = new IntegerFilter();
$integerFilter->applyFilter($queryBuilder, $fieldDto->getProperty(), $filteredValue['value']);
break;
case TextareaType::class:
case TextType::class:
$textFilter = new TextFilter();
$textFilter->applyFilter($queryBuilder, $fieldDto->getProperty(), $filteredValue['value']);
break;
case EntityType::class:
$textFilter = new AssociationFilter();
$textFilter->applyFilter($queryBuilder, $fieldDto->getProperty(), $filteredValue['value']);
break;
case DateTimeType::class:
case DateType::class:
$textFilter = new DateFilter();
$textFilter->applyFilter(
$queryBuilder,
$fieldDto->getProperty(),
$filteredValue['dateStart'],
$filteredValue['dateEnd']
);
break;
if ($fieldDto->getCustomOption('filter_fqcn')) {
$filterFqcn = $fieldDto->getCustomOption('filter_fqcn');
$customFilter = new $filterFqcn;

$customFilter->applyFilter($queryBuilder, $this->getFieldProperty($fieldDto), $filteredValue['value']);
} else {

switch ($this->guessFormType($fieldDto)) {

case CheckboxType::class:
$checkboxFilter = new CheckboxFilter();
$checkboxFilter->applyFilter($queryBuilder, $this->getFieldProperty($fieldDto), $filteredValue['value']);
break;
case ChoiceType::class:
$choiceFilter = new ChoiceFilter();
$choiceFilter->applyFilter($queryBuilder, $this->getFieldProperty($fieldDto), $filteredValue['value']);
break;
case IntegerType::class:
$integerFilter = new IntegerFilter();
$integerFilter->applyFilter($queryBuilder, $this->getFieldProperty($fieldDto), $filteredValue['value']);
break;
case TextareaType::class:
case TextType::class:
$textFilter = new TextFilter();
$textFilter->applyFilter($queryBuilder, $this->getFieldProperty($fieldDto), $filteredValue['value']);
break;
case EntityType::class:
$textFilter = new AssociationFilter();
$textFilter->applyFilter($queryBuilder, $this->getFieldProperty($fieldDto), $filteredValue['value']);
break;
case DateTimeType::class:
case DateType::class:
$textFilter = new DateFilter();
$textFilter->applyFilter(
$queryBuilder,
$this->getFieldProperty($fieldDto),
$filteredValue['dateStart'],
$filteredValue['dateEnd']
);
break;
}
} }
} }




} }


public
function getFormField(
Form $filtersForm,
string $field,
string $extraField = null
): Form
public function getFormField(Form $filtersForm, string $field, string $extraField = null): Form
{ {
if ($extraField) { if ($extraField) {
return $filtersForm->get($field)->get($extraField); return $filtersForm->get($field)->get($extraField);
return $filtersForm->get($field); return $filtersForm->get($field);
} }
} }


protected function guessFormType(FieldDto $fieldDto)
{
if ($fieldDto->getCustomOption('filter_type')) {
return $fieldDto->getCustomOption('filter_type');
} else {
return $fieldDto->getFormType();
}

}
} }

+ 55
- 0
Field/Filter/ImageFilter.php View File

<?php

namespace Lc\SovBundle\Field\Filter;

use Doctrine\ORM\QueryBuilder;
use EasyCorp\Bundle\EasyAdminBundle\Dto\FieldDto;
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
use Symfony\Component\Form\FormBuilderInterface;

/**
* @author La clic ! <contact@laclic.fr>
*/
class ImageFilter
{
use FilterTrait;

public function buildProperty(FormBuilderInterface $builder, FieldDto $fieldDto, $options = array())
{
$targetEntity = $options['entity_dto']->getPropertyMetadata($fieldDto->getProperty())->get('targetEntity');

$builder->add(
$fieldDto->getProperty(),
ChoiceType::class,
array(
'required' => false,
'choices' => array(
'Sans image' => 0,
'Avec image' => 1,
),
'attr' => array(
'class' => 'select2 input-sm',
'form' => 'filters-form',
),
)
);
}


public function applyFilter(QueryBuilder $queryBuilder, string $fieldProperty, $filteredValue = null)
{
if ($filteredValue !== null) {
if($filteredValue === 1){
$queryBuilder->andWhere(
'entity.' . $fieldProperty . ' IS NOT NULL'
);
}else{
$queryBuilder->andWhere(
'entity.' . $fieldProperty . ' IS NULL'
);
}

}
}

}

+ 17
- 17
Field/Filter/TextFilter.php View File

use FilterTrait; use FilterTrait;




public function buildProperty(FormBuilderInterface $builder, FieldDto $fieldDto, $options = array())
public function buildProperty(FormBuilderInterface $builder, FieldDto $fieldDto, $options = array())
{ {
$builder->add( $builder->add(
str_replace('.', '_', $fieldDto->getProperty()),
TextType::class,
array(
'required' => false,
'attr' => array(
'class' => ' input-sm',
'form' => 'filters-form',
),
)
str_replace('.', '_', $fieldDto->getProperty()),
TextType::class,
array(
'required' => false,
'attr' => array(
'class' => ' input-sm',
'form' => 'filters-form',
),
)
); );
} }


public function applyFilter(QueryBuilder $queryBuilder, string $fieldProperty, string $filteredValue= null)
public function applyFilter(QueryBuilder $queryBuilder, string $fieldProperty, string $filteredValue = null)
{ {


if ($filteredValue !== null) { if ($filteredValue !== null) {


$aliasRelation = $this->getFieldPropertyRelationAlias($fieldProperty); $aliasRelation = $this->getFieldPropertyRelationAlias($fieldProperty);
if (array_search($aliasRelation, $queryBuilder->getAllAliases()) === false) { if (array_search($aliasRelation, $queryBuilder->getAllAliases()) === false) {
$queryBuilder->innerJoin('entity.'.$aliasRelation, $aliasRelation);
$queryBuilder->innerJoin('entity.' . $aliasRelation, $aliasRelation);
} }
$queryBuilder->andWhere( $queryBuilder->andWhere(
$fieldProperty.' LIKE :'.$this->getFieldPropertySnake($fieldProperty).''
$fieldProperty . ' LIKE :' . $this->getFieldPropertySnake($fieldProperty) . ''
); );
$queryBuilder->setParameter( $queryBuilder->setParameter(
$this->getFieldPropertySnake($fieldProperty),
'%'.$filteredValue.'%'
$this->getFieldPropertySnake($fieldProperty),
'%' . $filteredValue . '%'
); );
} else { } else {
$queryBuilder->andWhere( $queryBuilder->andWhere(
'entity.'.$fieldProperty.' LIKE :'.$fieldProperty.''
'entity.' . $fieldProperty . ' LIKE :' . $fieldProperty . ''
); );
$queryBuilder->setParameter($fieldProperty, '%'.$filteredValue.'%');
$queryBuilder->setParameter($fieldProperty, '%' . $filteredValue . '%');
} }
} }
} }

+ 3
- 1
Field/ImageManagerField.php View File



use EasyCorp\Bundle\EasyAdminBundle\Contracts\Field\FieldInterface; use EasyCorp\Bundle\EasyAdminBundle\Contracts\Field\FieldInterface;
use EasyCorp\Bundle\EasyAdminBundle\Field\FieldTrait; use EasyCorp\Bundle\EasyAdminBundle\Field\FieldTrait;
use Lc\SovBundle\Field\Filter\ImageFilter;
use Lc\SovBundle\Form\Common\FileManagerType; use Lc\SovBundle\Form\Common\FileManagerType;


/** /**
->setCustomOption('type', 'image') ->setCustomOption('type', 'image')
->addCssClass('field-text') ->addCssClass('field-text')
->setCustomOption(self::OPTION_MAX_LENGTH, null) ->setCustomOption(self::OPTION_MAX_LENGTH, null)
->setCustomOption(self::OPTION_RENDER_AS_HTML, false);
->setCustomOption(self::OPTION_RENDER_AS_HTML, false)
->setCustomOption('filter_fqcn', ImageFilter::class);
} }


public function setMaxLength(int $length): self public function setMaxLength(int $length): self

+ 4
- 1
Field/StatusField.php View File



use EasyCorp\Bundle\EasyAdminBundle\Contracts\Field\FieldInterface; use EasyCorp\Bundle\EasyAdminBundle\Contracts\Field\FieldInterface;
use EasyCorp\Bundle\EasyAdminBundle\Field\FieldTrait; use EasyCorp\Bundle\EasyAdminBundle\Field\FieldTrait;
use Lc\SovBundle\Field\Filter\BooleanFilter;
use Lc\SovBundle\Field\Filter\CheckboxFilter;
use Symfony\Component\Form\Extension\Core\Type\ChoiceType; use Symfony\Component\Form\Extension\Core\Type\ChoiceType;


/** /**
->setFormTypeOption('multiple', false) ->setFormTypeOption('multiple', false)
->setFormTypeOption('choices', ['En ligne' => 1, 'Hors ligne' => 0]) ->setFormTypeOption('choices', ['En ligne' => 1, 'Hors ligne' => 0])
->setFormTypeOption('placeholder', false) ->setFormTypeOption('placeholder', false)
->setCustomOption('toggle_label', 'En ligne');
->setCustomOption('toggle_label', 'En ligne')
->setCustomOption('filter_fqcn', CheckboxFilter::class);


$template = 'toggle.html.twig'; $template = 'toggle.html.twig';
if (!$templateToggle) { if (!$templateToggle) {

+ 46
- 39
Form/Common/FiltersFormType.php View File



namespace Lc\SovBundle\Form\Common; namespace Lc\SovBundle\Form\Common;


use Doctrine\ORM\EntityManagerInterface;
use Doctrine\ORM\EntityRepository;
use EasyCorp\Bundle\EasyAdminBundle\Config\Crud; use EasyCorp\Bundle\EasyAdminBundle\Config\Crud;
use EasyCorp\Bundle\EasyAdminBundle\Contracts\Field\FieldInterface; use EasyCorp\Bundle\EasyAdminBundle\Contracts\Field\FieldInterface;
use EasyCorp\Bundle\EasyAdminBundle\Dto\FieldDto;
use Lc\SovBundle\Field\Filter\AssociationFilter; use Lc\SovBundle\Field\Filter\AssociationFilter;
use Lc\SovBundle\Field\Filter\CheckboxFilter; use Lc\SovBundle\Field\Filter\CheckboxFilter;
use Lc\SovBundle\Field\Filter\ChoiceFilter; use Lc\SovBundle\Field\Filter\ChoiceFilter;
use Lc\SovBundle\Field\Filter\DateFilter; use Lc\SovBundle\Field\Filter\DateFilter;
use Lc\SovBundle\Field\Filter\FilterManager;
use Lc\SovBundle\Field\Filter\IntegerFilter; use Lc\SovBundle\Field\Filter\IntegerFilter;
use Lc\SovBundle\Field\Filter\TextFilter; use Lc\SovBundle\Field\Filter\TextFilter;
use Lc\SovBundle\Translation\TranslatorAdmin; use Lc\SovBundle\Translation\TranslatorAdmin;
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\Extension\Core\Type\ButtonType;
use Symfony\Component\Form\Extension\Core\Type\CheckboxType; use Symfony\Component\Form\Extension\Core\Type\CheckboxType;
use Symfony\Component\Form\Extension\Core\Type\ChoiceType; use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
use Symfony\Component\Form\Extension\Core\Type\DateTimeType; use Symfony\Component\Form\Extension\Core\Type\DateTimeType;
use Symfony\Component\Form\Extension\Core\Type\DateType; use Symfony\Component\Form\Extension\Core\Type\DateType;
use Symfony\Component\Form\Extension\Core\Type\FormType;
use Symfony\Component\Form\Extension\Core\Type\HiddenType; use Symfony\Component\Form\Extension\Core\Type\HiddenType;
use Symfony\Component\Form\Extension\Core\Type\IntegerType; 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\Form\Extension\Core\Type\TextType; use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver; use Symfony\Component\OptionsResolver\OptionsResolver;
use Symfony\Contracts\Translation\TranslatorInterface;


use function Symfony\Component\String\u; use function Symfony\Component\String\u;


} else { } else {
$fieldDto = $field; $fieldDto = $field;
} }
if ($fieldDto->isDisplayedOn(Crud::PAGE_INDEX)) {


switch ($fieldDto->getFormType()) {
case CheckboxType::class:
$checkboxFilter = new CheckboxFilter();
$checkboxFilter->buildProperty($builder, $fieldDto);
//POurt modifier le type de filtre filter_type
//Pour désactiver le filtre sur un champ filter à false


break;
case ChoiceType::class:
$choiceFilter = new ChoiceFilter($this->translatorAdmin);
$choiceFilter->buildProperty($builder, $fieldDto, $options);
break;
case IntegerType::class:
$integerFilter = new IntegerFilter();
$integerFilter->buildProperty($builder, $fieldDto);
if ($fieldDto->isDisplayedOn(Crud::PAGE_INDEX) && $fieldDto->getCustomOption('filter')!==false) {
if($fieldDto->getCustomOption('filter_fqcn')){
$filterFqcn = $fieldDto->getCustomOption('filter_fqcn');
$checkboxFilter = new $filterFqcn;
$checkboxFilter->buildProperty($builder, $fieldDto, $options);
}else {


break;
case TextType::class:
case TextareaType::class:
$textFilter = new TextFilter();
$textFilter->buildProperty($builder, $fieldDto);
break;
case DateTimeType::class:
case DateType::class:
$textFilter = new DateFilter();
$textFilter->buildProperty($builder, $fieldDto);
break;
case EntityType::class:
//$associationFilter = new AssociationFilter();
//$associationFilter->buildProperty($builder, $fieldDto, $options);
break;
case 'dateinterval':
switch ($this->guessFormType($fieldDto)) {
case CheckboxType::class:
$checkboxFilter = new CheckboxFilter();
$checkboxFilter->buildProperty($builder, $fieldDto);
break;
case ChoiceType::class:
$choiceFilter = new ChoiceFilter($this->translatorAdmin);
$choiceFilter->buildProperty($builder, $fieldDto, $options);
break;
case IntegerType::class:
$integerFilter = new IntegerFilter();
$integerFilter->buildProperty($builder, $fieldDto);


break;
case 'float':

break;
break;
case TextType::class:
case TextareaType::class:
$textFilter = new TextFilter();
$textFilter->buildProperty($builder, $fieldDto);
break;
case DateTimeType::class:
case DateType::class:
$textFilter = new DateFilter();
$textFilter->buildProperty($builder, $fieldDto);
break;
case EntityType::class:
$associationFilter = new AssociationFilter();
$associationFilter->buildProperty($builder, $fieldDto, $options);
break;
}
} }
} }
} }
] ]
); );
} }

protected function guessFormType(FieldDto $fieldDto){
if($fieldDto->getCustomOption('filter_type')){
return $fieldDto->getCustomOption('filter_type');
}else{
return$fieldDto->getFormType();
}

}
} }

+ 1
- 1
Model/Site/NewsModel.php View File





/** /**
* @ORM\ManyToOne(targetEntity="Lc\SovBundle\Model\Newsletter\NewsletterInterface", inversedBy="news")
* @ORM\ManyToOne(targetEntity="Lc\SovBundle\Model\Newsletter\NewsletterInterface")
*/ */
protected $newsletter; protected $newsletter;



+ 2
- 1
Resources/translations/admin.fr.yaml View File

save_and_return: Sauvegarder les modifications save_and_return: Sauvegarder les modifications
save_and_continue: Sauvegarder et continuer l'édition save_and_continue: Sauvegarder et continuer l'édition
save_and_add_another: Créer et ajouter un nouvel élément save_and_add_another: Créer et ajouter un nouvel élément

reset: Réinitialiser
apply: Appliquer
entity: entity:
User: User:
label: Utilisateur label: Utilisateur

+ 7
- 1
Resources/views/admin/ticket/field/email.html.twig View File

{#{{ entity.instance.getEmail() }}#}

{% set item = entity.instance %}
{% if item.user is not null %}
{{ item.user.email }}
{% else %}
{{ item.visitorEmail }}
{% endif %}

+ 6
- 0
Resources/views/admin/ticket/field/firstname.html.twig View File

{% set item = entity.instance %}
{% if item.user is not null %}
{{ item.user.firstname }}
{% else %}
{{ item.visitorFirstname }}
{% endif %}

+ 6
- 0
Resources/views/admin/ticket/field/lastname.html.twig View File

{% set item = entity.instance %}
{% if item.user is not null %}
{{ item.user.lastname }}
{% else %}
{{ item.visitorLastname }}
{% endif %}

+ 0
- 1
Resources/views/admin/ticket/field/username.html.twig View File

{#{{ entity.instance.user.getUsername() }}#}

+ 1
- 1
Resources/views/adminlte/crud/field/image.html.twig View File

{% set id_modal = 'modal-'~field.value.id %} {% set id_modal = 'modal-'~field.value.id %}


<a href="{{ sov_liip(field.value.path, 'big') }}" data-toggle="modal" data-target="#{{ id_modal }}" title="{{ field.value.legend }}"> <a href="{{ sov_liip(field.value.path, 'big') }}" data-toggle="modal" data-target="#{{ id_modal }}" title="{{ field.value.legend }}">
<img src="{{ sov_liip(field.value.path, 'thumbnail') }}" alt="{{ field.value.legend }}">
<img src="{{ sov_liip(field.value.path, 'index') }}" alt="{{ field.value.legend }}">
</a> </a>


{% embed "@LcSov/adminlte/embed/modal.twig" %} {% embed "@LcSov/adminlte/embed/modal.twig" %}

Loading…
Cancel
Save