Skip to content

Commit c791d81

Browse files
Merge pull request #138 from magento-commerce/1.1.35-release
1.1.35 Release
2 parents 4ca68a9 + 6fbb5f4 commit c791d81

33 files changed

+2647
-16
lines changed

composer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"name": "magento/quality-patches",
33
"description": "Provides quality patches for AdobeCommerce & Magento OpenSource",
44
"type": "magento2-component",
5-
"version": "1.1.34",
5+
"version": "1.1.35",
66
"license": "proprietary",
77
"repositories": {
88
"repo": {

patches-info.json

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
diff --git a/vendor/magento/module-catalog-staging/Plugin/Catalog/Model/Category/DataProvider/TrimData.php b/vendor/magento/module-catalog-staging/Plugin/Catalog/Model/Category/DataProvider/TrimData.php
2+
deleted file mode 100644
3+
index 8a0b9f21e5f..00000000000
4+
--- a/vendor/magento/module-catalog-staging/Plugin/Catalog/Model/Category/DataProvider/TrimData.php
5+
+++ /dev/null
6+
@@ -1,24 +0,0 @@
7+
-<?php
8+
-/**
9+
- * Copyright © Magento, Inc. All rights reserved.
10+
- * See COPYING.txt for license details.
11+
- */
12+
-namespace Magento\CatalogStaging\Plugin\Catalog\Model\Category\DataProvider;
13+
-
14+
-class TrimData
15+
-{
16+
- /**
17+
- * @param \Magento\Catalog\Model\Category\DataProvider $subject
18+
- * @param array $data
19+
- * @return array
20+
- * @SuppressWarnings(PHPMD.UnusedFormalParameter)
21+
- */
22+
- public function afterGetData(\Magento\Catalog\Model\Category\DataProvider $subject, array $data)
23+
- {
24+
- foreach ($data as &$categoryData) {
25+
- unset($categoryData['updated_in']);
26+
- unset($categoryData['created_in']);
27+
- }
28+
- return $data;
29+
- }
30+
-}
31+
diff --git a/vendor/magento/module-catalog-staging/etc/di.xml b/vendor/magento/module-catalog-staging/etc/di.xml
32+
index 2c88e223216..2476f260e3d 100644
33+
--- a/vendor/magento/module-catalog-staging/etc/di.xml
34+
+++ b/vendor/magento/module-catalog-staging/etc/di.xml
35+
@@ -333,9 +333,6 @@
36+
<type name="Magento\Framework\Pricing\Render\PriceBox">
37+
<plugin name="price_box_staging_plugin" type="Magento\CatalogStaging\Plugin\Catalog\Pricing\Render\PriceBox" />
38+
</type>
39+
- <type name="Magento\Catalog\Model\Category\DataProvider">
40+
- <plugin name="catalogCategoryDataProviderTrimData" type="Magento\CatalogStaging\Plugin\Catalog\Model\Category\DataProvider\TrimData" />
41+
- </type>
42+
<type name="Magento\Staging\Model\Entity\Builder">
43+
<arguments>
44+
<argument name="strategies" xsi:type="array">
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
diff --git a/vendor/magento/module-catalog-permissions/Model/Indexer/Plugin/Import.php b/vendor/magento/module-catalog-permissions/Model/Indexer/Plugin/Import.php
2+
index ff4413f6e473..725230b88e15 100644
3+
--- a/vendor/magento/module-catalog-permissions/Model/Indexer/Plugin/Import.php
4+
+++ b/vendor/magento/module-catalog-permissions/Model/Indexer/Plugin/Import.php
5+
@@ -5,6 +5,9 @@
6+
*/
7+
namespace Magento\CatalogPermissions\Model\Indexer\Plugin;
8+
9+
+use Magento\CatalogPermissions\Model\Indexer\Category as CategoryIndexer;
10+
+use Magento\CatalogPermissions\Model\Indexer\Product as ProductIndexer;
11+
+
12+
class Import
13+
{
14+
/**
15+
@@ -40,8 +43,14 @@ public function __construct(
16+
public function afterImportSource(\Magento\ImportExport\Model\Import $subject, $import)
17+
{
18+
if ($this->config->isEnabled()) {
19+
- $this->indexerRegistry->get(\Magento\CatalogPermissions\Model\Indexer\Category::INDEXER_ID)->invalidate();
20+
- $this->indexerRegistry->get(\Magento\CatalogPermissions\Model\Indexer\Product::INDEXER_ID)->invalidate();
21+
+ $categoryIndexer = $this->indexerRegistry->get(CategoryIndexer::INDEXER_ID);
22+
+ if (!$categoryIndexer->isScheduled()) {
23+
+ $categoryIndexer->invalidate();
24+
+ }
25+
+ $productIndexer = $this->indexerRegistry->get(ProductIndexer::INDEXER_ID);
26+
+ if (!$productIndexer->isScheduled()) {
27+
+ $productIndexer->invalidate();
28+
+ }
29+
}
30+
return $import;
31+
}
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
diff --git a/vendor/magento/module-staging/Model/Operation/Update.php b/vendor/magento/module-staging/Model/Operation/Update.php
2+
index 6747dab6932..87745f5e442 100644
3+
--- a/vendor/magento/module-staging/Model/Operation/Update.php
4+
+++ b/vendor/magento/module-staging/Model/Operation/Update.php
5+
@@ -179,8 +179,8 @@ class Update implements UpdateInterface
6+
7+
$needReschedule = false;
8+
if (isset($arguments['origin_in'])) {
9+
- $needReschedule = $arguments['created_in'] != $arguments['origin_in']
10+
- || $update->getRollbackId() != $entityData['updated_in'];
11+
+ $needReschedule = $this->needsReschedule($update, $entityData, $arguments);
12+
+
13+
if ($needReschedule) {
14+
$newVersionInfo = $this->rescheduleUpdate->reschedule(
15+
$arguments['origin_in'],
16+
@@ -293,4 +293,31 @@ class Update implements UpdateInterface
17+
$this->versionManager->setCurrentVersionId($newVersionInfo->getCreatedIn());
18+
}
19+
}
20+
+
21+
+ /**
22+
+ * Check if Update's start and/or end dates changed, and Update needs reschedule.
23+
+ *
24+
+ * @param UpdateInfo $update
25+
+ * @param array $entityData
26+
+ * @param array $arguments
27+
+ * @return bool
28+
+ */
29+
+ private function needsReschedule(UpdateInfo $update, array $entityData, array $arguments): bool
30+
+ {
31+
+ /*
32+
+ We check if the end date of the Update changed by comparing rollback id and 'updated in' field of the Entity.
33+
+ But when previous Update had the end date while the new one doesn't, then the new Update's rollback id is null,
34+
+ and we need to check if the old Update had the end date by getting the record by 'updated_in' field,
35+
+ and check if it is rollback. The absence of record returns true to preserve old existing behaviour
36+
+ */
37+
+ try {
38+
+ $updateFromEntityData = $this->updateRepository->get($entityData['updated_in']);
39+
+ $processEndDate = $updateFromEntityData->getIsRollback();
40+
+ } catch (\Magento\Framework\Exception\NoSuchEntityException $exception) {
41+
+ $processEndDate = true;
42+
+ }
43+
+
44+
+ return $arguments['created_in'] != $arguments['origin_in']
45+
+ || ($processEndDate && $update->getRollbackId() != $entityData['updated_in']);
46+
+ }
47+
}
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
diff --git a/vendor/magento/module-negotiable-quote/view/frontend/web/js/action/place-order-negotiable-quote.js b/vendor/magento/module-negotiable-quote/view/frontend/web/js/action/place-order-negotiable-quote.js
2+
index fe61e14946c7..1001ab82386e 100644
3+
--- a/vendor/magento/module-negotiable-quote/view/frontend/web/js/action/place-order-negotiable-quote.js
4+
+++ b/vendor/magento/module-negotiable-quote/view/frontend/web/js/action/place-order-negotiable-quote.js
5+
@@ -7,8 +7,9 @@ define([
6+
'Magento_Checkout/js/model/quote',
7+
'Magento_Checkout/js/model/url-builder',
8+
'Magento_Checkout/js/model/error-processor',
9+
- 'Magento_Checkout/js/model/full-screen-loader'
10+
-], function (storage, quote, urlBuilder, errorProcessor, fullScreenLoader) {
11+
+ 'Magento_Checkout/js/model/full-screen-loader',
12+
+ 'Magento_Checkout/js/model/place-order'
13+
+], function (storage, quote, urlBuilder, errorProcessor, fullScreenLoader, placeOrderService) {
14+
'use strict';
15+
16+
return function (paymentData, messageContainer) {
17+
@@ -26,12 +27,6 @@ define([
18+
19+
fullScreenLoader.startLoader();
20+
21+
- return storage.post(
22+
- serviceUrl,
23+
- JSON.stringify(payload)
24+
- ).fail(function (response) {
25+
- errorProcessor.process(response, messageContainer);
26+
- fullScreenLoader.stopLoader();
27+
- });
28+
+ return placeOrderService(serviceUrl, payload, messageContainer);
29+
};
30+
});
Lines changed: 215 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,215 @@
1+
diff --git a/vendor/magento/module-bundle/Ui/DataProvider/Product/BundleDataProvider.php b/vendor/magento/module-bundle/Ui/DataProvider/Product/BundleDataProvider.php
2+
index 5f1ffc3c268..827082dc774 100644
3+
--- a/vendor/magento/module-bundle/Ui/DataProvider/Product/BundleDataProvider.php
4+
+++ b/vendor/magento/module-bundle/Ui/DataProvider/Product/BundleDataProvider.php
5+
@@ -8,6 +8,9 @@ namespace Magento\Bundle\Ui\DataProvider\Product;
6+
use Magento\Catalog\Model\ResourceModel\Product\CollectionFactory;
7+
use Magento\Catalog\Ui\DataProvider\Product\ProductDataProvider;
8+
use Magento\Bundle\Helper\Data;
9+
+use Magento\Framework\App\ObjectManager;
10+
+use Magento\Ui\DataProvider\Modifier\ModifierInterface;
11+
+use Magento\Ui\DataProvider\Modifier\PoolInterface;
12+
13+
class BundleDataProvider extends ProductDataProvider
14+
{
15+
@@ -16,6 +19,11 @@ class BundleDataProvider extends ProductDataProvider
16+
*/
17+
protected $dataHelper;
18+
19+
+ /**
20+
+ * @var PoolInterface
21+
+ */
22+
+ private $modifiersPool;
23+
+
24+
/**
25+
* Construct
26+
*
27+
@@ -24,10 +32,12 @@ class BundleDataProvider extends ProductDataProvider
28+
* @param string $requestFieldName
29+
* @param CollectionFactory $collectionFactory
30+
* @param Data $dataHelper
31+
- * @param \Magento\Ui\DataProvider\AddFieldToCollectionInterface[] $addFieldStrategies
32+
- * @param \Magento\Ui\DataProvider\AddFilterToCollectionInterface[] $addFilterStrategies
33+
* @param array $meta
34+
* @param array $data
35+
+ * @param \Magento\Ui\DataProvider\AddFieldToCollectionInterface[] $addFieldStrategies
36+
+ * @param \Magento\Ui\DataProvider\AddFilterToCollectionInterface[] $addFilterStrategies
37+
+ * @param PoolInterface|null $modifiersPool
38+
+ * @SuppressWarnings(PHPMD.ExcessiveParameterList)
39+
*/
40+
public function __construct(
41+
$name,
42+
@@ -38,7 +48,8 @@ class BundleDataProvider extends ProductDataProvider
43+
array $meta = [],
44+
array $data = [],
45+
array $addFieldStrategies = [],
46+
- array $addFilterStrategies = []
47+
+ array $addFilterStrategies = [],
48+
+ PoolInterface $modifiersPool = null
49+
) {
50+
parent::__construct(
51+
$name,
52+
@@ -52,6 +63,7 @@ class BundleDataProvider extends ProductDataProvider
53+
);
54+
55+
$this->dataHelper = $dataHelper;
56+
+ $this->modifiersPool = $modifiersPool ?: ObjectManager::getInstance()->get(PoolInterface::class);
57+
}
58+
59+
/**
60+
@@ -72,11 +84,34 @@ class BundleDataProvider extends ProductDataProvider
61+
);
62+
$this->getCollection()->load();
63+
}
64+
+
65+
$items = $this->getCollection()->toArray();
66+
67+
- return [
68+
+ $data = [
69+
'totalRecords' => $this->getCollection()->getSize(),
70+
'items' => array_values($items),
71+
];
72+
+
73+
+ /** @var ModifierInterface $modifier */
74+
+ foreach ($this->modifiersPool->getModifiersInstances() as $modifier) {
75+
+ $data = $modifier->modifyData($data);
76+
+ }
77+
+
78+
+ return $data;
79+
+ }
80+
+
81+
+ /**
82+
+ * @inheritdoc
83+
+ */
84+
+ public function getMeta()
85+
+ {
86+
+ $meta = parent::getMeta();
87+
+
88+
+ /** @var ModifierInterface $modifier */
89+
+ foreach ($this->modifiersPool->getModifiersInstances() as $modifier) {
90+
+ $meta = $modifier->modifyMeta($meta);
91+
+ }
92+
+
93+
+ return $meta;
94+
}
95+
}
96+
diff --git a/vendor/magento/module-bundle/Ui/DataProvider/Product/Form/Modifier/AddSelectionQtyTypeToProductsData.php b/vendor/magento/module-bundle/Ui/DataProvider/Product/Form/Modifier/AddSelectionQtyTypeToProductsData.php
97+
new file mode 100644
98+
index 00000000000..387b82a94c1
99+
--- /dev/null
100+
+++ b/vendor/magento/module-bundle/Ui/DataProvider/Product/Form/Modifier/AddSelectionQtyTypeToProductsData.php
101+
@@ -0,0 +1,76 @@
102+
+<?php
103+
+
104+
+/**
105+
+ * Copyright © Magento, Inc. All rights reserved.
106+
+ * See COPYING.txt for license details.
107+
+ */
108+
+declare(strict_types=1);
109+
+
110+
+namespace Magento\Bundle\Ui\DataProvider\Product\Form\Modifier;
111+
+
112+
+use Magento\Framework\App\ObjectManager;
113+
+use Magento\Framework\Exception\NoSuchEntityException;
114+
+use Magento\Ui\DataProvider\Modifier\ModifierInterface;
115+
+use Magento\CatalogInventory\Model\StockRegistryPreloader;
116+
+
117+
+/**
118+
+ * Affects Qty field for newly added selection
119+
+ */
120+
+class AddSelectionQtyTypeToProductsData implements ModifierInterface
121+
+{
122+
+ /**
123+
+ * @var StockRegistryPreloader
124+
+ */
125+
+ private StockRegistryPreloader $stockRegistryPreloader;
126+
+
127+
+ /**
128+
+ * Initializes dependencies
129+
+ *
130+
+ * @param StockRegistryPreloader $stockRegistryPreloader
131+
+ */
132+
+ public function __construct(StockRegistryPreloader $stockRegistryPreloader)
133+
+ {
134+
+ $this->stockRegistryPreloader = $stockRegistryPreloader;
135+
+ }
136+
+
137+
+ /**
138+
+ * Modify Meta
139+
+ *
140+
+ * @param array $meta
141+
+ * @return array
142+
+ */
143+
+ public function modifyMeta(array $meta)
144+
+ {
145+
+ return $meta;
146+
+ }
147+
+
148+
+ /**
149+
+ * Modify Data - checks if new selection can have decimal quantity
150+
+ *
151+
+ * @param array $data
152+
+ * @return array
153+
+ * @throws NoSuchEntityException
154+
+ */
155+
+ public function modifyData(array $data): array
156+
+ {
157+
+ $productIds = array_column($data['items'], 'entity_id');
158+
+
159+
+ $stockItems = [];
160+
+ if ($productIds) {
161+
+ $stockItems = $this->stockRegistryPreloader->preloadStockItems($productIds);
162+
+ }
163+
+
164+
+ $isQtyDecimals = [];
165+
+ foreach ($stockItems as $stockItem) {
166+
+ $isQtyDecimals[$stockItem->getProductId()] = $stockItem->getIsQtyDecimal();
167+
+ }
168+
+
169+
+ foreach ($data['items'] as &$item) {
170+
+ if (isset($isQtyDecimals[$item['entity_id']])) {
171+
+ $item['selection_qty_is_integer'] = !$isQtyDecimals[$item['entity_id']];
172+
+ }
173+
+ }
174+
+
175+
+ return $data;
176+
+ }
177+
+}
178+
diff --git a/vendor/magento/module-bundle/Ui/DataProvider/Product/Form/Modifier/BundlePanel.php b/vendor/magento/module-bundle/Ui/DataProvider/Product/Form/Modifier/BundlePanel.php
179+
index 4e2f17fa46d..7b1c254eae6 100644
180+
--- a/vendor/magento/module-bundle/Ui/DataProvider/Product/Form/Modifier/BundlePanel.php
181+
+++ b/vendor/magento/module-bundle/Ui/DataProvider/Product/Form/Modifier/BundlePanel.php
182+
@@ -403,6 +403,7 @@ class BundlePanel extends AbstractModifier
183+
'selection_price_type' => '',
184+
'selection_price_value' => '',
185+
'selection_qty' => '',
186+
+ 'selection_qty_is_integer'=> 'selection_qty_is_integer',
187+
],
188+
'links' => [
189+
'insertData' => '${ $.provider }:${ $.dataProvider }',
190+
diff --git a/vendor/magento/module-bundle/etc/adminhtml/di.xml b/vendor/magento/module-bundle/etc/adminhtml/di.xml
191+
index f173bb26fcc..4f3069dee65 100644
192+
--- a/vendor/magento/module-bundle/etc/adminhtml/di.xml
193+
+++ b/vendor/magento/module-bundle/etc/adminhtml/di.xml
194+
@@ -76,4 +76,21 @@
195+
</argument>
196+
</arguments>
197+
</type>
198+
+ <virtualType name="Magento\Bundle\Ui\DataProvider\Product\Form\Modifier\ModifiersPool" type="Magento\Ui\DataProvider\Modifier\Pool">
199+
+ <arguments>
200+
+ <argument name="modifiers" xsi:type="array">
201+
+ <item name="add_selection_qty_type_to_products_data" xsi:type="array">
202+
+ <item name="class" xsi:type="string">Magento\Bundle\Ui\DataProvider\Product\Form\Modifier\AddSelectionQtyTypeToProductsData</item>
203+
+ <item name="sortOrder" xsi:type="number">200</item>
204+
+ </item>
205+
+ </argument>
206+
+ </arguments>
207+
+ </virtualType>
208+
+ <type name="Magento\Bundle\Ui\DataProvider\Product\BundleDataProvider">
209+
+ <arguments>
210+
+ <argument name="modifiersPool" xsi:type="object">
211+
+ Magento\Bundle\Ui\DataProvider\Product\Form\Modifier\ModifiersPool
212+
+ </argument>
213+
+ </arguments>
214+
+ </type>
215+
</config>

0 commit comments

Comments
 (0)