Commit 62ce2ea5 by Yvon

use cleaner state values for selfevalformtype operating mode

parent 9f571319
...@@ -8,6 +8,7 @@ use App\Entity\Prestataire; ...@@ -8,6 +8,7 @@ use App\Entity\Prestataire;
use App\Enum\MoyenEnum; use App\Enum\MoyenEnum;
use App\Form\Type\DistributorSelfEvalPrestaQuizType; use App\Form\Type\DistributorSelfEvalPrestaQuizType;
use App\Form\Type\ProducerSelfEvalPrestaQuizType; use App\Form\Type\ProducerSelfEvalPrestaQuizType;
use App\Form\Type\SelfEvalPrestaQuizType;
use App\Utils\CustomEntityManager; use App\Utils\CustomEntityManager;
use DateTime; use DateTime;
use Sonata\AdminBundle\Controller\CRUDController; use Sonata\AdminBundle\Controller\CRUDController;
...@@ -138,7 +139,7 @@ class PrestataireAdminController extends CRUDController ...@@ -138,7 +139,7 @@ class PrestataireAdminController extends CRUDController
$quiz = $prestataire->getSelfEvalPrestaQuiz(); $quiz = $prestataire->getSelfEvalPrestaQuiz();
$formClass = Prestataire::DISTRIBUTOR === $prestataire->getMarketChannelFunction() ? $formClass = Prestataire::DISTRIBUTOR === $prestataire->getMarketChannelFunction() ?
DistributorSelfEvalPrestaQuizType::class : ProducerSelfEvalPrestaQuizType::class; DistributorSelfEvalPrestaQuizType::class : ProducerSelfEvalPrestaQuizType::class;
$form = $this->createForm($formClass, $quiz, ["review" => true]); $form = $this->createForm($formClass, $quiz, ["mode" => SelfEvalPrestaQuizType::ADMIN_EDIT]);
$form->handleRequest($request); $form->handleRequest($request);
......
...@@ -9,6 +9,7 @@ use App\Entity\Flux; ...@@ -9,6 +9,7 @@ use App\Entity\Flux;
use App\Entity\SelfEvalPrestaQuiz; use App\Entity\SelfEvalPrestaQuiz;
use App\Form\Type\DistributorSelfEvalPrestaQuizType; use App\Form\Type\DistributorSelfEvalPrestaQuizType;
use App\Form\Type\ProducerSelfEvalPrestaQuizType; use App\Form\Type\ProducerSelfEvalPrestaQuizType;
use App\Form\Type\SelfEvalPrestaQuizType;
use Doctrine\ORM\EntityManagerInterface; use Doctrine\ORM\EntityManagerInterface;
use Symfony\Component\HttpFoundation\RedirectResponse; use Symfony\Component\HttpFoundation\RedirectResponse;
use Symfony\Component\Routing\Annotation\Route; use Symfony\Component\Routing\Annotation\Route;
...@@ -45,7 +46,7 @@ class PrestatairesController extends FrontController ...@@ -45,7 +46,7 @@ class PrestatairesController extends FrontController
$quiz = $prestataire->getSelfEvalPrestaQuiz(); $quiz = $prestataire->getSelfEvalPrestaQuiz();
$formClass = Prestataire::DISTRIBUTOR === $prestataire->getMarketChannelFunction() ? $formClass = Prestataire::DISTRIBUTOR === $prestataire->getMarketChannelFunction() ?
DistributorSelfEvalPrestaQuizType::class : ProducerSelfEvalPrestaQuizType::class; DistributorSelfEvalPrestaQuizType::class : ProducerSelfEvalPrestaQuizType::class;
$form = $this->createForm($formClass, $quiz, ["review" => "readonly"]); $form = $this->createForm($formClass, $quiz, ["mode" => SelfEvalPrestaQuizType::READONLY]);
return $this->render('@kohinos/presta/show.html.twig', [ return $this->render('@kohinos/presta/show.html.twig', [
'presta' => $prestataire, 'presta' => $prestataire,
......
...@@ -100,7 +100,7 @@ class DistributorSelfEvalPrestaQuizType extends SelfEvalPrestaQuizType ...@@ -100,7 +100,7 @@ class DistributorSelfEvalPrestaQuizType extends SelfEvalPrestaQuizType
$builder->add('localite_global_comment', TextareaType::class, $this->cmtOpts); $builder->add('localite_global_comment', TextareaType::class, $this->cmtOpts);
//Review //Review
if($options['review']) { if($options['mode'] !== self::PRESTA_EDIT) {
$this->reviewOpts['label'] = "Transparence et juste rémunération : " . $this->reviewLabel; $this->reviewOpts['label'] = "Transparence et juste rémunération : " . $this->reviewLabel;
$this->reviewOpts['choices'] = $this->stdGlobalChoices; $this->reviewOpts['choices'] = $this->stdGlobalChoices;
$builder->add('review_transpar_global', ChoiceType::class, $this->reviewOpts); $builder->add('review_transpar_global', ChoiceType::class, $this->reviewOpts);
......
...@@ -59,7 +59,7 @@ class ProducerSelfEvalPrestaQuizType extends SelfEvalPrestaQuizType ...@@ -59,7 +59,7 @@ class ProducerSelfEvalPrestaQuizType extends SelfEvalPrestaQuizType
$builder->add('proagdur_global_comment', TextareaType::class, $this->cmtOpts); $builder->add('proagdur_global_comment', TextareaType::class, $this->cmtOpts);
//Review //Review
if($options['review']) { if($options['mode'] !== self::PRESTA_EDIT) {
$this->reviewOpts['label'] = "Pratiques agricoles durables : " . $this->reviewLabel; $this->reviewOpts['label'] = "Pratiques agricoles durables : " . $this->reviewLabel;
$this->reviewOpts['choices'] = $this->stdGlobalChoices; $this->reviewOpts['choices'] = $this->stdGlobalChoices;
$builder->add('review_proagdur_global', ChoiceType::class, $this->reviewOpts); $builder->add('review_proagdur_global', ChoiceType::class, $this->reviewOpts);
......
...@@ -20,6 +20,10 @@ use Symfony\Component\Validator\Constraints\NotNull; ...@@ -20,6 +20,10 @@ use Symfony\Component\Validator\Constraints\NotNull;
*/ */
class SelfEvalPrestaQuizType extends AbstractType class SelfEvalPrestaQuizType extends AbstractType
{ {
const PRESTA_EDIT = 'presta_edit';
const ADMIN_EDIT = 'admin_edit';
const READONLY = 'readonly';
protected $security; protected $security;
protected array $stdChoices; protected array $stdChoices;
...@@ -57,28 +61,28 @@ class SelfEvalPrestaQuizType extends AbstractType ...@@ -57,28 +61,28 @@ class SelfEvalPrestaQuizType extends AbstractType
public function buildForm(FormBuilderInterface $builder, array $options) public function buildForm(FormBuilderInterface $builder, array $options)
{ {
//options are moved to buildForm as 'review' option is required to set them up //options are moved to buildForm as 'mode' option is required to set them up
$this->reviewOpts = [ $this->reviewOpts = [
'label' => '', 'label' => '',
'choices' => $this->stdChoices, 'choices' => $this->stdChoices,
'expanded' => true, 'expanded' => true,
"multiple" => false, "multiple" => false,
'constraints' => [new NotNull()], 'constraints' => [new NotNull()],
'disabled' => $options['review'] === "readonly" 'disabled' => $options['mode'] === self::READONLY
]; ];
$this->opts = $this->reviewOpts; $this->opts = $this->reviewOpts;
$this->opts['disabled'] = $options['review']; $this->opts['disabled'] = $options['mode'] !== self::PRESTA_EDIT;
$this->reviewCmtOpts = [ $this->reviewCmtOpts = [
'attr' => [ 'attr' => [
'placeholder' => $options['review'] === "readonly" ? '' : 'Commentaires' 'placeholder' => $options['mode'] === self::READONLY ? '' : 'Commentaires'
], ],
'label' => false, 'label' => false,
'required' => false, 'required' => false,
'disabled' => $options['review'] === "readonly" 'disabled' => $options['mode'] === self::READONLY
]; ];
$this->cmtOpts = $this->reviewCmtOpts; $this->cmtOpts = $this->reviewCmtOpts;
$this->cmtOpts['disabled'] = $options['review']; $this->cmtOpts['disabled'] = $options['mode'] !== self::PRESTA_EDIT;
$this->cmtOpts['attr']['placeholder'] = $options['review'] ? '' : 'Commentaires'; $this->cmtOpts['attr']['placeholder'] = $options['mode'] !== self::PRESTA_EDIT ? '' : 'Commentaires';
/* PARTIE 1 : ACCESSIBILITE ET INCLUSIVITE */ /* PARTIE 1 : ACCESSIBILITE ET INCLUSIVITE */
$this->opts['label'] = "Géographique et physique : le lieu est-il accessible par différents modes de transport ?"; $this->opts['label'] = "Géographique et physique : le lieu est-il accessible par différents modes de transport ?";
...@@ -138,7 +142,7 @@ class SelfEvalPrestaQuizType extends AbstractType ...@@ -138,7 +142,7 @@ class SelfEvalPrestaQuizType extends AbstractType
$builder->add('bienetre_global_comment', TextareaType::class, $this->cmtOpts); $builder->add('bienetre_global_comment', TextareaType::class, $this->cmtOpts);
//Review //Review
if($options['review']) { if($options['mode'] !== self::PRESTA_EDIT) {
$this->reviewOpts['label'] = "Accessibilité et inclusivité : " . $this->reviewLabel; $this->reviewOpts['label'] = "Accessibilité et inclusivité : " . $this->reviewLabel;
$this->reviewOpts['choices'] = $this->stdGlobalChoices; $this->reviewOpts['choices'] = $this->stdGlobalChoices;
$builder->add('review_accessib_global', ChoiceType::class, $this->reviewOpts); $builder->add('review_accessib_global', ChoiceType::class, $this->reviewOpts);
...@@ -150,8 +154,8 @@ class SelfEvalPrestaQuizType extends AbstractType ...@@ -150,8 +154,8 @@ class SelfEvalPrestaQuizType extends AbstractType
$builder->add('review_bienetre_global_comment', TextareaType::class, $this->reviewCmtOpts); $builder->add('review_bienetre_global_comment', TextareaType::class, $this->reviewCmtOpts);
} }
if($options["review"] !== "readonly") { if($options['mode'] !== self::READONLY) {
$builder->add('save', SubmitType::class, ['label' => $options['review'] ? 'Enregistrer' : 'Envoyer']); $builder->add('save', SubmitType::class, ['label' => $options['mode'] === self::PRESTA_EDIT ? 'Envoyer' : 'Enregistrer']);
} }
} }
...@@ -162,10 +166,7 @@ class SelfEvalPrestaQuizType extends AbstractType ...@@ -162,10 +166,7 @@ class SelfEvalPrestaQuizType extends AbstractType
{ {
$resolver->setDefaults([ $resolver->setDefaults([
'data_class' => SelfEvalPrestaQuiz::class, 'data_class' => SelfEvalPrestaQuiz::class,
//review says if prestataire is filling the form (false), 'mode' => self::PRESTA_EDIT
//if an admin is reviewing (true)
//or if read mode on presta vitrine ("readonly")
'review' => false
]); ]);
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment