Skip to content

Commit 1386bb4

Browse files
committed
Merge remote-tracking branch 'upstream/2.3-develop' into issue/815
2 parents ecf97bc + 89e28aa commit 1386bb4

File tree

16 files changed

+339
-63
lines changed

16 files changed

+339
-63
lines changed

app/code/Magento/Catalog/Test/Mftf/ActionGroup/AdminProductActionGroup.xml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -422,6 +422,10 @@
422422
<waitForPageLoad stepKey="waitForPageOpened"/>
423423
<checkOption selector="{{ProductInWebsitesSection.website(website)}}" stepKey="selectWebsite"/>
424424
</actionGroup>
425+
<actionGroup name="unassignWebsiteFromProductActionGroup" extends="SelectProductInWebsitesActionGroup">
426+
<remove keyForRemoval="selectWebsite"/>
427+
<uncheckOption selector="{{ProductInWebsitesSection.website(website)}}" stepKey="unSelectWebsite" after="waitForPageOpened"/>
428+
</actionGroup>
425429

426430
<actionGroup name="AdminProductAddSpecialPrice">
427431
<annotations>

app/code/Magento/Catalog/Test/Mftf/Test/AdminGridPageNumberAfterSaveAndCloseActionTest.xml

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,9 @@
1515
<title value="Checking Catalog grid page number after Save and Close action"/>
1616
<description value="Checking Catalog grid page number after Save and Close action"/>
1717
<severity value="MAJOR"/>
18-
<testCaseId value="MAGETWO-96164"/>
19-
<useCaseId value="MAGETWO-96127"/>
18+
<testCaseId value="MC-16472"/>
19+
<useCaseId value="MC-17332"/>
2020
<group value="Catalog"/>
21-
<skip>
22-
<issueId value="MC-17332"/>
23-
</skip>
2421
</annotations>
2522
<before>
2623
<actionGroup ref="LoginAsAdmin" stepKey="loginAsAdmin"/>

app/code/Magento/CatalogInventory/Ui/DataProvider/Product/Form/Modifier/AdvancedInventory.php

Lines changed: 80 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
11
<?php
2+
3+
declare(strict_types=1);
4+
25
/**
36
* Copyright © Magento, Inc. All rights reserved.
47
* See COPYING.txt for license details.
@@ -85,7 +88,7 @@ public function __construct(
8588
}
8689

8790
/**
88-
* {@inheritdoc}
91+
* @inheritdoc
8992
*/
9093
public function modifyData(array $data)
9194
{
@@ -163,7 +166,7 @@ private function getData(StockItemInterface $stockItem)
163166
}
164167

165168
/**
166-
* {@inheritdoc}
169+
* @inheritdoc
167170
*/
168171
public function modifyMeta(array $meta)
169172
{
@@ -175,6 +178,8 @@ public function modifyMeta(array $meta)
175178
}
176179

177180
/**
181+
* Prepare Meta
182+
*
178183
* @return void
179184
*/
180185
private function prepareMeta()
@@ -225,55 +230,86 @@ private function prepareMeta()
225230
) - 1,
226231
'disabled' => $this->locator->getProduct()->isLockedAttribute($fieldCode),
227232
];
228-
$qty['arguments']['data']['config'] = [
229-
'component' => 'Magento_CatalogInventory/js/components/qty-validator-changer',
230-
'group' => 'quantity_and_stock_status_qty',
231-
'dataType' => 'number',
232-
'formElement' => 'input',
233-
'componentType' => 'field',
234-
'visible' => '1',
235-
'require' => '0',
236-
'additionalClasses' => 'admin__field-small',
237-
'label' => __('Quantity'),
238-
'scopeLabel' => '[GLOBAL]',
239-
'dataScope' => 'qty',
240-
'validation' => [
241-
'validate-number' => true,
242-
'less-than-equals-to' => StockDataFilter::MAX_QTY_VALUE,
243-
],
244-
'imports' => [
245-
'handleChanges' => '${$.provider}:data.product.stock_data.is_qty_decimal',
246-
],
247-
'sortOrder' => 10,
248-
];
249-
$advancedInventoryButton['arguments']['data']['config'] = [
250-
'displayAsLink' => true,
251-
'formElement' => 'container',
252-
'componentType' => 'container',
253-
'component' => 'Magento_Ui/js/form/components/button',
254-
'template' => 'ui/form/components/button/container',
255-
'actions' => [
256-
[
257-
'targetName' => 'product_form.product_form.advanced_inventory_modal',
258-
'actionName' => 'toggleModal',
259-
],
260-
],
261-
'title' => __('Advanced Inventory'),
262-
'provider' => false,
263-
'additionalForGroup' => true,
264-
'source' => 'product_details',
265-
'sortOrder' => 20,
266-
];
267233
$container['children'] = [
268-
'qty' => $qty,
269-
'advanced_inventory_button' => $advancedInventoryButton,
234+
'qty' => $this->getQtyMetaStructure(),
235+
'advanced_inventory_button' => $this->getAdvancedInventoryButtonMetaStructure(),
270236
];
271237

272238
$this->meta = $this->arrayManager->merge(
273239
$fieldsetPath . '/children',
274240
$this->meta,
275-
['quantity_and_stock_status_qty' => $container]
241+
['container_quantity_and_stock_status_qty' => $container]
276242
);
277243
}
278244
}
245+
246+
/**
247+
* Get Qty meta structure
248+
*
249+
* @return array
250+
*/
251+
private function getQtyMetaStructure()
252+
{
253+
return [
254+
'arguments' => [
255+
'data' => [
256+
'config' => [
257+
'component' => 'Magento_CatalogInventory/js/components/qty-validator-changer',
258+
'group' => 'quantity_and_stock_status_qty',
259+
'dataType' => 'number',
260+
'formElement' => 'input',
261+
'componentType' => 'field',
262+
'visible' => '1',
263+
'require' => '0',
264+
'additionalClasses' => 'admin__field-small',
265+
'label' => __('Quantity'),
266+
'scopeLabel' => '[GLOBAL]',
267+
'dataScope' => 'qty',
268+
'validation' => [
269+
'validate-number' => true,
270+
'less-than-equals-to' => StockDataFilter::MAX_QTY_VALUE,
271+
],
272+
'imports' => [
273+
'handleChanges' => '${$.provider}:data.product.stock_data.is_qty_decimal',
274+
],
275+
'sortOrder' => 10,
276+
'disabled' => $this->locator->getProduct()->isLockedAttribute('quantity_and_stock_status'),
277+
]
278+
]
279+
]
280+
];
281+
}
282+
283+
/**
284+
* Get advances inventory button meta structure
285+
*
286+
* @return array
287+
*/
288+
private function getAdvancedInventoryButtonMetaStructure()
289+
{
290+
return [
291+
'arguments' => [
292+
'data' => [
293+
'config' => [
294+
'displayAsLink' => true,
295+
'formElement' => 'container',
296+
'componentType' => 'container',
297+
'component' => 'Magento_Ui/js/form/components/button',
298+
'template' => 'ui/form/components/button/container',
299+
'actions' => [
300+
[
301+
'targetName' => 'product_form.product_form.advanced_inventory_modal',
302+
'actionName' => 'toggleModal',
303+
],
304+
],
305+
'title' => __('Advanced Inventory'),
306+
'provider' => false,
307+
'additionalForGroup' => true,
308+
'source' => 'product_details',
309+
'sortOrder' => 20,
310+
]
311+
]
312+
]
313+
];
314+
}
279315
}

app/code/Magento/CatalogInventory/view/adminhtml/ui_component/product_form.xml

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,8 +74,12 @@
7474
<link name="linkedValue">${$.provider}:data.product.stock_data.manage_stock</link>
7575
</links>
7676
<exports>
77+
<link name="disabled">${$.parentName}.manage_stock:disabled</link>
7778
<link name="checked">${$.parentName}.manage_stock:disabled</link>
7879
</exports>
80+
<imports>
81+
<link name="disabled">ns = ${ $.ns }, index = qty, group = quantity_and_stock_status_qty:disabled</link>
82+
</imports>
7983
</settings>
8084
<formElements>
8185
<checkbox class="Magento\CatalogInventory\Ui\Component\Product\Form\Element\UseConfigSettings">
@@ -101,6 +105,7 @@
101105
<dataScope>quantity_and_stock_status.qty</dataScope>
102106
<links>
103107
<link name="value">ns = ${ $.ns }, index = qty, group = quantity_and_stock_status_qty:value</link>
108+
<link name="disabled">ns = ${ $.ns }, index = qty, group = quantity_and_stock_status_qty:disabled</link>
104109
</links>
105110
<imports>
106111
<link name="handleChanges">${$.provider}:data.product.stock_data.is_qty_decimal</link>
@@ -149,8 +154,12 @@
149154
<link name="linkedValue">${$.provider}:data.product.stock_data.min_qty</link>
150155
</links>
151156
<exports>
157+
<link name="disabled">${$.parentName}.min_qty:disabled</link>
152158
<link name="checked">${$.parentName}.min_qty:disabled</link>
153159
</exports>
160+
<imports>
161+
<link name="disabled">ns = ${ $.ns }, index = qty, group = quantity_and_stock_status_qty:disabled</link>
162+
</imports>
154163
</settings>
155164
<formElements>
156165
<checkbox class="Magento\CatalogInventory\Ui\Component\Product\Form\Element\UseConfigSettings">
@@ -211,6 +220,13 @@
211220
<class name="admin__field-no-label">true</class>
212221
</additionalClasses>
213222
<dataScope>use_config_min_sale_qty</dataScope>
223+
<exports>
224+
<link name="disabled">${$.parentName}.min_sale_qty:disabled</link>
225+
<link name="checked">${$.parentName}.min_sale_qty:disabled</link>
226+
</exports>
227+
<imports>
228+
<link name="disabled">ns = ${ $.ns }, index = qty, group = quantity_and_stock_status_qty:disabled</link>
229+
</imports>
214230
</settings>
215231
<formElements>
216232
<checkbox class="Magento\CatalogInventory\Ui\Component\Product\Form\Element\UseConfigSettings">
@@ -308,8 +324,12 @@
308324
<link name="linkedValue">${$.provider}:data.product.stock_data.max_sale_qty</link>
309325
</links>
310326
<exports>
327+
<link name="disabled">${$.parentName}.max_sale_qty:disabled</link>
311328
<link name="checked">${$.parentName}.max_sale_qty:disabled</link>
312329
</exports>
330+
<imports>
331+
<link name="disabled">ns = ${ $.ns }, index = qty, group = quantity_and_stock_status_qty:disabled</link>
332+
</imports>
313333
</settings>
314334
<formElements>
315335
<checkbox class="Magento\CatalogInventory\Ui\Component\Product\Form\Element\UseConfigSettings">
@@ -337,6 +357,7 @@
337357
<dataScope>stock_data.is_qty_decimal</dataScope>
338358
<imports>
339359
<link name="visible">${$.provider}:data.product.stock_data.manage_stock</link>
360+
<link name="disabled">ns = ${ $.ns }, index = qty, group = quantity_and_stock_status_qty:disabled</link>
340361
</imports>
341362
</settings>
342363
<formElements>
@@ -359,6 +380,7 @@
359380
<dataScope>stock_data.is_decimal_divided</dataScope>
360381
<imports>
361382
<link name="visible">${$.provider}:data.product.stock_data.manage_stock</link>
383+
<link name="disabled">ns = ${ $.ns }, index = qty, group = quantity_and_stock_status_qty:disabled</link>
362384
</imports>
363385
</settings>
364386
<formElements>
@@ -418,8 +440,12 @@
418440
<link name="linkedValue">${$.provider}:data.product.stock_data.backorders</link>
419441
</links>
420442
<exports>
443+
<link name="disabled">${$.parentName}.backorders:disabled</link>
421444
<link name="checked">${$.parentName}.backorders:disabled</link>
422445
</exports>
446+
<imports>
447+
<link name="disabled">ns = ${ $.ns }, index = qty, group = quantity_and_stock_status_qty:disabled</link>
448+
</imports>
423449
</settings>
424450
<formElements>
425451
<checkbox class="Magento\CatalogInventory\Ui\Component\Product\Form\Element\UseConfigSettings">
@@ -475,8 +501,12 @@
475501
<link name="linkedValue">${$.provider}:data.product.stock_data.notify_stock_qty</link>
476502
</links>
477503
<exports>
504+
<link name="disabled">${$.parentName}.notify_stock_qty:disabled</link>
478505
<link name="checked">${$.parentName}.notify_stock_qty:disabled</link>
479506
</exports>
507+
<imports>
508+
<link name="disabled">ns = ${ $.ns }, index = qty, group = quantity_and_stock_status_qty:disabled</link>
509+
</imports>
480510
</settings>
481511
<formElements>
482512
<checkbox class="Magento\CatalogInventory\Ui\Component\Product\Form\Element\UseConfigSettings">
@@ -534,8 +564,12 @@
534564
<link name="linkedValue">${$.provider}:data.product.stock_data.enable_qty_increments</link>
535565
</links>
536566
<exports>
567+
<link name="disabled">${$.parentName}.enable_qty_increments:disabled</link>
537568
<link name="checked">${$.parentName}.enable_qty_increments:disabled</link>
538569
</exports>
570+
<imports>
571+
<link name="disabled">ns = ${ $.ns }, index = qty, group = quantity_and_stock_status_qty:disabled</link>
572+
</imports>
539573
</settings>
540574
<formElements>
541575
<checkbox class="Magento\CatalogInventory\Ui\Component\Product\Form\Element\UseConfigSettings">
@@ -595,8 +629,12 @@
595629
<link name="linkedValue">${$.provider}:data.product.stock_data.qty_increments</link>
596630
</links>
597631
<exports>
632+
<link name="disabled">${$.parentName}.qty_increments:disabled</link>
598633
<link name="checked">${$.parentName}.qty_increments:disabled</link>
599634
</exports>
635+
<imports>
636+
<link name="disabled">ns = ${ $.ns }, index = qty, group = quantity_and_stock_status_qty:disabled</link>
637+
</imports>
600638
</settings>
601639
<formElements>
602640
<checkbox class="Magento\CatalogInventory\Ui\Component\Product\Form\Element\UseConfigSettings">
@@ -633,6 +671,9 @@
633671
<scopeLabel>[GLOBAL]</scopeLabel>
634672
<label translate="true">Stock Status</label>
635673
<dataScope>is_in_stock</dataScope>
674+
<imports>
675+
<link name="disabled">ns = ${ $.ns }, index = qty, group = quantity_and_stock_status_qty:disabled</link>
676+
</imports>
636677
</settings>
637678
<formElements>
638679
<select>

app/code/Magento/CatalogSearch/Model/Advanced.php

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -181,8 +181,8 @@ public function __construct(
181181
/**
182182
* Add advanced search filters to product collection
183183
*
184-
* @param array $values
185-
* @return $this
184+
* @param array $values
185+
* @return $this
186186
* @throws LocalizedException
187187
* @SuppressWarnings(PHPMD.CyclomaticComplexity)
188188
* @SuppressWarnings(PHPMD.NPathComplexity)
@@ -197,6 +197,11 @@ public function addFilters($values)
197197
if (!isset($values[$attribute->getAttributeCode()])) {
198198
continue;
199199
}
200+
if ($attribute->getFrontendInput() == 'text' || $attribute->getFrontendInput() == 'textarea') {
201+
if (!trim($values[$attribute->getAttributeCode()])) {
202+
continue;
203+
}
204+
}
200205
$value = $values[$attribute->getAttributeCode()];
201206
$preparedSearchValue = $this->getPreparedSearchCriteria($attribute, $value);
202207
if (false === $preparedSearchValue) {
@@ -343,9 +348,9 @@ protected function addSearchCriteria($attribute, $value)
343348
*
344349
* @todo: Move this code to block
345350
*
346-
* @param EntityAttribute $attribute
347-
* @param mixed $value
348-
* @return string|bool
351+
* @param EntityAttribute $attribute
352+
* @param mixed $value
353+
* @return string|bool
349354
* @SuppressWarnings(PHPMD.CyclomaticComplexity)
350355
* @SuppressWarnings(PHPMD.NPathComplexity)
351356
*/

app/code/Magento/Config/Test/Mftf/Test/CheckingCountryDropDownWithOneAllowedCountryTest.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
<createData entity="EnableAdminAccountAllowCountry" stepKey="setAllowedCountries"/>
2323
</before>
2424
<after>
25+
<magentoCLI stepKey="flushCache" command="cache:flush"/>
2526
<createData entity="DisableAdminAccountAllowCountry" stepKey="setDefaultValueForAllowCountries"/>
2627
<actionGroup ref="LoginAsAdmin" stepKey="loginAsAdmin"/>
2728
<actionGroup ref="AdminDeleteCustomerActionGroup" stepKey="deleteCustomer">
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<!--
3+
/**
4+
* Copyright © Magento, Inc. All rights reserved.
5+
* See COPYING.txt for license details.
6+
*/
7+
-->
8+
<pages xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:mftf:Page/etc/PageObject.xsd">
9+
<page name="LowStockReportPage" url="reports/report_product/lowstock/" area="admin" module="Reports">
10+
<section name="LowStockReportMainSection"/>
11+
<section name="LowStockProductGridSection"/>
12+
</page>
13+
</pages>

0 commit comments

Comments
 (0)