diff --git a/src/Bundle/ChillPersonBundle/Controller/AccompanyingPeriodController.php b/src/Bundle/ChillPersonBundle/Controller/AccompanyingPeriodController.php index c3851cfcf..6b6e4dda9 100644 --- a/src/Bundle/ChillPersonBundle/Controller/AccompanyingPeriodController.php +++ b/src/Bundle/ChillPersonBundle/Controller/AccompanyingPeriodController.php @@ -293,11 +293,15 @@ class AccompanyingPeriodController extends AbstractController $errors = $this->validator->validate($person, null, ['Default']); - $errors_accompanying_period = $this->validator->validate($person, null, - ['accompanying_period_consistent']); - - foreach($errors_accompanying_period as $error ) { - $errors->add($error); + // Can be disabled with config + if (false === $this->container->getParameter('chill_person.allow_multiple_simultaneous_accompanying_periods')) { + + $errors_accompanying_period = $this->validator->validate($person, null, + ['accompanying_period_consistent']); + + foreach($errors_accompanying_period as $error ) { + $errors->add($error); + } } return $errors; diff --git a/src/Bundle/ChillPersonBundle/DependencyInjection/ChillPersonExtension.php b/src/Bundle/ChillPersonBundle/DependencyInjection/ChillPersonExtension.php index c1ea40486..f8e8173de 100644 --- a/src/Bundle/ChillPersonBundle/DependencyInjection/ChillPersonExtension.php +++ b/src/Bundle/ChillPersonBundle/DependencyInjection/ChillPersonExtension.php @@ -56,6 +56,9 @@ class ChillPersonExtension extends Extension implements PrependExtensionInterfac $this->handlePersonFieldsParameters($container, $config['person_fields']); $this->handleAccompanyingPeriodsFieldsParameters($container, $config['accompanying_periods_fields']); + + $container->setParameter('chill_person.allow_multiple_simultaneous_accompanying_periods', + $config['allow_multiple_simultaneous_accompanying_periods']); $loader = new Loader\YamlFileLoader($container, new FileLocator(__DIR__.'/../config')); $loader->load('services.yaml'); @@ -140,7 +143,7 @@ class ChillPersonExtension extends Extension implements PrependExtensionInterfac } $container->prependExtensionConfig('chill_custom_fields', - array('customizables_entities' => + array('customizables_entities' => array( array('class' => 'Chill\PersonBundle\Entity\Person', 'name' => 'PersonEntity') ) @@ -152,7 +155,7 @@ class ChillPersonExtension extends Extension implements PrependExtensionInterfac * @param ContainerBuilder $container * @throws MissingBundleException */ - public function prepend(ContainerBuilder $container) + public function prepend(ContainerBuilder $container) { $this->prependRoleHierarchy($container); $this->prependHomepageWidget($container); @@ -189,7 +192,7 @@ class ChillPersonExtension extends Extension implements PrependExtensionInterfac /** * Add a widget "add a person" on the homepage, automatically - * + * * @param \Chill\PersonBundle\DependencyInjection\containerBuilder $container */ protected function prependHomepageWidget(containerBuilder $container) @@ -208,7 +211,7 @@ class ChillPersonExtension extends Extension implements PrependExtensionInterfac /** * Add role hierarchy. - * + * * @param ContainerBuilder $container */ protected function prependRoleHierarchy(ContainerBuilder $container) @@ -217,7 +220,7 @@ class ChillPersonExtension extends Extension implements PrependExtensionInterfac 'role_hierarchy' => array( 'CHILL_PERSON_UPDATE' => array('CHILL_PERSON_SEE'), 'CHILL_PERSON_CREATE' => array('CHILL_PERSON_SEE'), - PersonVoter::LISTS => [ ChillExportVoter::EXPORT ], + PersonVoter::LISTS => [ ChillExportVoter::EXPORT ], PersonVoter::STATS => [ ChillExportVoter::EXPORT ] ) )); @@ -225,7 +228,7 @@ class ChillPersonExtension extends Extension implements PrependExtensionInterfac /** * Add DQL function linked with person - * + * * @param ContainerBuilder $container */ protected function prependDoctrineDQL(ContainerBuilder $container) diff --git a/src/Bundle/ChillPersonBundle/DependencyInjection/Configuration.php b/src/Bundle/ChillPersonBundle/DependencyInjection/Configuration.php index 9784e8523..3ebe3ceb1 100644 --- a/src/Bundle/ChillPersonBundle/DependencyInjection/Configuration.php +++ b/src/Bundle/ChillPersonBundle/DependencyInjection/Configuration.php @@ -104,8 +104,21 @@ class Configuration implements ConfigurationInterface ->canBeDisabled() ->children() ->append($this->addFieldNode('user')) + ->append($this->addFieldNode('createdBy')) + ->append($this->addFieldNode('step')) + ->append($this->addFieldNode('origin')) + ->append($this->addFieldNode('intensity')) + ->append($this->addFieldNode('scopes')) + ->append($this->addFieldNode('requestor')) + ->append($this->addFieldNode('anonymous')) + ->append($this->addFieldNode('emergency')) + ->append($this->addFieldNode('confidential')) ->end() //children for 'accompanying_person_fields', parent = array 'person_fields' ->end() // paccompanying_person_fields, parent = children of root + ->booleanNode('allow_multiple_simultaneous_accompanying_periods') + ->info('Can we have more than one simultaneous accompanying period in the same time. Default false.') + ->defaultValue(false) + ->end() ->end() // children of 'root', parent = root ;