Skip to content

Commit 22500da

Browse files
author
Igor Melnikov
committed
Merge remote-tracking branch 'upstream/develop' into MAGETWO-64224-remove-usages-of-attributecache
2 parents 71e9b9c + 131ada4 commit 22500da

File tree

27 files changed

+849
-94
lines changed

27 files changed

+849
-94
lines changed

app/code/Magento/Catalog/Model/Indexer/Category/Product/AbstractAction.php

Lines changed: 32 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88

99
namespace Magento\Catalog\Model\Indexer\Category\Product;
1010

11+
use Magento\Framework\DB\Query\BatchIteratorInterface as BatchIteratorInterface;
12+
use Magento\Framework\DB\Query\Generator as QueryGenerator;
1113
use Magento\Framework\App\ResourceConnection;
1214
use Magento\Framework\EntityManager\MetadataPool;
1315

@@ -102,20 +104,29 @@ abstract class AbstractAction
102104
*/
103105
protected $tempTreeIndexTableName;
104106

107+
/**
108+
* @var QueryGenerator
109+
*/
110+
private $queryGenerator;
111+
105112
/**
106113
* @param ResourceConnection $resource
107114
* @param \Magento\Store\Model\StoreManagerInterface $storeManager
108115
* @param \Magento\Catalog\Model\Config $config
116+
* @param QueryGenerator $queryGenerator
109117
*/
110118
public function __construct(
111119
\Magento\Framework\App\ResourceConnection $resource,
112120
\Magento\Store\Model\StoreManagerInterface $storeManager,
113-
\Magento\Catalog\Model\Config $config
121+
\Magento\Catalog\Model\Config $config,
122+
QueryGenerator $queryGenerator = null
114123
) {
115124
$this->resource = $resource;
116125
$this->connection = $resource->getConnection();
117126
$this->storeManager = $storeManager;
118127
$this->config = $config;
128+
$this->queryGenerator = $queryGenerator ?: \Magento\Framework\App\ObjectManager::getInstance()
129+
->get(QueryGenerator::class);
119130
}
120131

121132
/**
@@ -309,15 +320,26 @@ protected function isRangingNeeded()
309320
* @param int $range
310321
* @return \Magento\Framework\DB\Select[]
311322
*/
312-
protected function prepareSelectsByRange(\Magento\Framework\DB\Select $select, $field, $range = self::RANGE_CATEGORY_STEP)
313-
{
314-
return $this->isRangingNeeded() ? $this->connection->selectsByRange(
315-
$field,
316-
$select,
317-
$range
318-
) : [
319-
$select
320-
];
323+
protected function prepareSelectsByRange(
324+
\Magento\Framework\DB\Select $select,
325+
$field,
326+
$range = self::RANGE_CATEGORY_STEP
327+
) {
328+
if($this->isRangingNeeded()) {
329+
$iterator = $this->queryGenerator->generate(
330+
$field,
331+
$select,
332+
$range,
333+
\Magento\Framework\DB\Query\BatchIteratorInterface::NON_UNIQUE_FIELD_ITERATOR
334+
);
335+
336+
$queries = [];
337+
foreach ($iterator as $query) {
338+
$queries[] = $query;
339+
}
340+
return $queries;
341+
}
342+
return [$select];
321343
}
322344

323345
/**

app/code/Magento/Catalog/etc/eav_attributes.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
<field code="is_searchable" locked="true" />
3131
</attribute>
3232
<attribute code="category_ids">
33+
<field code="is_global" locked="true" />
3334
<field code="is_searchable" locked="true" />
3435
<field code="used_for_sort_by" locked="true" />
3536
<field code="is_used_in_grid" locked="true" />

app/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/Void.php renamed to app/code/Magento/Sales/Controller/Adminhtml/Order/Creditmemo/VoidAction.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
use Magento\Backend\App\Action;
99

10-
class Void extends \Magento\Backend\App\Action
10+
class VoidAction extends Action
1111
{
1212
/**
1313
* Authorization level of a basic admin session

app/code/Magento/Sales/Controller/Adminhtml/Order/Invoice/Void.php renamed to app/code/Magento/Sales/Controller/Adminhtml/Order/Invoice/VoidAction.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
*/
77
namespace Magento\Sales\Controller\Adminhtml\Order\Invoice;
88

9-
class Void extends \Magento\Sales\Controller\Adminhtml\Invoice\AbstractInvoice\View
9+
class VoidAction extends \Magento\Sales\Controller\Adminhtml\Invoice\AbstractInvoice\View
1010
{
1111
/**
1212
* Void invoice action

app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Creditmemo/VoidTest.php renamed to app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Creditmemo/VoidActionTest.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,11 @@
66
namespace Magento\Sales\Test\Unit\Controller\Adminhtml\Order\Creditmemo;
77

88
/**
9-
* Class VoidTest
9+
* Class VoidActionTest
1010
* @SuppressWarnings(PHPMD.TooManyFields)
1111
* @SuppressWarnings(PHPMD.CouplingBetweenObjects)
1212
*/
13-
class VoidTest extends \PHPUnit_Framework_TestCase
13+
class VoidActionTest extends \PHPUnit_Framework_TestCase
1414
{
1515
/**
1616
* @var \Magento\Sales\Controller\Adminhtml\Order\Creditmemo\AddComment
@@ -179,7 +179,7 @@ protected function setUp()
179179

180180
$objectManager = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
181181
$this->controller = $objectManager->getObject(
182-
\Magento\Sales\Controller\Adminhtml\Order\Creditmemo\Void::class,
182+
\Magento\Sales\Controller\Adminhtml\Order\Creditmemo\VoidAction::class,
183183
[
184184
'context' => $this->contextMock,
185185
'creditmemoLoader' => $this->loaderMock,

app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Invoice/VoidTest.php renamed to app/code/Magento/Sales/Test/Unit/Controller/Adminhtml/Order/Invoice/VoidActionTest.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,11 @@
1010
use Magento\Sales\Api\InvoiceRepositoryInterface;
1111

1212
/**
13-
* Class VoidTest
13+
* Class VoidActionTest
1414
* @package Magento\Sales\Controller\Adminhtml\Order\Invoice
1515
* @SuppressWarnings(PHPMD.CouplingBetweenObjects)
1616
*/
17-
class VoidTest extends \PHPUnit_Framework_TestCase
17+
class VoidActionTest extends \PHPUnit_Framework_TestCase
1818
{
1919
/**
2020
* @var \PHPUnit_Framework_MockObject_MockObject
@@ -166,7 +166,7 @@ protected function setUp()
166166
->getMockForAbstractClass();
167167

168168
$this->controller = $objectManager->getObject(
169-
\Magento\Sales\Controller\Adminhtml\Order\Invoice\Void::class,
169+
\Magento\Sales\Controller\Adminhtml\Order\Invoice\VoidAction::class,
170170
[
171171
'context' => $contextMock,
172172
'resultForwardFactory' => $this->resultForwardFactoryMock

app/code/Magento/SalesRule/Model/ResourceModel/Rule/Collection.php

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -165,11 +165,19 @@ public function setValidationFilter(
165165
\Magento\SalesRule\Model\Rule::COUPON_TYPE_NO_COUPON
166166
);
167167

168-
$orWhereConditions = [
168+
$autoGeneratedCouponCondition = [
169169
$connection->quoteInto(
170-
'(main_table.coupon_type = ? AND rule_coupons.type = 0)',
170+
"main_table.coupon_type = ?",
171171
\Magento\SalesRule\Model\Rule::COUPON_TYPE_AUTO
172172
),
173+
$connection->quoteInto(
174+
"rule_coupons.type = ?",
175+
\Magento\SalesRule\Api\Data\CouponInterface::TYPE_GENERATED
176+
),
177+
];
178+
179+
$orWhereConditions = [
180+
"(" . implode($autoGeneratedCouponCondition, " AND ") . ")",
173181
$connection->quoteInto(
174182
'(main_table.coupon_type = ? AND main_table.use_auto_generation = 1 AND rule_coupons.type = 1)',
175183
\Magento\SalesRule\Model\Rule::COUPON_TYPE_SPECIFIC

dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Repository/ConfigurableProduct.xml

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -241,6 +241,40 @@
241241
</field>
242242
</dataset>
243243

244+
<dataset name="product_with_color_for_promo_rules">
245+
<field name="name" xsi:type="string">Test configurable product with color and size %isolation%</field>
246+
<field name="sku" xsi:type="string">sku_test_configurable_product_%isolation%</field>
247+
<field name="product_has_weight" xsi:type="string">This item has weight</field>
248+
<field name="weight" xsi:type="string">30</field>
249+
<field name="status" xsi:type="string">Yes</field>
250+
<field name="visibility" xsi:type="string">Catalog, Search</field>
251+
<field name="tax_class_id" xsi:type="array">
252+
<item name="dataset" xsi:type="string">taxable_goods</item>
253+
</field>
254+
<field name="url_key" xsi:type="string">configurable-product-%isolation%</field>
255+
<field name="configurable_attributes_data" xsi:type="array">
256+
<item name="dataset" xsi:type="string">color_for_promo_rules</item>
257+
</field>
258+
<field name="quantity_and_stock_status" xsi:type="array">
259+
<item name="is_in_stock" xsi:type="string">In Stock</item>
260+
</field>
261+
<field name="website_ids" xsi:type="array">
262+
<item name="0" xsi:type="array">
263+
<item name="dataset" xsi:type="string">default</item>
264+
</item>
265+
</field>
266+
<field name="attribute_set_id" xsi:type="array">
267+
<item name="dataset" xsi:type="string">default</item>
268+
</field>
269+
<field name="checkout_data" xsi:type="array">
270+
<item name="dataset" xsi:type="string">configurable_default</item>
271+
</field>
272+
<field name="price" xsi:type="array">
273+
<item name="value" xsi:type="string">40</item>
274+
<item name="dataset" xsi:type="string">price_40</item>
275+
</field>
276+
</dataset>
277+
244278
<dataset name="one_variation">
245279
<field name="name" xsi:type="string">Test configurable product %isolation%</field>
246280
<field name="sku" xsi:type="string">sku_test_configurable_product_%isolation%</field>

dev/tests/functional/tests/app/Magento/ConfigurableProduct/Test/Repository/ConfigurableProduct/ConfigurableAttributesData.xml

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -563,6 +563,44 @@
563563
</field>
564564
</dataset>
565565

566+
<dataset name="color_for_promo_rules">
567+
<field name="attributes_data" xsi:type="array">
568+
<item name="attribute_key_0" xsi:type="array">
569+
<item name="options" xsi:type="array">
570+
<item name="option_key_0" xsi:type="array">
571+
<item name="pricing_value" xsi:type="string">5.00</item>
572+
<item name="include" xsi:type="string">Yes</item>
573+
</item>
574+
<item name="option_key_1" xsi:type="array">
575+
<item name="pricing_value" xsi:type="string">10.00</item>
576+
<item name="include" xsi:type="string">Yes</item>
577+
</item>
578+
<item name="option_key_2" xsi:type="array">
579+
<item name="pricing_value" xsi:type="string">15.00</item>
580+
<item name="include" xsi:type="string">Yes</item>
581+
</item>
582+
</item>
583+
</item>
584+
</field>
585+
<field name="attributes" xsi:type="array">
586+
<item name="attribute_key_0" xsi:type="string">catalogProductAttribute::color_for_promo_rules</item>
587+
</field>
588+
<field name="matrix" xsi:type="array">
589+
<item name="attribute_key_0:option_key_0" xsi:type="array">
590+
<item name="qty" xsi:type="string">1</item>
591+
<item name="weight" xsi:type="string">1</item>
592+
</item>
593+
<item name="attribute_key_0:option_key_1" xsi:type="array">
594+
<item name="qty" xsi:type="string">1</item>
595+
<item name="weight" xsi:type="string">1</item>
596+
</item>
597+
<item name="attribute_key_0:option_key_2" xsi:type="array">
598+
<item name="qty" xsi:type="string">1</item>
599+
<item name="weight" xsi:type="string">1</item>
600+
</item>
601+
</field>
602+
</dataset>
603+
566604
<dataset name="size">
567605
<field name="attributes_data" xsi:type="array">
568606
<item name="attribute_key_0" xsi:type="array">

dev/tests/functional/tests/app/Magento/SalesRule/Test/Block/Adminhtml/Promo/Quote/Edit/PromoQuoteForm.xml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,4 +80,9 @@
8080
<selector>[data-index="labels"]</selector>
8181
<strategy>css selector</strategy>
8282
</labels>
83+
<manage_coupon_code>
84+
<class>\Magento\SalesRule\Test\Block\Adminhtml\Promo\Quote\Edit\Section\ManageCouponCode</class>
85+
<selector>[data-index="block_promo_sales_rule_edit_tab_coupons"]</selector>
86+
<strategy>css selector</strategy>
87+
</manage_coupon_code>
8388
</sections>

0 commit comments

Comments
 (0)