Merge pull request #3731 from pjedrzejewski/remove-configuration-form-validation-groups

Remove configuration form validation groups
This commit is contained in:
Michał Marcinkowski 2015-12-18 14:49:40 +01:00
commit de66ef4d4e
26 changed files with 87 additions and 385 deletions

View file

@ -119,6 +119,15 @@ class Configuration implements ConfigurationInterface
->end()
->end()
->end()
->arrayNode('validation_groups')
->addDefaultsIfNotSet()
->children()
->arrayNode('default')
->prototype('scalar')->end()
->defaultValue(array('sylius'))
->end()
->end()
->end()
->arrayNode('fields')
->prototype('scalar')->end()
->defaultValue(array('name'))

View file

@ -14,7 +14,6 @@ namespace Sylius\Bundle\CoreBundle\Form\Type\Action;
use Sylius\Component\Core\Repository\ProductVariantRepositoryInterface;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Symfony\Component\Validator\Constraints\NotBlank;
use Symfony\Component\Validator\Constraints\Type;
@ -23,19 +22,16 @@ use Symfony\Component\Validator\Constraints\Type;
*/
class AddProductConfigurationType extends AbstractType
{
/**
* @var string[]
*/
protected $validationGroups;
/**
* @var ProductVariantRepositoryInterface
*/
protected $variantRepository;
public function __construct(array $validationGroups, ProductVariantRepositoryInterface $variantRepository)
/**
* @param ProductVariantRepositoryInterface $variantRepository
*/
public function __construct(ProductVariantRepositoryInterface $variantRepository)
{
$this->validationGroups = $validationGroups;
$this->variantRepository = $variantRepository;
}
@ -75,15 +71,9 @@ class AddProductConfigurationType extends AbstractType
;
}
public function configureOptions(OptionsResolver $resolver)
{
$resolver
->setDefaults(array(
'validation_groups' => $this->validationGroups,
))
;
}
/**
* {@inheritdoc}
*/
public function getName()
{
return 'sylius_promotion_action_add_product_configuration';

View file

@ -13,24 +13,14 @@ namespace Sylius\Bundle\CoreBundle\Form\Type\Action;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Symfony\Component\Validator\Constraints\NotBlank;
use Symfony\Component\Validator\Constraints\Type;
/**
* Shipping discount action configuration form type.
*
* @author Saša Stamenković <umpirsky@gmail.com>
*/
class ShippingDiscountConfigurationType extends AbstractType
{
protected $validationGroups;
public function __construct(array $validationGroups)
{
$this->validationGroups = $validationGroups;
}
/**
* {@inheritdoc}
*/
@ -47,15 +37,9 @@ class ShippingDiscountConfigurationType extends AbstractType
;
}
public function configureOptions(OptionsResolver $resolver)
{
$resolver
->setDefaults(array(
'validation_groups' => $this->validationGroups,
))
;
}
/**
* {@inheritdoc}
*/
public function getName()
{
return 'sylius_promotion_action_shipping_discount_configuration';

View file

@ -14,7 +14,6 @@ namespace Sylius\Bundle\CoreBundle\Form\Type\Rule;
use Sylius\Component\Core\Repository\ProductVariantRepositoryInterface;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Symfony\Component\Validator\Constraints\NotBlank;
use Symfony\Component\Validator\Constraints\Type;
@ -23,16 +22,16 @@ use Symfony\Component\Validator\Constraints\Type;
*/
class ContainsProductConfigurationType extends AbstractType
{
protected $validationGroups;
/**
* @var ProductVariantRepositoryInterface
*/
protected $variantRepository;
public function __construct(array $validationGroups, ProductVariantRepositoryInterface $variantRepository)
/**
* @param ProductVariantRepositoryInterface $variantRepository
*/
public function __construct(ProductVariantRepositoryInterface $variantRepository)
{
$this->validationGroups = $validationGroups;
$this->variantRepository = $variantRepository;
}
@ -72,18 +71,6 @@ class ContainsProductConfigurationType extends AbstractType
;
}
/**
* {@inheritdoc}
*/
public function configureOptions(OptionsResolver $resolver)
{
$resolver
->setDefaults(array(
'validation_groups' => $this->validationGroups,
))
;
}
/**
* {@inheritdoc}
*/

View file

@ -14,7 +14,6 @@ namespace Sylius\Bundle\CoreBundle\Form\Type\Rule;
use Sylius\Bundle\UserBundle\Doctrine\ORM\GroupRepository;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Symfony\Component\Validator\Constraints\NotBlank;
use Symfony\Component\Validator\Constraints\Type;
@ -23,23 +22,16 @@ use Symfony\Component\Validator\Constraints\Type;
*/
class CustomerGroupType extends AbstractType
{
/**
* @var string[]
*/
protected $validationGroups;
/**
* @var GroupRepository
*/
protected $groupRepository;
/**
* @param string[] $validationGroups
* @param GroupRepository $groupRepository
*/
public function __construct(array $validationGroups, GroupRepository $groupRepository)
public function __construct(GroupRepository $groupRepository)
{
$this->validationGroups = $validationGroups;
$this->groupRepository = $groupRepository;
}
@ -64,18 +56,6 @@ class CustomerGroupType extends AbstractType
;
}
/**
* {@inheritdoc}
*/
public function configureOptions(OptionsResolver $resolver)
{
$resolver
->setDefaults(array(
'validation_groups' => $this->validationGroups,
))
;
}
/**
* {@inheritdoc}
*/

View file

@ -18,19 +18,10 @@ use Symfony\Component\Validator\Constraints\NotBlank;
use Symfony\Component\Validator\Constraints\Type;
/**
* Nth order rule configuration form type.
*
* @author Saša Stamenković <umpirsky@gmail.com>
*/
class CustomerLoyaltyConfigurationType extends AbstractType
{
protected $validationGroups;
public function __construct(array $validationGroups)
{
$this->validationGroups = $validationGroups;
}
/**
* {@inheritdoc}
*/
@ -62,18 +53,6 @@ class CustomerLoyaltyConfigurationType extends AbstractType
;
}
/**
* {@inheritdoc}
*/
public function configureOptions(OptionsResolver $resolver)
{
$resolver
->setDefaults(array(
'validation_groups' => $this->validationGroups,
))
;
}
/**
* {@inheritdoc}
*/

View file

@ -13,24 +13,14 @@ namespace Sylius\Bundle\CoreBundle\Form\Type\Rule;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Symfony\Component\Validator\Constraints\NotBlank;
use Symfony\Component\Validator\Constraints\Type;
/**
* Nth order rule configuration form type.
*
* @author Saša Stamenković <umpirsky@gmail.com>
*/
class NthOrderConfigurationType extends AbstractType
{
protected $validationGroups;
public function __construct(array $validationGroups)
{
$this->validationGroups = $validationGroups;
}
/**
* {@inheritdoc}
*/
@ -47,18 +37,6 @@ class NthOrderConfigurationType extends AbstractType
;
}
/**
* {@inheritdoc}
*/
public function configureOptions(OptionsResolver $resolver)
{
$resolver
->setDefaults(array(
'validation_groups' => $this->validationGroups,
))
;
}
/**
* {@inheritdoc}
*/

View file

@ -15,30 +15,21 @@ use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
/**
* Shipping country rule configuration form type.
*
* @author Saša Stamenković <umpirsky@gmail.com>
*/
class ShippingCountryConfigurationType extends AbstractType
{
/**
* @var array
*/
protected $validationGroups;
/**
* @var string
*/
protected $dataClass;
protected $countryClass;
/**
* @param string $dataClass Class of Country model
* @param array $validationGroups Array of validation groups
* @param string $countryClass
*/
public function __construct($dataClass, array $validationGroups)
public function __construct($countryClass)
{
$this->validationGroups = $validationGroups;
$this->dataClass = $dataClass;
$this->countryClass = $countryClass;
}
/**
@ -50,7 +41,7 @@ class ShippingCountryConfigurationType extends AbstractType
->add('country', 'sylius_entity_to_identifier', array(
'label' => 'sylius.form.rule.shipping_country_configuration.country',
'empty_value' => 'sylius.form.country.select',
'class' => $this->dataClass,
'class' => $this->countryClass,
'identifier' => 'id',
))
;

View file

@ -13,22 +13,12 @@ namespace Sylius\Bundle\CoreBundle\Form\Type\Rule;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
/**
* Taxonomy rule configuration form type.
*
* @author Saša Stamenković <umpirsky@gmail.com>
*/
class TaxonomyConfigurationType extends AbstractType
{
protected $validationGroups;
public function __construct(array $validationGroups)
{
$this->validationGroups = $validationGroups;
}
/**
* {@inheritdoc}
*/
@ -47,18 +37,6 @@ class TaxonomyConfigurationType extends AbstractType
;
}
/**
* {@inheritdoc}
*/
public function configureOptions(OptionsResolver $resolver)
{
$resolver
->setDefaults(array(
'validation_groups' => $this->validationGroups,
))
;
}
/**
* {@inheritdoc}
*/

View file

@ -130,38 +130,30 @@
<!-- promotions -->
<service id="sylius.form.type.promotion_rule.nth_order_configuration" class="%sylius.form.type.promotion_rule.nth_order_configuration.class%">
<argument>%sylius.validation_groups.promotion_rule_nth_order_configuration%</argument>
<tag name="form.type" alias="sylius_promotion_rule_nth_order_configuration" />
</service>
<service id="sylius.form.type.promotion_rule.customer_loyalty_configuration" class="%sylius.form.type.promotion_rule.customer_loyalty_configuration.class%">
<argument>%sylius.validation_groups.promotion_rule_customer_loyalty_configuration%</argument>
<tag name="form.type" alias="sylius_promotion_rule_customer_loyalty_configuration" />
</service>
<service id="sylius.form.type.promotion_rule.shipping_country_configuration" class="%sylius.form.type.promotion_rule.shipping_country_configuration.class%">
<argument>%sylius.model.country.class%</argument>
<argument>%sylius.validation_groups.promotion_rule_shipping_country_configuration%</argument>
<tag name="form.type" alias="sylius_promotion_rule_shipping_country_configuration" />
</service>
<service id="sylius.form.type.promotion_rule.taxonomy_configuration" class="%sylius.form.type.promotion_rule.taxonomy_configuration.class%">
<argument>%sylius.validation_groups.promotion_rule_taxonomy_configuration%</argument>
<tag name="form.type" alias="sylius_promotion_rule_taxonomy_configuration" />
</service>
<service id="sylius.form.type.promotion_rule.contains_product_configuration" class="%sylius.form.type.promotion_rule.contains_product_configuration.class%">
<argument>%sylius.validation_groups.promotion_rule_contains_product_configuration%</argument>
<argument type="service" id="sylius.repository.product_variant" />
<tag name="form.type" alias="sylius_promotion_rule_contains_product_configuration" />
</service>
<service id="sylius.form.type.promotion_rule.customer_group_configuration" class="%sylius.form.type.promotion_rule.customer_group_configuration.class%">
<argument>%sylius.validation_groups.promotion_rule_customer_group_configuration%</argument>
<argument type="service" id="sylius.repository.group" />
<tag name="form.type" alias="sylius_promotion_rule_customer_group_configuration" />
</service>
<service id="sylius.form.type.promotion_action.shipping_discount_configuration" class="%sylius.form.type.promotion_action.shipping_discount_configuration.class%">
<argument>%sylius.validation_groups.promotion_action_shipping_discount_configuration%</argument>
<tag name="form.type" alias="sylius_promotion_action_shipping_discount_configuration" />
</service>
<service id="sylius.form.type.promotion_action.add_product_configuration" class="%sylius.form.type.promotion_action.add_product_configuration.class%">
<argument>%sylius.validation_groups.promotion_action_add_product_configuration%</argument>
<argument type="service" id="sylius.repository.product_variant" />
<tag name="form.type" alias="sylius_promotion_action_add_product_configuration" />
</service>

View file

@ -125,6 +125,15 @@ class Configuration implements ConfigurationInterface
->end()
->end()
->end()
->arrayNode('validation_groups')
->addDefaultsIfNotSet()
->children()
->arrayNode('default')
->prototype('scalar')->end()
->defaultValue(array('sylius'))
->end()
->end()
->end()
->arrayNode('fields')
->prototype('scalar')->end()
->defaultValue(array('name', 'description'))

View file

@ -11,32 +11,27 @@
namespace Sylius\Bundle\PromotionBundle\DependencyInjection;
use Sylius\Bundle\ResourceBundle\SyliusResourceBundle;
use Sylius\Component\Resource\Factory\Factory;
use Sylius\Bundle\ResourceBundle\Controller\ResourceController;
use Sylius\Bundle\PromotionBundle\Controller\CouponController;
use Sylius\Bundle\PromotionBundle\Form\Type\PromotionType;
use Sylius\Bundle\PromotionBundle\Form\Type\RuleType;
use Sylius\Bundle\PromotionBundle\Form\Type\ActionType;
use Sylius\Bundle\PromotionBundle\Form\Type\CouponType;
use Sylius\Component\Promotion\Model\Promotion;
use Sylius\Component\Promotion\Model\PromotionInterface;
use Sylius\Component\Promotion\Model\Rule;
use Sylius\Component\Promotion\Model\RuleInterface;
use Sylius\Bundle\PromotionBundle\Form\Type\PromotionType;
use Sylius\Bundle\PromotionBundle\Form\Type\RuleType;
use Sylius\Bundle\ResourceBundle\Controller\ResourceController;
use Sylius\Bundle\ResourceBundle\SyliusResourceBundle;
use Sylius\Component\Promotion\Model\Action;
use Sylius\Component\Promotion\Model\ActionInterface;
use Sylius\Component\Promotion\Model\Coupon;
use Sylius\Component\Promotion\Model\CouponInterface;
use Symfony\Component\Config\Definition\ConfigurationInterface;
use Sylius\Component\Promotion\Model\Promotion;
use Sylius\Component\Promotion\Model\PromotionInterface;
use Sylius\Component\Promotion\Model\Rule;
use Sylius\Component\Promotion\Model\RuleInterface;
use Sylius\Component\Resource\Factory\Factory;
use Symfony\Component\Config\Definition\Builder\ArrayNodeDefinition;
use Symfony\Component\Config\Definition\Builder\TreeBuilder;
use Symfony\Component\Config\Definition\ConfigurationInterface;
/**
* This class contains the configuration information for the bundle.
*
* This information is solely responsible for how the different configuration
* sections are normalized, and merged.
*
* @author Saša Stamenković <umpirsky@gmail.com>
*/
class Configuration implements ConfigurationInterface
@ -57,79 +52,10 @@ class Configuration implements ConfigurationInterface
;
$this->addResourcesSection($rootNode);
$this->addValidationGroupsSection($rootNode);
return $treeBuilder;
}
/**
* @param ArrayNodeDefinition $node
*/
private function addValidationGroupsSection(ArrayNodeDefinition $node)
{
$node
->children()
->arrayNode('validation_groups')
->addDefaultsIfNotSet()
->children()
->arrayNode('promotion_rule_item_total_configuration')
->prototype('scalar')->end()
->defaultValue(array('sylius'))
->end()
->arrayNode('promotion_rule_item_count_configuration')
->prototype('scalar')->end()
->defaultValue(array('sylius'))
->end()
->arrayNode('promotion_rule_customer_loyalty_configuration')
->prototype('scalar')->end()
->defaultValue(array('sylius'))
->end()
->arrayNode('promotion_rule_shipping_country_configuration')
->prototype('scalar')->end()
->defaultValue(array('sylius'))
->end()
->arrayNode('promotion_rule_taxonomy_configuration')
->prototype('scalar')->end()
->defaultValue(array('sylius'))
->end()
->arrayNode('promotion_rule_contains_product_configuration')
->prototype('scalar')->end()
->defaultValue(array('sylius'))
->end()
->arrayNode('promotion_rule_nth_order_configuration')
->prototype('scalar')->end()
->defaultValue(array('sylius'))
->end()
->arrayNode('promotion_rule_customer_group_configuration')
->prototype('scalar')->end()
->defaultValue(array('sylius'))
->end()
->arrayNode('promotion_action_fixed_discount_configuration')
->prototype('scalar')->end()
->defaultValue(array('sylius'))
->end()
->arrayNode('promotion_action_percentage_discount_configuration')
->prototype('scalar')->end()
->defaultValue(array('sylius'))
->end()
->arrayNode('promotion_action_add_product_configuration')
->prototype('scalar')->end()
->defaultValue(array('sylius'))
->end()
->arrayNode('promotion_coupon_generate_instruction')
->prototype('scalar')->end()
->defaultValue(array('sylius'))
->end()
->arrayNode('promotion_action_shipping_discount_configuration')
->prototype('scalar')->end()
->defaultValue(array('sylius'))
->end()
->end()
->end()
->end()
;
}
/**
* @param ArrayNodeDefinition $node
*/

View file

@ -45,11 +45,11 @@ class SyliusPromotionExtension extends AbstractResourceExtension
$container
->getDefinition('sylius.form.type.promotion_action')
->addArgument(new Reference('sylius.registry.promotion_action'))
->replaceArgument(1, new Reference('sylius.registry.promotion_action'))
;
$container
->getDefinition('sylius.form.type.promotion_rule')
->addArgument(new Reference('sylius.registry.promotion_rule_checker'))
->replaceArgument(1, new Reference('sylius.registry.promotion_rule_checker'))
;
}
}

View file

@ -24,13 +24,6 @@ use Symfony\Component\Validator\Constraints\Type;
*/
class FixedDiscountConfigurationType extends AbstractType
{
protected $validationGroups;
public function __construct(array $validationGroups)
{
$this->validationGroups = $validationGroups;
}
/**
* {@inheritdoc}
*/
@ -47,15 +40,9 @@ class FixedDiscountConfigurationType extends AbstractType
;
}
public function configureOptions(OptionsResolver $resolver)
{
$resolver
->setDefaults(array(
'validation_groups' => $this->validationGroups,
))
;
}
/**
* {@inheritdoc}
*/
public function getName()
{
return 'sylius_promotion_action_fixed_discount_configuration';

View file

@ -24,13 +24,6 @@ use Symfony\Component\Validator\Constraints\Type;
*/
class PercentageDiscountConfigurationType extends AbstractType
{
protected $validationGroups;
public function __construct(array $validationGroups)
{
$this->validationGroups = $validationGroups;
}
/**
* {@inheritdoc}
*/
@ -47,15 +40,9 @@ class PercentageDiscountConfigurationType extends AbstractType
;
}
public function configureOptions(OptionsResolver $resolver)
{
$resolver
->setDefaults(array(
'validation_groups' => $this->validationGroups,
))
;
}
/**
* {@inheritdoc}
*/
public function getName()
{
return 'sylius_promotion_action_percentage_discount_configuration';

View file

@ -25,9 +25,9 @@ abstract class AbstractConfigurationType extends AbstractResourceType
*/
protected $registry;
public function __construct($dataClass, array $validationGroups, ServiceRegistryInterface $registry)
public function __construct($dataClass, ServiceRegistryInterface $registry)
{
parent::__construct($dataClass, $validationGroups);
parent::__construct($dataClass, array('Default'));
$this->registry = $registry;
}

View file

@ -13,24 +13,14 @@ namespace Sylius\Bundle\PromotionBundle\Form\Type\Rule;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Symfony\Component\Validator\Constraints\NotBlank;
use Symfony\Component\Validator\Constraints\Type;
/**
* Item count rule configuration form type.
*
* @author Saša Stamenković <umpirsky@gmail.com>
*/
class ItemCountConfigurationType extends AbstractType
{
protected $validationGroups;
public function __construct(array $validationGroups)
{
$this->validationGroups = $validationGroups;
}
/**
* {@inheritdoc}
*/
@ -53,18 +43,6 @@ class ItemCountConfigurationType extends AbstractType
;
}
/**
* {@inheritdoc}
*/
public function configureOptions(OptionsResolver $resolver)
{
$resolver
->setDefaults(array(
'validation_groups' => $this->validationGroups,
))
;
}
/**
* {@inheritdoc}
*/

View file

@ -13,24 +13,14 @@ namespace Sylius\Bundle\PromotionBundle\Form\Type\Rule;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Symfony\Component\Validator\Constraints\NotBlank;
use Symfony\Component\Validator\Constraints\Type;
/**
* Item total rule configuration form type.
*
* @author Saša Stamenković <umpirsky@gmail.com>
*/
class ItemTotalConfigurationType extends AbstractType
{
protected $validationGroups;
public function __construct(array $validationGroups)
{
$this->validationGroups = $validationGroups;
}
/**
* {@inheritdoc}
*/
@ -53,18 +43,6 @@ class ItemTotalConfigurationType extends AbstractType
;
}
/**
* {@inheritdoc}
*/
public function configureOptions(OptionsResolver $resolver)
{
$resolver
->setDefaults(array(
'validation_groups' => $this->validationGroups,
))
;
}
/**
* {@inheritdoc}
*/

View file

@ -80,38 +80,14 @@
<tag name="form.type" alias="sylius_promotion_action_collection" />
</service>
<service id="sylius.form.type.promotion" class="%sylius.form.type.promotion.class%">
<argument>%sylius.model.promotion.class%</argument>
<argument>%sylius.validation_groups.promotion%</argument>
<tag name="form.type" alias="sylius_promotion" />
</service>
<service id="sylius.form.type.promotion_coupon" class="%sylius.form.type.promotion_coupon.class%">
<argument>%sylius.model.promotion_coupon.class%</argument>
<argument>%sylius.validation_groups.promotion_coupon%</argument>
<tag name="form.type" alias="sylius_promotion_coupon" />
</service>
<service id="sylius.form.type.promotion_rule" class="%sylius.form.type.promotion_rule.class%">
<argument>%sylius.model.promotion_rule.class%</argument>
<argument>%sylius.validation_groups.promotion_rule%</argument>
<argument type="service" id="sylius.registry.promotion_rule_checker" />
<tag name="form.type" alias="sylius_promotion_rule" />
</service>
<service id="sylius.form.type.promotion_action" class="%sylius.form.type.promotion_action.class%">
<argument>%sylius.model.promotion_action.class%</argument>
<argument>%sylius.validation_groups.promotion_action%</argument>
<argument type="service" id="sylius.registry.promotion_action" />
<tag name="form.type" alias="sylius_promotion_action" />
</service>
<service id="sylius.form.type.promotion_rule_choice" class="%sylius.form.type.promotion_rule_choice.class%">
<argument>%sylius.promotion_rules%</argument>
<tag name="form.type" alias="sylius_promotion_rule_choice" />
</service>
<service id="sylius.form.type.promotion_rule.item_total_configuration" class="%sylius.form.type.promotion_rule.item_total_configuration.class%">
<argument>%sylius.validation_groups.promotion_rule_item_total_configuration%</argument>
<tag name="form.type" alias="sylius_promotion_rule_item_total_configuration" />
</service>
<service id="sylius.form.type.promotion_rule.item_count_configuration" class="%sylius.form.type.promotion_rule.item_count_configuration.class%">
<argument>%sylius.validation_groups.promotion_rule_item_count_configuration%</argument>
<tag name="form.type" alias="sylius_promotion_rule_item_count_configuration" />
</service>
<service id="sylius.form.type.promotion_action_choice" class="%sylius.form.type.promotion_action_choice.class%">
@ -119,11 +95,9 @@
<tag name="form.type" alias="sylius_promotion_action_choice" />
</service>
<service id="sylius.form.type.promotion_action.fixed_discount_configuration" class="%sylius.form.type.promotion_action.fixed_discount_configuration.class%">
<argument>%sylius.validation_groups.promotion_action_fixed_discount_configuration%</argument>
<tag name="form.type" alias="sylius_promotion_action_fixed_discount_configuration" />
</service>
<service id="sylius.form.type.promotion_action.percentage_discount_configuration" class="%sylius.form.type.promotion_action.percentage_discount_configuration.class%">
<argument>%sylius.validation_groups.promotion_action_percentage_discount_configuration%</argument>
<tag name="form.type" alias="sylius_promotion_action_percentage_discount_configuration" />
</service>
<service id="sylius.form.type.promotion_coupon_to_code" class="%sylius.form.type.promotion_coupon_to_code.class%">
@ -137,7 +111,6 @@
<service id="sylius.form.type.promotion_coupon_generate_instruction" class="%sylius.form.type.promotion_coupon_generate_instruction.class%">
<argument>%sylius.generator.instructions.class%</argument>
<argument>%sylius.validation_groups.promotion_coupon_generate_instruction%</argument>
<tag name="form.type" alias="sylius_promotion_coupon_generate_instruction" />
</service>
<service id="sylius.generator.promotion_coupon" class="%sylius.generator.promotion_coupon.class%">

View file

@ -54,6 +54,15 @@
<option name="groups">sylius</option>
</constraint>
</property>
<property name="actions">
<constraint name="Valid" />
</property>
</class>
<class name="Sylius\Component\Promotion\Model\Action">
<property name="configuration">
<constraint name="Valid" />
</property>
</class>
<class name="Sylius\Component\Promotion\Model\Coupon">
@ -88,19 +97,16 @@
<property name="amount">
<constraint name="NotBlank">
<option name="message">sylius.promotion_coupon_generate_instruction.amount.not_blank</option>
<option name="groups">sylius</option>
</constraint>
<constraint name="Range">
<option name="min">1</option>
<option name="minMessage">sylius.promotion_coupon_generate_instruction.amount.min</option>
<option name="groups">sylius</option>
</constraint>
</property>
<property name="usageLimit">
<constraint name="Range">
<option name="min">1</option>
<option name="minMessage">sylius.promotion_coupon_generate_instruction.usage_limit.min</option>
<option name="groups">sylius</option>
</constraint>
</property>
</class>

View file

@ -20,11 +20,6 @@ use Symfony\Component\Form\FormBuilder;
*/
class FixedDiscountConfigurationTypeSpec extends ObjectBehavior
{
function let()
{
$this->beConstructedWith(array('sylius'));
}
function it_should_be_initializable()
{
$this->shouldHaveType('Sylius\Bundle\PromotionBundle\Form\Type\Action\FixedDiscountConfigurationType');

View file

@ -27,7 +27,7 @@ class ActionTypeSpec extends ObjectBehavior
{
function let(ServiceRegistryInterface $actionRegistry)
{
$this->beConstructedWith('Action', array('sylius'), $actionRegistry);
$this->beConstructedWith('Action', $actionRegistry);
}
function it_is_initializabled()
@ -61,10 +61,13 @@ class ActionTypeSpec extends ObjectBehavior
function it_should_define_assigned_data_class(OptionsResolver $resolver)
{
$resolver->setDefaults(array(
'data_class' => 'Action',
'validation_groups' => array('sylius'),
))->shouldBeCalled();
$resolver
->setDefaults(array(
'data_class' => 'Action',
'validation_groups' => array('Default'),
))
->shouldBeCalled()
;
$resolver->setDefined(array('configuration_type'))->shouldBeCalled();
$resolver->setDefaults(array('configuration_type' => ActionInterface::TYPE_FIXED_DISCOUNT))->shouldBeCalled();

View file

@ -20,11 +20,6 @@ use Symfony\Component\Form\FormBuilder;
*/
class ItemCountConfigurationTypeSpec extends ObjectBehavior
{
function let()
{
$this->beConstructedWith(array('sylius'));
}
function it_should_be_initializable()
{
$this->shouldHaveType('Sylius\Bundle\PromotionBundle\Form\Type\Rule\ItemCountConfigurationType');

View file

@ -20,11 +20,6 @@ use Symfony\Component\Form\FormBuilder;
*/
class ItemTotalConfigurationTypeSpec extends ObjectBehavior
{
function let()
{
$this->beConstructedWith(array('sylius'));
}
function it_should_be_initializable()
{
$this->shouldHaveType('Sylius\Bundle\PromotionBundle\Form\Type\Rule\ItemTotalConfigurationType');

View file

@ -27,7 +27,7 @@ class RuleTypeSpec extends ObjectBehavior
{
function let(ServiceRegistryInterface $checkerRegistry)
{
$this->beConstructedWith('Rule', array('sylius'), $checkerRegistry);
$this->beConstructedWith('Rule', $checkerRegistry);
}
function it_is_initializabled()
@ -61,10 +61,13 @@ class RuleTypeSpec extends ObjectBehavior
function it_should_define_assigned_data_class(OptionsResolver $resolver)
{
$resolver->setDefaults(array(
'data_class' => 'Rule',
'validation_groups' => array('sylius'),
))->shouldBeCalled();
$resolver
->setDefaults(array(
'data_class' => 'Rule',
'validation_groups' => array('Default'),
))
->shouldBeCalled()
;
$resolver->setDefined(array('configuration_type'))->shouldBeCalled();
$resolver->setDefaults(array('configuration_type' => RuleInterface::TYPE_ITEM_TOTAL))->shouldBeCalled();

View file

@ -74,7 +74,7 @@ abstract class AbstractDriver implements DriverInterface
foreach ($validationGroups as $formName => $groups) {
$suffix = 'default' === $formName ? '' : sprintf('_%s', $formName);
$container->setParameter(sprintf('%s.validation_groups.%s%s', $metadata->getApplicationName(), $metadata->getName(), $suffix), $groups);
$container->setParameter(sprintf('%s.validation_groups.%s%s', $metadata->getApplicationName(), $metadata->getName(), $suffix), array_merge(array('Default'), $groups));
}
}
@ -154,16 +154,15 @@ abstract class AbstractDriver implements DriverInterface
default:
$validationGroupsParameterName = sprintf('%s.validation_groups.%s%s', $metadata->getApplicationName(), $metadata->getName(), $suffix);
$validationGroups = new Parameter($validationGroupsParameterName);
if ($container->hasParameter($validationGroupsParameterName)) {
$validationGroups = new Parameter($validationGroupsParameterName);
} else {
if (!$container->hasParameter($validationGroupsParameterName)) {
$validationGroups = array('Default');
}
$definition->setArguments(array(
$metadata->getClass('model'),
$validationGroups,
$validationGroups
));
break;
}