diff --git a/Entity/Event.php b/Entity/Event.php index 0246be6fd..87cc9bab1 100644 --- a/Entity/Event.php +++ b/Entity/Event.php @@ -4,6 +4,7 @@ namespace Chill\EventBundle\Entity; use Chill\MainBundle\Entity\HasCenterInterface; use Chill\MainBundle\Entity\HasScopeInterface; +use Doctrine\ORM\Mapping as ORM; /** * Event @@ -47,7 +48,12 @@ class Event implements HasCenterInterface, HasScopeInterface * @var \Doctrine\Common\Collections\Collection */ private $participations; - + + /** + * @var integer + */ + private $moderator; + /** * Constructor */ @@ -215,4 +221,22 @@ class Event implements HasCenterInterface, HasScopeInterface { return $this->participations; } + + /** + * @return int + */ + public function getModerator() + { + return $this->moderator; + } + + /** + * @param int $moderator + * @return Event + */ + public function setModerator($moderator) + { + $this->moderator = $moderator; + return $this; + } } diff --git a/Form/EventType.php b/Form/EventType.php index 913acb08e..df4744178 100644 --- a/Form/EventType.php +++ b/Form/EventType.php @@ -3,6 +3,7 @@ namespace Chill\EventBundle\Form; use Chill\MainBundle\Form\Type\ChillDateTimeType; +use Chill\PersonBundle\Entity\Person; use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\OptionsResolver\OptionsResolverInterface; @@ -104,6 +105,11 @@ class EventType extends AbstractType }, )) ->add('type', PickEventType::class) + ->add('moderator', EntityType::class, array( + 'class' => Person::class, + 'required' => false, + 'placeholder' => '' + )) ; } diff --git a/Resources/config/doctrine/Event.orm.yml b/Resources/config/doctrine/Event.orm.yml index 3d7e0ec5a..88bc2e9d1 100644 --- a/Resources/config/doctrine/Event.orm.yml +++ b/Resources/config/doctrine/Event.orm.yml @@ -24,4 +24,7 @@ Chill\EventBundle\Entity\Event: targetEntity: Chill\EventBundle\Entity\EventType circle: targetEntity: Chill\MainBundle\Entity\Scope + moderator: + targetEntity: Chill\PersonBundle\Entity\Person + lifecycleCallbacks: { } diff --git a/Resources/migrations/Version20190115140042.php b/Resources/migrations/Version20190115140042.php new file mode 100644 index 000000000..275fabd21 --- /dev/null +++ b/Resources/migrations/Version20190115140042.php @@ -0,0 +1,32 @@ +abortIf($this->connection->getDatabasePlatform()->getName() !== 'postgresql', 'Migration can only be executed safely on \'postgresql\'.'); + + $this->addSql('ALTER TABLE chill_event_event ADD moderator_id INT DEFAULT NULL'); + $this->addSql('ALTER TABLE chill_event_event ADD CONSTRAINT FK_FA320FC8D0AFA354 FOREIGN KEY (moderator_id) REFERENCES chill_person_person (id) NOT DEFERRABLE INITIALLY IMMEDIATE'); + $this->addSql('CREATE INDEX IDX_FA320FC8D0AFA354 ON chill_event_event (moderator_id)'); + } + + public function down(Schema $schema) : void + { + // this down() migration is auto-generated, please modify it to your needs + $this->abortIf($this->connection->getDatabasePlatform()->getName() !== 'postgresql', 'Migration can only be executed safely on \'postgresql\'.'); + + $this->addSql('ALTER TABLE chill_event_event DROP CONSTRAINT FK_FA320FC8D0AFA354'); + $this->addSql('DROP INDEX IDX_FA320FC8D0AFA354'); + $this->addSql('ALTER TABLE chill_event_event DROP moderator_id'); + } +} diff --git a/Resources/translations/messages.fr.yml b/Resources/translations/messages.fr.yml index d2b2d533c..992b1c2e0 100644 --- a/Resources/translations/messages.fr.yml +++ b/Resources/translations/messages.fr.yml @@ -12,6 +12,7 @@ Participations: Participations Status: Statut Last update: Dernière mise à jour '%count% participations to this event': '{0} Aucun participant à l''événement | {1} Un participant à l''événement | ]1,Inf] %count% participants à l''événement' +Moderator: Animateur #CRUD event Details of an event: Détails d'un événement diff --git a/Resources/views/Event/edit.html.twig b/Resources/views/Event/edit.html.twig index 03519eff9..448a6eed1 100644 --- a/Resources/views/Event/edit.html.twig +++ b/Resources/views/Event/edit.html.twig @@ -14,6 +14,7 @@ {{ form_row(edit_form.name) }} {{ form_row(edit_form.date) }} {{ form_row(edit_form.type, { 'label': 'Event type' }) }} + {{ form_row(edit_form.moderator) }}