Skip to content

Commit

Permalink
Merge pull request Sylius#6489 from lchrusciel/taxon-filter-rework
Browse files Browse the repository at this point in the history
[Promotion] UI for price range and taxon filtration
  • Loading branch information
pjedrzejewski committed Oct 25, 2016
2 parents fcfebd3 + c4aeea8 commit 067e500
Show file tree
Hide file tree
Showing 8 changed files with 15 additions and 15 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ public function execute(PromotionSubjectInterface $subject, array $configuration
*/
public function getConfigurationFormType()
{
return 'sylius_promotion_action_fixed_discount_configuration';
return 'sylius_promotion_action_unit_fixed_discount_configuration';
}

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ public function execute(PromotionSubjectInterface $subject, array $configuration
*/
public function getConfigurationFormType()
{
return 'sylius_promotion_action_percentage_discount_configuration';
return 'sylius_promotion_action_unit_percentage_discount_configuration';
}

/**
Expand Down
4 changes: 2 additions & 2 deletions Promotion/Filter/PriceRangeFilter.php
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ public function filter(array $items, array $configuration)

$filteredItems = [];
foreach ($items as $item) {
if ($this->isItemVariantInPriceRange($item->getVariant(), $configuration['filters']['price_range'])) {
if ($this->isItemVariantInPriceRange($item->getVariant(), $configuration['filters']['price_range_filter'])) {
$filteredItems[] = $item;
}
}
Expand Down Expand Up @@ -61,6 +61,6 @@ private function isItemVariantInPriceRange(ProductVariantInterface $variant, arr
*/
private function isConfigured(array $configuration)
{
return isset($configuration['filters']['price_range']['min']);
return isset($configuration['filters']['price_range_filter']['min']);
}
}
4 changes: 2 additions & 2 deletions Promotion/Filter/TaxonFilter.php
Original file line number Diff line number Diff line change
Expand Up @@ -23,13 +23,13 @@ final class TaxonFilter implements FilterInterface
*/
public function filter(array $items, array $configuration)
{
if (!isset($configuration['filters']['taxons'])) {
if (!isset($configuration['filters']['taxons_filter'])) {
return $items;
}

$filteredItems = [];
foreach ($items as $item) {
if ($this->hasProductValidTaxon($item->getProduct(), $configuration['filters']['taxons'])) {
if ($this->hasProductValidTaxon($item->getProduct(), $configuration['filters']['taxons_filter']['taxons'])) {
$filteredItems[] = $item;
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -234,6 +234,6 @@ function it_throws_an_exception_if_passed_subject_to_revert_is_not_order(

function it_has_a_configuration_form_type()
{
$this->getConfigurationFormType()->shouldReturn('sylius_promotion_action_fixed_discount_configuration');
$this->getConfigurationFormType()->shouldReturn('sylius_promotion_action_unit_fixed_discount_configuration');
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -161,6 +161,6 @@ function it_throws_an_exception_if_passed_subject_to_revert_is_not_order(

function it_has_a_configuration_form_type()
{
$this->getConfigurationFormType()->shouldReturn('sylius_promotion_action_percentage_discount_configuration');
$this->getConfigurationFormType()->shouldReturn('sylius_promotion_action_unit_percentage_discount_configuration');
}
}
12 changes: 6 additions & 6 deletions spec/Promotion/Filter/PriceRangeFilterSpec.php
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ function it_filters_items_which_has_product_with_price_that_fits_in_configured_r
$item3Variant->getPrice()->willReturn(15000);

$this
->filter([$item1, $item2, $item3], ['filters' => ['price_range' => ['min' => 1000, 'max' => 10000]]])
->filter([$item1, $item2, $item3], ['filters' => ['price_range_filter' => ['min' => 1000, 'max' => 10000]]])
->shouldReturn([$item2])
;
}
Expand All @@ -67,7 +67,7 @@ function it_filters_items_which_has_product_with_price_equal_to_minimum_criteria
$item2Variant->getPrice()->willReturn(15000);

$this
->filter([$item1, $item2], ['filters' => ['price_range' => ['min' => 1000, 'max' => 10000]]])
->filter([$item1, $item2], ['filters' => ['price_range_filter' => ['min' => 1000, 'max' => 10000]]])
->shouldReturn([$item1])
;
}
Expand All @@ -85,7 +85,7 @@ function it_filters_items_which_has_product_with_price_equal_to_maximum_criteria
$item2Variant->getPrice()->willReturn(10000);

$this
->filter([$item1, $item2], ['filters' => ['price_range' => ['min' => 1000, 'max' => 10000]]])
->filter([$item1, $item2], ['filters' => ['price_range_filter' => ['min' => 1000, 'max' => 10000]]])
->shouldReturn([$item2])
;
}
Expand All @@ -107,7 +107,7 @@ function it_filters_items_which_has_product_with_price_that_is_bigger_than_confi
$item3Variant->getPrice()->willReturn(10000);

$this
->filter([$item1, $item2, $item3], ['filters' => ['price_range' => ['min' => 1000]]])
->filter([$item1, $item2, $item3], ['filters' => ['price_range_filter' => ['min' => 1000]]])
->shouldReturn([$item2, $item3])
;
}
Expand All @@ -125,14 +125,14 @@ function it_filters_items_which_has_product_with_price_equal_to_configured_minim
$item2Variant->getPrice()->willReturn(1000);

$this
->filter([$item1, $item2], ['filters' => ['price_range' => ['min' => 1000]]])
->filter([$item1, $item2], ['filters' => ['price_range_filter' => ['min' => 1000]]])
->shouldReturn([$item2])
;
}

function it_returns_all_items_if_configuration_is_invalid(OrderItemInterface $item1, OrderItemInterface $item2)
{
$this->filter([$item1, $item2], [])->shouldReturn([$item1, $item2]);
$this->filter([$item1, $item2], ['filters' => ['price_range' => ['max' => 10000]]])->shouldReturn([$item1, $item2]);
$this->filter([$item1, $item2], ['filters' => ['price_range_filter' => ['max' => 10000]]])->shouldReturn([$item1, $item2]);
}
}
2 changes: 1 addition & 1 deletion spec/Promotion/Filter/TaxonFilterSpec.php
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ function it_filters_passed_order_items_with_given_configuration(
$product2->getTaxons()->willReturn([$taxon2]);
$taxon2->getCode()->willReturn('taxon2');

$this->filter([$item1, $item2], ['filters' => ['taxons' => ['taxon1']]])->shouldReturn([$item1]);
$this->filter([$item1, $item2], ['filters' => ['taxons_filter' => ['taxons' => ['taxon1']]]])->shouldReturn([$item1]);
}

function it_returns_all_items_if_configuration_is_invalid(OrderItemInterface $item)
Expand Down

0 comments on commit 067e500

Please sign in to comment.