diff --git a/src/Enum/StatusEnum.php b/src/Enum/StatusEnum.php index 52c3509..24c647a 100644 --- a/src/Enum/StatusEnum.php +++ b/src/Enum/StatusEnum.php @@ -15,10 +15,19 @@ /** @var string When it's waiting for something or someone to continue actions */ public const WAITING = 'waiting'; - + /** @var string Actions are planified and nothing is happening before */ public const PLANIFIED = 'planified'; /** @var No more actions required, success or fail */ public const CLOSED = 'closed'; + + /** @var array Names of status */ + public const STATUS_NAME = [ + 'open' => 'Ouvert', + 'inProgress' => 'En cours', + 'waiting' => 'En attente', + 'planified' => 'Planifié', + 'closed' => 'Clos', + ]; } \ No newline at end of file diff --git a/src/Exception/InvalidEnumKeyException.php b/src/Exception/InvalidEnumKeyException.php index 32f4cb6..11e256b 100644 --- a/src/Exception/InvalidEnumKeyException.php +++ b/src/Exception/InvalidEnumKeyException.php @@ -4,7 +4,7 @@ use Exception; /** - * Exceptions thrown when invalid enum key is set + * Exceptions thrown when invalid enum key is used */ class InvalidEnumKeyException extends Exception { diff --git a/src/Form/Activity/ActivityAddForm.php b/src/Form/Activity/ActivityAddForm.php index 30ef4a2..8d6333f 100644 --- a/src/Form/Activity/ActivityAddForm.php +++ b/src/Form/Activity/ActivityAddForm.php @@ -8,6 +8,7 @@ use Symfony\Bridge\Doctrine\Form\Type\EntityType; use App\Entity\ActorEntity; use Symfony\Component\Form\Extension\Core\Type\DateType; +use Symfony\Component\Form\Extension\Core\Type\ChoiceType; use App\Enum\StatusEnum; class ActivityAddForm extends AbstractFormManager @@ -24,19 +25,12 @@ $activity = new activityEntity(); $activity->generateId(); $activity->setName($data['name']); + $activity->setActor($data['actor']); + $activity->setStatus($data['status']); $activity->setStartDate($data['startDate']); $activity->setEndDate($data['endDate']); $activity->setRealStartDate($data['realStartDate']); $activity->setRealEndDate($data['realEndDate']); - $activity->setActor($data['actor']); - - if(!is_null($data['realEndDate'])) { - $activity->setStatus(StatusEnum::CLOSED); - } elseif (!is_null($data['realStartDate'])) { - $activity->setStatus(StatusEnum::IN_PROGRESS); - } else { - $activity->setStatus(StatusEnum::OPEN); - } return $activity; } @@ -60,6 +54,12 @@ 'choice_label' => 'displayName', 'required' => false, ]) + ->add('status', ChoiceType::class, [ + 'choices' => ActivityEntity::VALID_STATUS, + 'choice_label' => function($choice, $key, $value) { + return StatusEnum::STATUS_NAME[$choice]; + }, + ]) ->add('startDate', DateType::class, [ 'required' => false, 'widget' => 'single_text', diff --git a/templates/_includes/html/form/activity/add.html.twig b/templates/_includes/html/form/activity/add.html.twig index 7851ad8..79a8993 100644 --- a/templates/_includes/html/form/activity/add.html.twig +++ b/templates/_includes/html/form/activity/add.html.twig @@ -1,30 +1,41 @@ +{% import '_includes/macros/status.html.twig' as statusTools %} + {{ form_start(form, {attr: {class: 'ajax-form'}}) }}