Skip to content

Commit d447fa6

Browse files
author
Paliarush, Alexander(apaliarush)
committed
Merge pull request #496 from magento-api/for-pr
[API] Bug Fixes
2 parents 0b62520 + 6817cf4 commit d447fa6

File tree

24 files changed

+313
-71
lines changed

24 files changed

+313
-71
lines changed

app/code/Magento/Catalog/Ui/Component/Listing/Columns/Websites.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,9 @@ public function prepareDataSource(array $dataSource)
5656
foreach ($dataSource['data']['items'] as & $item) {
5757
$websites = [];
5858
foreach ($item[$fieldName] as $websiteId) {
59+
if (!isset($websiteNames[$websiteId])) {
60+
continue;
61+
}
5962
$websites[] = $websiteNames[$websiteId];
6063
}
6164
$item[$fieldName] = implode(', ', $websites);

app/code/Magento/Config/Model/Config/Backend/Cache.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,12 +22,13 @@ class Cache extends \Magento\Framework\App\Config\Value
2222
/**
2323
* Clean cache, value was changed
2424
*
25-
* @return void
25+
* @return $this
2626
*/
2727
public function afterSave()
2828
{
2929
if ($this->isValueChanged()) {
3030
$this->_cacheManager->clean($this->_cacheTags);
3131
}
32+
return $this;
3233
}
3334
}

app/code/Magento/Config/Model/Config/Backend/Datashare.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,10 @@
1414
class Datashare extends \Magento\Framework\App\Config\Value
1515
{
1616
/**
17-
* @return void
17+
* @return $this
1818
*/
1919
public function afterSave()
2020
{
21+
return $this;
2122
}
2223
}
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
<?php
2+
/**
3+
* Copyright © 2016 Magento. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
7+
namespace Magento\Customer\Model\ResourceModel\Grid;
8+
9+
use Magento\Framework\Data\Collection\Db\FetchStrategyInterface as FetchStrategy;
10+
use Magento\Framework\Data\Collection\EntityFactoryInterface as EntityFactory;
11+
use Magento\Framework\Event\ManagerInterface as EventManager;
12+
use Psr\Log\LoggerInterface as Logger;
13+
14+
class Collection extends \Magento\Framework\View\Element\UiComponent\DataProvider\SearchResult
15+
{
16+
/**
17+
* Initialize dependencies.
18+
*
19+
* @param EntityFactory $entityFactory
20+
* @param Logger $logger
21+
* @param FetchStrategy $fetchStrategy
22+
* @param EventManager $eventManager
23+
* @param string $mainTable
24+
* @param string $resourceModel
25+
*/
26+
public function __construct(
27+
EntityFactory $entityFactory,
28+
Logger $logger,
29+
FetchStrategy $fetchStrategy,
30+
EventManager $eventManager,
31+
$mainTable = 'customer_grid_flat',
32+
$resourceModel = '\Magento\Customer\Model\ResourceModel\Customer'
33+
) {
34+
parent::__construct($entityFactory, $logger, $fetchStrategy, $eventManager, $mainTable, $resourceModel);
35+
}
36+
}

app/code/Magento/Customer/etc/di.xml

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -180,12 +180,6 @@
180180
<argument name="entitySnapshot" xsi:type="object">EavVersionControlSnapshot</argument>
181181
</arguments>
182182
</type>
183-
<virtualType name="Magento\Customer\Model\ResourceModel\Grid\Collection" type="Magento\Framework\View\Element\UiComponent\DataProvider\SearchResult">
184-
<arguments>
185-
<argument name="mainTable" xsi:type="string">customer_grid_flat</argument>
186-
<argument name="resourceModel" xsi:type="string">Magento\Customer\Model\ResourceModel\Customer</argument>
187-
</arguments>
188-
</virtualType>
189183
<type name="Magento\Framework\View\Element\UiComponent\DataProvider\CollectionFactory">
190184
<arguments>
191185
<argument name="collections" xsi:type="array">

app/code/Magento/Directory/etc/adminhtml/system.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
<resource>Magento_Backend::currency</resource>
1414
<group id="options" translate="label" sortOrder="30" showInDefault="1" showInWebsite="1" showInStore="1">
1515
<label>Currency Options</label>
16-
<field id="base" translate="label comment" type="select" sortOrder="1" showInDefault="1" showInWebsite="1" showInStore="0">
16+
<field id="base" translate="label comment" type="select" sortOrder="1" showInDefault="1" showInWebsite="1" showInStore="1">
1717
<label>Base Currency</label>
1818
<frontend_model>Magento\Directory\Block\Adminhtml\Frontend\Currency\Base</frontend_model>
1919
<source_model>Magento\Config\Model\Config\Source\Locale\Currency</source_model>

app/code/Magento/Integration/Controller/Adminhtml/Integration/TokensExchange.php

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,10 +53,16 @@ public function execute()
5353
$this->_setActivationInProcessMsg($isReauthorize, $integration->getName());
5454
$this->_view->renderLayout();
5555
$popupContent = $this->_response->getBody();
56+
$consumer = $this->_oauthService->loadConsumer($integration->getConsumerId());
57+
if (!$consumer->getId()) {
58+
throw new \Magento\Framework\Oauth\Exception(
59+
__('A consumer with ID %1 does not exist', $integration->getConsumerId())
60+
);
61+
}
5662
/** Initialize response body */
5763
$result = [
5864
IntegrationModel::IDENTITY_LINK_URL => $integration->getIdentityLinkUrl(),
59-
IntegrationModel::CONSUMER_ID => $integration->getConsumerId(),
65+
'oauth_consumer_key' => $consumer->getKey(),
6066
'popup_content' => $popupContent,
6167
];
6268
$this->getResponse()->representJson($this->jsonHelper->jsonEncode($result));

app/code/Magento/Integration/Model/OauthService.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -192,7 +192,7 @@ public function loadConsumerByKey($key)
192192
public function postToConsumer($consumerId, $endpointUrl)
193193
{
194194
try {
195-
$consumer = $this->_consumerFactory->create()->load($consumerId);
195+
$consumer = $this->loadConsumer($consumerId);
196196
if (!$consumer->getId()) {
197197
throw new \Magento\Framework\Oauth\Exception(
198198
__('A consumer with ID %1 does not exist', $consumerId)

app/code/Magento/Integration/Model/ResourceModel/Oauth/Consumer.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,8 @@ protected function _construct()
3737
public function _afterDelete(\Magento\Framework\Model\AbstractModel $object)
3838
{
3939
$connection = $this->getConnection();
40-
$connection->delete($this->getTable('oauth_nonce'), ['consumer_id' => $object->getId()]);
41-
$connection->delete($this->getTable('oauth_token'), ['consumer_id' => $object->getId()]);
40+
$connection->delete($this->getTable('oauth_nonce'), ['consumer_id = ?' => (int)$object->getId()]);
41+
$connection->delete($this->getTable('oauth_token'), ['consumer_id = ?' => (int)$object->getId()]);
4242
return parent::_afterDelete($object);
4343
}
4444

app/code/Magento/Integration/Test/Unit/Controller/Adminhtml/Integration/TokensDialogTest.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,9 @@ public function testTokensExchangeReauthorize()
8484

8585
$this->_oauthSvcMock->expects($this->once())->method('deleteIntegrationToken');
8686
$this->_oauthSvcMock->expects($this->once())->method('postToConsumer');
87+
$consumerMock = $this->getMock(\Magento\Integration\Model\Oauth\Consumer::class, [], [], '' , false);
88+
$consumerMock->expects($this->once())->method('getId')->willReturn(1);
89+
$this->_oauthSvcMock->expects($this->once())->method('loadConsumer')->willReturn($consumerMock);
8790

8891
$this->_messageManager->expects($this->once())->method('addNotice');
8992
$this->_messageManager->expects($this->never())->method('addError');

app/code/Magento/Integration/view/adminhtml/web/js/integration.js

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -133,11 +133,11 @@ define([
133133
TOP: screen.height - 510 - 300
134134
},
135135

136-
invokePopup: function (identityCallbackUrl, consumerId, jqInfoDialog) {
136+
invokePopup: function (identityCallbackUrl, consumerKey, jqInfoDialog) {
137137
// Callback should be invoked only once. Reset callback flag on subsequent invocations.
138138
IdentityLogin.isCalledBack = false;
139139
IdentityLogin.jqInfoDialog = jqInfoDialog;
140-
var param = $.param({"consumer_id": consumerId, "success_call_back": IdentityLogin.successCallbackUrl});
140+
var param = $.param({"oauth_consumer_key": consumerKey, "success_call_back": IdentityLogin.successCallbackUrl});
141141
IdentityLogin.win = window.open(identityCallbackUrl + '?' + param, '',
142142
'top=' + IdentityLogin.Constants.TOP +
143143
', left=' + IdentityLogin.Constants.LEFT +
@@ -205,7 +205,7 @@ define([
205205
}
206206

207207
var identityLinkUrl = null,
208-
consumerId = null,
208+
consumerKey = null,
209209
popupHtml = null,
210210
popup = $('#integration-popup-container');
211211

@@ -215,15 +215,15 @@ define([
215215
result;
216216

217217
identityLinkUrl = resultObj['identity_link_url'];
218-
consumerId = resultObj['consumer_id'];
218+
consumerKey = resultObj['oauth_consumer_key'];
219219
popupHtml = resultObj['popup_content'];
220220

221221
} catch (e) {
222222
//This is expected if result is not json. Do nothing.
223223
}
224224

225-
if (identityLinkUrl && consumerId && popupHtml) {
226-
IdentityLogin.invokePopup(identityLinkUrl, consumerId, popup);
225+
if (identityLinkUrl && consumerKey && popupHtml) {
226+
IdentityLogin.invokePopup(identityLinkUrl, consumerKey, popup);
227227
} else {
228228
popupHtml = result;
229229
}

app/code/Magento/Quote/Model/Cart/TotalsConverter.php

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@ public function __construct(
2727
$this->factory = $factory;
2828
}
2929

30-
3130
/**
3231
* @param \Magento\Quote\Model\Quote\Address\Total[] $addressTotals
3332
* @return \Magento\Quote\Api\Data\TotalSegmentInterface[]
@@ -44,7 +43,7 @@ public function process($addressTotals)
4443
TotalSegmentInterface::AREA => $addressTotal->getArea(),
4544
];
4645
if (is_object($addressTotal->getTitle())) {
47-
$pureData[TotalSegmentInterface::TITLE] = $addressTotal->getTitle()->getText();
46+
$pureData[TotalSegmentInterface::TITLE] = $addressTotal->getTitle()->render();
4847
}
4948
/** @var \Magento\Quote\Model\Cart\TotalSegment $total */
5049
$total = $this->factory->create();
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
<?php
2+
/**
3+
* Copyright © 2016 Magento. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
7+
namespace Magento\Sales\Model\ResourceModel\Order\Creditmemo\Grid;
8+
9+
use Magento\Framework\Data\Collection\Db\FetchStrategyInterface as FetchStrategy;
10+
use Magento\Framework\Data\Collection\EntityFactoryInterface as EntityFactory;
11+
use Magento\Framework\Event\ManagerInterface as EventManager;
12+
use Psr\Log\LoggerInterface as Logger;
13+
14+
class Collection extends \Magento\Framework\View\Element\UiComponent\DataProvider\SearchResult
15+
{
16+
/**
17+
* Initialize dependencies.
18+
*
19+
* @param EntityFactory $entityFactory
20+
* @param Logger $logger
21+
* @param FetchStrategy $fetchStrategy
22+
* @param EventManager $eventManager
23+
* @param string $mainTable
24+
* @param string $resourceModel
25+
*/
26+
public function __construct(
27+
EntityFactory $entityFactory,
28+
Logger $logger,
29+
FetchStrategy $fetchStrategy,
30+
EventManager $eventManager,
31+
$mainTable = 'sales_creditmemo_grid',
32+
$resourceModel = '\Magento\Sales\Model\ResourceModel\Order\Creditmemo'
33+
) {
34+
parent::__construct($entityFactory, $logger, $fetchStrategy, $eventManager, $mainTable, $resourceModel);
35+
}
36+
}
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
<?php
2+
/**
3+
* Copyright © 2016 Magento. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
7+
namespace Magento\Sales\Model\ResourceModel\Order\Creditmemo\Order\Grid;
8+
9+
use Magento\Framework\Data\Collection\Db\FetchStrategyInterface as FetchStrategy;
10+
use Magento\Framework\Data\Collection\EntityFactoryInterface as EntityFactory;
11+
use Magento\Framework\Event\ManagerInterface as EventManager;
12+
use Psr\Log\LoggerInterface as Logger;
13+
14+
class Collection extends \Magento\Framework\View\Element\UiComponent\DataProvider\SearchResult
15+
{
16+
/**
17+
* Initialize dependencies.
18+
*
19+
* @param EntityFactory $entityFactory
20+
* @param Logger $logger
21+
* @param FetchStrategy $fetchStrategy
22+
* @param EventManager $eventManager
23+
* @param string $mainTable
24+
* @param string $resourceModel
25+
*/
26+
public function __construct(
27+
EntityFactory $entityFactory,
28+
Logger $logger,
29+
FetchStrategy $fetchStrategy,
30+
EventManager $eventManager,
31+
$mainTable = 'sales_creditmemo_grid',
32+
$resourceModel = '\Magento\Sales\Model\ResourceModel\Order\Creditmemo'
33+
) {
34+
parent::__construct($entityFactory, $logger, $fetchStrategy, $eventManager, $mainTable, $resourceModel);
35+
}
36+
}
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
<?php
2+
/**
3+
* Copyright © 2016 Magento. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
7+
namespace Magento\Sales\Model\ResourceModel\Order\Invoice\Grid;
8+
9+
use Magento\Framework\Data\Collection\Db\FetchStrategyInterface as FetchStrategy;
10+
use Magento\Framework\Data\Collection\EntityFactoryInterface as EntityFactory;
11+
use Magento\Framework\Event\ManagerInterface as EventManager;
12+
use Psr\Log\LoggerInterface as Logger;
13+
14+
class Collection extends \Magento\Framework\View\Element\UiComponent\DataProvider\SearchResult
15+
{
16+
/**
17+
* Initialize dependencies.
18+
*
19+
* @param EntityFactory $entityFactory
20+
* @param Logger $logger
21+
* @param FetchStrategy $fetchStrategy
22+
* @param EventManager $eventManager
23+
* @param string $mainTable
24+
* @param string $resourceModel
25+
*/
26+
public function __construct(
27+
EntityFactory $entityFactory,
28+
Logger $logger,
29+
FetchStrategy $fetchStrategy,
30+
EventManager $eventManager,
31+
$mainTable = 'sales_invoice_grid',
32+
$resourceModel = '\Magento\Sales\Model\ResourceModel\Order\Invoice'
33+
) {
34+
parent::__construct($entityFactory, $logger, $fetchStrategy, $eventManager, $mainTable, $resourceModel);
35+
}
36+
}
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
<?php
2+
/**
3+
* Copyright © 2016 Magento. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
7+
namespace Magento\Sales\Model\ResourceModel\Order\Invoice\Orders\Grid;
8+
9+
use Magento\Framework\Data\Collection\Db\FetchStrategyInterface as FetchStrategy;
10+
use Magento\Framework\Data\Collection\EntityFactoryInterface as EntityFactory;
11+
use Magento\Framework\Event\ManagerInterface as EventManager;
12+
use Psr\Log\LoggerInterface as Logger;
13+
14+
class Collection extends \Magento\Framework\View\Element\UiComponent\DataProvider\SearchResult
15+
{
16+
/**
17+
* Initialize dependencies.
18+
*
19+
* @param EntityFactory $entityFactory
20+
* @param Logger $logger
21+
* @param FetchStrategy $fetchStrategy
22+
* @param EventManager $eventManager
23+
* @param string $mainTable
24+
* @param string $resourceModel
25+
*/
26+
public function __construct(
27+
EntityFactory $entityFactory,
28+
Logger $logger,
29+
FetchStrategy $fetchStrategy,
30+
EventManager $eventManager,
31+
$mainTable = 'sales_invoice_grid',
32+
$resourceModel = '\Magento\Sales\Model\ResourceModel\Order\Invoice'
33+
) {
34+
parent::__construct($entityFactory, $logger, $fetchStrategy, $eventManager, $mainTable, $resourceModel);
35+
}
36+
}
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
<?php
2+
/**
3+
* Copyright © 2016 Magento. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
7+
namespace Magento\Sales\Model\ResourceModel\Order\Shipment\Grid;
8+
9+
use Magento\Framework\Data\Collection\Db\FetchStrategyInterface as FetchStrategy;
10+
use Magento\Framework\Data\Collection\EntityFactoryInterface as EntityFactory;
11+
use Magento\Framework\Event\ManagerInterface as EventManager;
12+
use Psr\Log\LoggerInterface as Logger;
13+
14+
class Collection extends \Magento\Framework\View\Element\UiComponent\DataProvider\SearchResult
15+
{
16+
/**
17+
* Initialize dependencies.
18+
*
19+
* @param EntityFactory $entityFactory
20+
* @param Logger $logger
21+
* @param FetchStrategy $fetchStrategy
22+
* @param EventManager $eventManager
23+
* @param string $mainTable
24+
* @param string $resourceModel
25+
*/
26+
public function __construct(
27+
EntityFactory $entityFactory,
28+
Logger $logger,
29+
FetchStrategy $fetchStrategy,
30+
EventManager $eventManager,
31+
$mainTable = 'sales_shipment_grid',
32+
$resourceModel = '\Magento\Sales\Model\ResourceModel\Order\Shipment'
33+
) {
34+
parent::__construct($entityFactory, $logger, $fetchStrategy, $eventManager, $mainTable, $resourceModel);
35+
}
36+
}

0 commit comments

Comments
 (0)