Skip to content

Commit 207465c

Browse files
Merge branch '2.4-develop' into DHL_AC-3023_JULY_28_22
2 parents dd8f534 + 471f4d3 commit 207465c

File tree

14 files changed

+144
-133
lines changed

14 files changed

+144
-133
lines changed

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

+5
Original file line numberDiff line numberDiff line change
@@ -164,6 +164,7 @@ public function __construct(
164164
*/
165165
abstract public function execute($ids);
166166

167+
// phpcs:disable
167168
/**
168169
* Synchronize data between index storage and original storage
169170
*
@@ -196,6 +197,7 @@ protected function _syncData(array $processIds = [])
196197
return $this;
197198
}
198199

200+
// phpcs:enable
199201
/**
200202
* Prepare website current dates table
201203
*
@@ -456,6 +458,7 @@ private function deleteOutdatedData(array $entityIds, string $temporaryTable, st
456458
*/
457459
private function deleteIndexData(array $entityIds)
458460
{
461+
$entityIds = array_unique(array_map('intval', $entityIds));
459462
foreach ($this->dimensionCollectionFactory->create() as $dimensions) {
460463
$select = $this->getConnection()->select()->from(
461464
['index_price' => $this->tableMaintainer->getMainTableByDimensions($dimensions)],
@@ -466,6 +469,7 @@ private function deleteIndexData(array $entityIds)
466469
}
467470
}
468471

472+
// phpcs:disable
469473
/**
470474
* Copy relations product index from primary index to temporary index table by parent entity
471475
*
@@ -516,6 +520,7 @@ protected function _copyRelationIndexData($parentIds, $excludeIds = null)
516520
return $this;
517521
}
518522

523+
// phpcs:enable
519524
/**
520525
* Retrieve index table by dimension that will be used for write operations.
521526
*

app/code/Magento/Catalog/view/adminhtml/ui_component/product_listing.xml

+10
Original file line numberDiff line numberDiff line change
@@ -192,6 +192,16 @@
192192
<label translate="true">Websites</label>
193193
</settings>
194194
</column>
195+
<column name="updated_at"
196+
class="Magento\Ui\Component\Listing\Columns\Date"
197+
component="Magento_Ui/js/grid/columns/date"
198+
sortOrder="110">
199+
<settings>
200+
<filter>dateRange</filter>
201+
<dataType>date</dataType>
202+
<label translate="true">Last Updated At</label>
203+
</settings>
204+
</column>
195205
<actionsColumn name="actions" class="Magento\Catalog\Ui\Component\Listing\Columns\ProductActions" sortOrder="200">
196206
<settings>
197207
<indexField>entity_id</indexField>

app/code/Magento/ConfigurableProduct/view/adminhtml/web/js/components/dynamic-rows-configurable.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -412,7 +412,7 @@ define([
412412
product = {
413413
'id': row.productId,
414414
'product_link': row.productUrl,
415-
'name': $('<i></i>').text(row.name).html(),
415+
'name': row.name,
416416
'sku': row.sku,
417417
'status': row.status,
418418
'price': row.price,

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

+17
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,20 @@ class Collection extends \Magento\Rule\Model\ResourceModel\Rule\Collection\Abstr
2929
*/
3030
protected $_associatedEntitiesMap;
3131

32+
/**
33+
* SaleRule Event prefix
34+
*
35+
* @var string
36+
*/
37+
protected $_eventPrefix = 'salesrule_rule_collection';
38+
39+
/**
40+
* SaleRule Event object
41+
*
42+
* @var string
43+
*/
44+
protected $_eventObject = 'rule_collection';
45+
3246
/**
3347
* @var \Magento\SalesRule\Model\ResourceModel\Rule\DateApplier
3448
* @since 100.1.0
@@ -427,6 +441,7 @@ public function addCustomerGroupFilter($customerGroupId)
427441
return $this;
428442
}
429443

444+
// phpcs:disable
430445
/**
431446
* Getter for _associatedEntitiesMap property
432447
*
@@ -437,6 +452,7 @@ private function getAssociatedEntitiesMap()
437452
{
438453
if (!$this->_associatedEntitiesMap) {
439454
$this->_associatedEntitiesMap = \Magento\Framework\App\ObjectManager::getInstance()
455+
// phpstan:ignore "Class Magento\SalesRule\Model\ResourceModel\Rule\AssociatedEntityMap not found."
440456
->get(\Magento\SalesRule\Model\ResourceModel\Rule\AssociatedEntityMap::class)
441457
->getData();
442458
}
@@ -458,4 +474,5 @@ private function getDateApplier()
458474

459475
return $this->dateApplier;
460476
}
477+
// phpcs:enable
461478
}

dev/tests/integration/testsuite/Magento/Email/Model/TemplateTest.php

+3-25
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@
88
use Magento\Backend\App\Area\FrontNameResolver as BackendFrontNameResolver;
99
use Magento\Framework\App\Area;
1010
use Magento\Framework\App\Filesystem\DirectoryList;
11-
use Magento\Framework\App\ObjectManager;
1211
use Magento\Framework\App\TemplateTypesInterface;
12+
use Magento\Framework\ObjectManagerInterface;
1313
use Magento\Framework\View\DesignInterface;
1414
use Magento\Store\Model\ScopeInterface;
1515
use Magento\Store\Model\Store;
@@ -26,12 +26,7 @@ class TemplateTest extends \PHPUnit\Framework\TestCase
2626
protected $model;
2727

2828
/**
29-
* @var \Zend_Mail|\PHPUnit\Framework\MockObject\MockObject
30-
*/
31-
protected $mail;
32-
33-
/**
34-
* @var \Magento\Framework\ObjectManagerInterface
29+
* @var ObjectManagerInterface
3530
*/
3631
protected $objectManager;
3732

@@ -46,13 +41,8 @@ protected function mockModel($filesystem = null)
4641
$filesystem = $this->objectManager->create(\Magento\Framework\Filesystem::class);
4742
}
4843

49-
$this->mail = $this->getMockBuilder(\Zend_Mail::class)
50-
->setMethods(['send', 'addTo', 'addBcc', 'setReturnPath', 'setReplyTo'])
51-
->setConstructorArgs(['utf-8'])
52-
->getMock();
53-
5444
$this->model = $this->getMockBuilder(\Magento\Email\Model\Template::class)
55-
->setMethods(['_getMail'])
45+
->addMethods([])
5646
->setConstructorArgs(
5747
[
5848
$this->objectManager->get(\Magento\Framework\Model\Context::class),
@@ -73,25 +63,13 @@ protected function mockModel($filesystem = null)
7363
->getMock();
7464

7565
$this->objectManager->get(\Magento\Framework\App\State::class)->setAreaCode('frontend');
76-
77-
$this->model->expects($this->any())->method('_getMail')->willReturnCallback([$this, 'getMail']);
7866
$this->model
7967
->setSenderName('sender')
8068
->setSenderEmail('[email protected]')
8169
->setTemplateSubject('Subject')
8270
->setTemplateId('abc');
8371
}
8472

85-
/**
86-
* Return a disposable \Zend_Mail instance
87-
*
88-
* @return \PHPUnit\Framework\MockObject\MockObject|\Zend_Mail
89-
*/
90-
public function getMail()
91-
{
92-
return clone $this->mail;
93-
}
94-
9573
public function testSetGetTemplateFilter()
9674
{
9775
$this->mockModel();

dev/tests/static/testsuite/Magento/Test/Legacy/_files/obsolete_classes.php

+1
Original file line numberDiff line numberDiff line change
@@ -4245,6 +4245,7 @@
42454245
['Zend_Feed', 'Laminas\Feed'],
42464246
['Zend_Uri', 'Laminas\Uri\Uri'],
42474247
['Zend_Mime', 'Magento\Framework\HTTP\Mime'],
4248+
['Zend_Mail'],
42484249
['Magento\Framework\Encryption\Crypt', 'Magento\Framework\Encryption\EncryptionAdapterInterface'],
42494250
['Magento\Wishlist\Setup\Patch\Schema\AddProductIdConstraint'],
42504251
['Magento\Elasticsearch\Block\Adminhtml\System\Config\TestConnection'],

lib/internal/Magento/Framework/Amqp/Config.php

+3-3
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,12 @@
55
*/
66
namespace Magento\Framework\Amqp;
77

8+
use Magento\Framework\Amqp\Connection\Factory as ConnectionFactory;
89
use Magento\Framework\Amqp\Connection\FactoryOptions;
910
use Magento\Framework\App\DeploymentConfig;
1011
use Magento\Framework\App\ObjectManager;
11-
use PhpAmqpLib\Connection\AbstractConnection;
1212
use PhpAmqpLib\Channel\AMQPChannel;
13-
use Magento\Framework\Amqp\Connection\Factory as ConnectionFactory;
13+
use PhpAmqpLib\Connection\AbstractConnection;
1414

1515
/**
1616
* Reads the Amqp config in the deployed environment configuration
@@ -140,7 +140,7 @@ public function getValue($key)
140140
*/
141141
private function createConnection(): AbstractConnection
142142
{
143-
$sslEnabled = $this->getValue(self::SSL) && trim($this->getValue(self::SSL)) === 'true';
143+
$sslEnabled = trim($this->getValue(self::SSL) ?? '') === 'true';
144144
$options = new FactoryOptions();
145145
$options->setHost($this->getValue(self::HOST));
146146
$options->setPort($this->getValue(self::PORT));

lib/web/jquery/bootstrap/collapse.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -201,7 +201,7 @@ define([
201201
this._element.style[dimension] = '';
202202

203203
EventHandler.trigger(this._element, EVENT_SHOWN);
204-
}
204+
};
205205

206206
const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1);
207207
const scrollSize = `scroll${capitalizedDimension}`;
@@ -246,7 +246,7 @@ define([
246246
this._element.classList.remove(CLASS_NAME_COLLAPSING);
247247
this._element.classList.add(CLASS_NAME_COLLAPSE);
248248
EventHandler.trigger(this._element, EVENT_HIDDEN);
249-
}
249+
};
250250

251251
this._element.style[dimension] = '';
252252

lib/web/jquery/bootstrap/dom/data.js

+3-3
Original file line numberDiff line numberDiff line change
@@ -14,15 +14,15 @@ define([], function() {
1414
* ------------------------------------------------------------------------
1515
*/
1616

17-
const elementMap = new Map()
17+
const elementMap = new Map();
1818

1919
return {
2020
set: function (element, key, instance) {
2121
if (!elementMap.has(element)) {
2222
elementMap.set(element, new Map())
2323
}
2424

25-
const instanceMap = elementMap.get(element)
25+
const instanceMap = elementMap.get(element);
2626

2727
// make it clear we only want one instance per element
2828
// can be removed later when multiple key/instances are fine to be used
@@ -48,7 +48,7 @@ define([], function() {
4848
return
4949
}
5050

51-
const instanceMap = elementMap.get(element)
51+
const instanceMap = elementMap.get(element);
5252

5353
instanceMap.delete(key)
5454

0 commit comments

Comments
 (0)