Skip to content

Commit 9b491b2

Browse files
author
Evgeniy Kolesov
committed
Merge remote-tracking branch 'mainline/develop' into MAGETWO-50855
2 parents 0ff2b44 + c790670 commit 9b491b2

File tree

232 files changed

+6679
-3085
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

232 files changed

+6679
-3085
lines changed

app/code/Magento/Braintree/Observer/DataAssignObserver.php

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77

88
use Magento\Framework\Event\Observer;
99
use Magento\Payment\Observer\AbstractDataAssignObserver;
10+
use Magento\Quote\Api\Data\PaymentInterface;
1011

1112
/**
1213
* Class DataAssignObserver
@@ -31,13 +32,19 @@ class DataAssignObserver extends AbstractDataAssignObserver
3132
public function execute(Observer $observer)
3233
{
3334
$data = $this->readDataArgument($observer);
35+
36+
$additionalData = $data->getData(PaymentInterface::KEY_ADDITIONAL_DATA);
37+
if (!is_array($additionalData)) {
38+
return;
39+
}
40+
3441
$paymentInfo = $this->readPaymentModelArgument($observer);
3542

3643
foreach ($this->additionalInformationList as $additionalInformationKey) {
37-
if ($data->getDataByKey($additionalInformationKey) !== null) {
44+
if (isset($additionalData[$additionalInformationKey])) {
3845
$paymentInfo->setAdditionalInformation(
3946
$additionalInformationKey,
40-
$data->getDataByKey($additionalInformationKey)
47+
$additionalData[$additionalInformationKey]
4148
);
4249
}
4350
}

app/code/Magento/Braintree/Test/Unit/Observer/DataAssignObserverTest.php

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
use Magento\Payment\Model\InfoInterface;
1111
use Magento\Payment\Observer\AbstractDataAssignObserver;
1212
use Magento\Braintree\Observer\DataAssignObserver;
13+
use Magento\Quote\Api\Data\PaymentInterface;
1314

1415
/**
1516
* Class DataAssignObserverTest
@@ -30,8 +31,10 @@ public function testExecute()
3031
$paymentInfoModel = $this->getMock(InfoInterface::class);
3132
$dataObject = new DataObject(
3233
[
33-
'payment_method_nonce' => self::PAYMENT_METHOD_NONCE,
34-
'device_data' => self::DEVICE_DATA,
34+
PaymentInterface::KEY_ADDITIONAL_DATA => [
35+
'payment_method_nonce' => self::PAYMENT_METHOD_NONCE,
36+
'device_data' => self::DEVICE_DATA
37+
]
3538
]
3639
);
3740
$observerContainer->expects(static::atLeastOnce())

app/code/Magento/Catalog/Block/Adminhtml/Category/Tab/Product.php

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -104,8 +104,6 @@ protected function _prepareCollection()
104104
'sku'
105105
)->addAttributeToSelect(
106106
'price'
107-
)->addStoreFilter(
108-
$this->getRequest()->getParam('store')
109107
)->joinField(
110108
'position',
111109
'catalog_category_product',
@@ -114,6 +112,10 @@ protected function _prepareCollection()
114112
'category_id=' . (int)$this->getRequest()->getParam('id', 0),
115113
'left'
116114
);
115+
$storeId = (int)$this->getRequest()->getParam('store', 0);
116+
if ($storeId > 0) {
117+
$collection->addStoreFilter($storeId);
118+
}
117119
$this->setCollection($collection);
118120

119121
if ($this->getCategory()->getProductsReadonly()) {

app/code/Magento/Catalog/Block/Adminhtml/Product/Helper/Form/Gallery/Content.php

Lines changed: 28 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -122,21 +122,40 @@ public function getAddImagesButton()
122122
*/
123123
public function getImagesJson()
124124
{
125-
if (is_array($this->getElement()->getImages())) {
126-
$value = $this->getElement()->getImages();
125+
$value = $this->getElement()->getImages();
126+
if (is_array($value) &&
127+
array_key_exists('images', $value) &&
128+
is_array($value['images']) &&
129+
count($value['images'])
130+
) {
127131
$directory = $this->_filesystem->getDirectoryRead(DirectoryList::MEDIA);
128-
if (is_array($value['images']) && count($value['images']) > 0) {
129-
foreach ($value['images'] as &$image) {
130-
$image['url'] = $this->_mediaConfig->getMediaUrl($image['file']);
131-
$fileHandler = $directory->stat($this->_mediaConfig->getMediaPath($image['file']));
132-
$image['size'] = $fileHandler['size'];
133-
}
134-
return $this->_jsonEncoder->encode($value['images']);
132+
$images = $this->sortImagesByPosition($value['images']);
133+
foreach ($images as &$image) {
134+
$image['url'] = $this->_mediaConfig->getMediaUrl($image['file']);
135+
$fileHandler = $directory->stat($this->_mediaConfig->getMediaPath($image['file']));
136+
$image['size'] = $fileHandler['size'];
135137
}
138+
return $this->_jsonEncoder->encode($images);
136139
}
137140
return '[]';
138141
}
139142

143+
/**
144+
* Sort images array by position key
145+
*
146+
* @param array $images
147+
* @return array
148+
*/
149+
private function sortImagesByPosition($images)
150+
{
151+
if (is_array($images)) {
152+
usort($images, function ($imageA, $imageB) {
153+
return ($imageA['position'] < $imageB['position']) ? -1 : 1;
154+
});
155+
}
156+
return $images;
157+
}
158+
140159
/**
141160
* @return string
142161
*/

app/code/Magento/Catalog/Controller/Adminhtml/Category/Move.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -67,12 +67,12 @@ public function execute()
6767
throw new \Exception(__('Category is not available for requested store.'));
6868
}
6969
$category->move($parentNodeId, $prevNodeId);
70-
} catch (\Magento\Framework\Exception\LocalizedException $e) {
71-
$error = true;
72-
$this->messageManager->addError(__('There was a category move error.'));
7370
} catch (\Magento\Framework\Exception\AlreadyExistsException $e) {
7471
$error = true;
7572
$this->messageManager->addError(__('There was a category move error. %1', $e->getMessage()));
73+
} catch (\Magento\Framework\Exception\LocalizedException $e) {
74+
$error = true;
75+
$this->messageManager->addError($e->getMessage());
7676
} catch (\Exception $e) {
7777
$error = true;
7878
$this->messageManager->addError(__('There was a category move error.'));

app/code/Magento/Catalog/Model/Product/Copier.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,8 +47,10 @@ public function copy(\Magento\Catalog\Model\Product $product)
4747
$product->getWebsiteIds();
4848
$product->getCategoryIds();
4949

50+
/** @var \Magento\Catalog\Model\Product $duplicate */
5051
$duplicate = $this->productFactory->create();
5152
$duplicate->setData($product->getData());
53+
$duplicate->setOptions([]);
5254
$duplicate->setIsDuplicate(true);
5355
$duplicate->setOriginalId($product->getEntityId());
5456
$duplicate->setStatus(\Magento\Catalog\Model\Product\Attribute\Source\Status::STATUS_DISABLED);

app/code/Magento/Catalog/Model/Product/Option/Type/File/Validator.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ public function __construct(
3838
\Magento\Framework\File\Size $fileSize
3939
) {
4040
$this->scopeConfig = $scopeConfig;
41-
$this->rootDirectory = $filesystem->getDirectoryRead(DirectoryList::ROOT);
41+
$this->rootDirectory = $filesystem->getDirectoryRead(DirectoryList::MEDIA);
4242
$this->fileSize = $fileSize;
4343
}
4444

app/code/Magento/Catalog/Model/Product/Type/AbstractType.php

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77

88
use Magento\Catalog\Api\ProductRepositoryInterface;
99
use Magento\Framework\App\Filesystem\DirectoryList;
10+
use Magento\Framework\Exception\LocalizedException;
1011

1112
/**
1213
* @api
@@ -561,6 +562,7 @@ public function getSpecifyOptionMessage()
561562
* @param \Magento\Catalog\Model\Product $product
562563
* @param string $processMode
563564
* @return array
565+
* @throws LocalizedException
564566
*/
565567
protected function _prepareOptions(\Magento\Framework\DataObject $buyRequest, $product, $processMode)
566568
{
@@ -571,20 +573,29 @@ protected function _prepareOptions(\Magento\Framework\DataObject $buyRequest, $p
571573
$options = $product->getOptions();
572574
}
573575
if ($options !== null) {
576+
$results = [];
574577
foreach ($options as $option) {
575578
/* @var $option \Magento\Catalog\Model\Product\Option */
576-
$group = $option->groupFactory($option->getType())
577-
->setOption($option)
578-
->setProduct($product)
579-
->setRequest($buyRequest)
580-
->setProcessMode($processMode)
581-
->validateUserValue($buyRequest->getOptions());
579+
try {
580+
$group = $option->groupFactory($option->getType())
581+
->setOption($option)
582+
->setProduct($product)
583+
->setRequest($buyRequest)
584+
->setProcessMode($processMode)
585+
->validateUserValue($buyRequest->getOptions());
586+
} catch (LocalizedException $e) {
587+
$results[] = $e->getMessage();
588+
continue;
589+
}
582590

583591
$preparedValue = $group->prepareForCart();
584592
if ($preparedValue !== null) {
585593
$transport->options[$option->getId()] = $preparedValue;
586594
}
587595
}
596+
if (count($results) > 0) {
597+
throw new LocalizedException(__(implode("\n", $results)));
598+
}
588599
}
589600

590601
$eventName = sprintf('catalog_product_type_prepare_%s_options', $processMode);

app/code/Magento/Catalog/Model/ResourceModel/Category/Collection/Factory.php

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,10 @@
55
*/
66
namespace Magento\Catalog\Model\ResourceModel\Category\Collection;
77

8+
/**
9+
* Class Factory
10+
* @deprecated
11+
*/
812
class Factory
913
{
1014
/**

app/code/Magento/Catalog/Model/ResourceModel/Category/Flat.php

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66
namespace Magento\Catalog\Model\ResourceModel\Category;
77

88
use Magento\CatalogUrlRewrite\Model\CategoryUrlRewriteGenerator;
9+
use Magento\Catalog\Model\ResourceModel\Category\Flat\CollectionFactory as CategoryFlatCollectionFactory;
10+
use Magento\Framework\App\ObjectManager;
911

1012
/**
1113
* Category flat model
@@ -68,6 +70,7 @@ class Flat extends \Magento\Indexer\Model\ResourceModel\AbstractResource
6870
* Category collection factory
6971
*
7072
* @var \Magento\Catalog\Model\ResourceModel\Category\CollectionFactory
73+
* @deprecated
7174
*/
7275
protected $_categoryCollectionFactory;
7376

@@ -78,6 +81,11 @@ class Flat extends \Magento\Indexer\Model\ResourceModel\AbstractResource
7881
*/
7982
protected $_categoryFactory;
8083

84+
/**
85+
* @var CategoryFlatCollectionFactory
86+
*/
87+
private $categoryFlatCollectionFactory;
88+
8189
/**
8290
* Class constructor
8391
*
@@ -399,7 +407,7 @@ public function getCategories($parent, $recursionLevel = 0, $sorted = false, $as
399407
);
400408
$parentPath = $this->getConnection()->fetchOne($select);
401409

402-
$collection = $this->_categoryCollectionFactory
410+
$collection = $this->getCategoryFlatCollectionFactory()
403411
->create()
404412
->addNameToResult()
405413
->addUrlRewriteToResult()
@@ -690,4 +698,19 @@ public function getProductsPosition($category)
690698

691699
return $this->getConnection()->fetchPairs($select, $bind);
692700
}
701+
702+
/**
703+
* Get instance of CategoryFlatCollectionFactory
704+
*
705+
* @return CategoryFlatCollectionFactory
706+
*/
707+
private function getCategoryFlatCollectionFactory()
708+
{
709+
if (!$this->categoryFlatCollectionFactory instanceof CategoryFlatCollectionFactory) {
710+
$this->categoryFlatCollectionFactory = ObjectManager::getInstance()
711+
->get(CategoryFlatCollectionFactory::class);
712+
}
713+
714+
return $this->categoryFlatCollectionFactory;
715+
}
693716
}

0 commit comments

Comments
 (0)