updated core from 8.4 to 8.5 : bug with login_destination

This commit is contained in:
Bachir Soussi Chiadmi
2018-03-13 14:01:21 +01:00
parent 0d78da249b
commit e668535a4e
3486 changed files with 89604 additions and 33283 deletions
@@ -0,0 +1,26 @@
id: statistics_node_counter
label: Node counter
migration_tags:
- Drupal 6
- Drupal 7
- Content
source:
plugin: node_counter
process:
nid:
-
plugin: migration_lookup
migration: [d6_node, d7_node]
source: nid
-
plugin: skip_on_empty
method: row
totalcount: totalcount
daycount: daycount
timestamp: timestamp
destination:
plugin: node_counter
migration_dependencies:
optional:
- d6_node
- d7_node
@@ -3,6 +3,7 @@ label: Statistics configuration
migration_tags:
- Drupal 6
- Drupal 7
- Configuration
source:
plugin: variable
variables:
@@ -194,11 +194,7 @@ class StatisticsPopularBlock extends BlockBase implements ContainerFactoryPlugin
$items = [];
foreach ($nids as $nid) {
$node = $this->entityRepository->getTranslationFromContext($nodes[$nid]);
$item = [
'#type' => 'link',
'#title' => $node->getTitle(),
'#url' => $node->urlInfo('canonical'),
];
$item = $node->toLink()->toRenderable();
$this->renderer->addCacheableDependency($item, $node);
$items[] = $item;
}
@@ -0,0 +1,96 @@
<?php
namespace Drupal\statistics\Plugin\migrate\destination;
use Drupal\Core\Database\Connection;
use Drupal\Core\Plugin\ContainerFactoryPluginInterface;
use Drupal\migrate\Plugin\migrate\destination\DestinationBase;
use Drupal\migrate\Plugin\MigrationInterface;
use Drupal\migrate\Row;
use Symfony\Component\DependencyInjection\ContainerInterface;
/**
* Destination for node counter.
*
* @MigrateDestination(
* id = "node_counter",
* destination_module = "statistics"
* )
*/
class NodeCounter extends DestinationBase implements ContainerFactoryPluginInterface {
/**
* The database connection.
*
* @var \Drupal\Core\Database\Connection
*/
protected $connection;
/**
* Constructs a node counter plugin.
*
* @param array $configuration
* Plugin configuration.
* @param string $plugin_id
* The plugin ID.
* @param mixed $plugin_definition
* The plugin definition.
* @param \Drupal\migrate\Plugin\MigrationInterface $migration
* The current migration.
* @param \Drupal\Core\Database\Connection $connection
* The database connection.
*/
public function __construct(array $configuration, $plugin_id, $plugin_definition, MigrationInterface $migration, Connection $connection) {
parent::__construct($configuration, $plugin_id, $plugin_definition, $migration);
$this->connection = $connection;
}
/**
* {@inheritdoc}
*/
public static function create(ContainerInterface $container, array $configuration, $plugin_id, $plugin_definition, MigrationInterface $migration = NULL) {
return new static(
$configuration,
$plugin_id,
$plugin_definition,
$migration,
$container->get('database')
);
}
/**
* {@inheritdoc}
*/
public function getIds() {
return ['nid' => ['type' => 'integer']];
}
/**
* {@inheritdoc}
*/
public function fields(MigrationInterface $migration = NULL) {
return [
'nid' => $this->t('The ID of the node to which these statistics apply.'),
'totalcount' => $this->t('The total number of times the node has been viewed.'),
'daycount' => $this->t('The total number of times the node has been viewed today.'),
'timestamp' => $this->t('The most recent time the node has been viewed.'),
];
}
/**
* {@inheritdoc}
*/
public function import(Row $row, array $old_destination_id_values = []) {
$this->connection
->insert('node_counter')
->fields([
'nid' => $row->getDestinationProperty('nid'),
'daycount' => $row->getDestinationProperty('daycount'),
'totalcount' => $row->getDestinationProperty('totalcount'),
'timestamp' => $row->getDestinationProperty('timestamp'),
])
->execute();
return [$row->getDestinationProperty('nid')];
}
}
@@ -0,0 +1,44 @@
<?php
namespace Drupal\statistics\Plugin\migrate\source;
use Drupal\migrate_drupal\Plugin\migrate\source\DrupalSqlBase;
/**
* Node counter source from database.
*
* @MigrateSource(
* id = "node_counter",
* source_module = "statistics"
* )
*/
class NodeCounter extends DrupalSqlBase {
/**
* {@inheritdoc}
*/
public function query() {
return $this->select('node_counter', 'nc')->fields('nc');
}
/**
* {@inheritdoc}
*/
public function fields() {
return [
'nid' => $this->t('The node ID.'),
'totalcount' => $this->t('The total number of times the node has been viewed.'),
'daycount' => $this->t('The total number of times the node has been viewed today.'),
'timestamp' => $this->t('The most recent time the node has been viewed.'),
];
}
/**
* {@inheritdoc}
*/
public function getIds() {
$ids['nid']['type'] = 'integer';
return $ids;
}
}
@@ -10,6 +10,8 @@ use Symfony\Component\DependencyInjection\ContainerInterface;
/**
* Configure statistics settings for this site.
*
* @internal
*/
class StatisticsSettingsForm extends ConfigFormBase {
@@ -42,8 +42,8 @@ class IntegrationTest extends ViewTestBase {
*/
public static $testViews = ['test_statistics_integration'];
protected function setUp() {
parent::setUp();
protected function setUp($import_test_views = TRUE) {
parent::setUp($import_test_views);
ViewTestData::createTestViews(get_class($this), ['statistics_test_views']);
+3 -3
View File
@@ -8,8 +8,8 @@ configure: statistics.settings
dependencies:
- node
# Information added by Drupal.org packaging script on 2018-01-03
version: '8.4.4'
# Information added by Drupal.org packaging script on 2018-03-07
version: '8.5.0'
core: '8.x'
project: 'drupal'
datestamp: 1515021228
datestamp: 1520457825
@@ -8,8 +8,8 @@ dependencies:
- statistics
- views
# Information added by Drupal.org packaging script on 2018-01-03
version: '8.4.4'
# Information added by Drupal.org packaging script on 2018-03-07
version: '8.5.0'
core: '8.x'
project: 'drupal'
datestamp: 1515021228
datestamp: 1520457825
@@ -0,0 +1,77 @@
<?php
namespace Drupal\Tests\statistics\Kernel\Migrate\d6;
use Drupal\Tests\migrate_drupal\Kernel\d6\MigrateDrupal6TestBase;
/**
* Tests the migration of node counter data to Drupal 8.
*
* @group statistics
*/
class MigrateNodeCounterTest extends MigrateDrupal6TestBase {
/**
* {@inheritdoc}
*/
public static $modules = [
'menu_ui',
'node',
'statistics',
'text',
];
/**
* {@inheritdoc}
*/
protected function setUp() {
parent::setUp();
$this->installEntitySchema('node');
$this->installConfig('node');
$this->installSchema('statistics', ['node_counter']);
$this->executeMigrations([
'd6_filter_format',
'd6_user_role',
'd6_node_settings',
'd6_user',
'd6_node_type',
'd6_node',
'statistics_node_counter'
]);
}
/**
* Tests migration of node counter.
*/
public function testStatisticsSettings() {
$this->assertNodeCounter(1, 2, 0, 1421727536);
$this->assertNodeCounter(2, 1, 0, 1471428059);
$this->assertNodeCounter(3, 1, 0, 1471428153);
$this->assertNodeCounter(4, 1, 1, 1478755275);
$this->assertNodeCounter(5, 1, 1, 1478755314);
}
/**
* Asserts various aspects of a node counter.
*
* @param int $nid
* The node ID.
* @param int $total_count
* The expected total count.
* @param int $day_count
* The expected day count.
* @param int $timestamp
* The expected timestamp.
*/
protected function assertNodeCounter($nid, $total_count, $day_count, $timestamp) {
/** @var \Drupal\statistics\StatisticsViewsResult $statistics */
$statistics = $this->container->get('statistics.storage.node')->fetchView($nid);
// @todo Remove casting after https://www.drupal.org/node/2926069 lands.
$this->assertSame($total_count, (int) $statistics->getTotalCount());
$this->assertSame($day_count, (int) $statistics->getDayCount());
$this->assertSame($timestamp, (int) $statistics->getTimestamp());
}
}
@@ -0,0 +1,73 @@
<?php
namespace Drupal\Tests\statistics\Kernel\Migrate\d7;
use Drupal\Tests\migrate_drupal\Kernel\d7\MigrateDrupal7TestBase;
/**
* Tests the migration of node counter data to Drupal 8.
*
* @group statistics
*/
class MigrateNodeCounterTest extends MigrateDrupal7TestBase {
/**
* {@inheritdoc}
*/
public static $modules = [
'menu_ui',
'node',
'statistics',
'text',
];
/**
* {@inheritdoc}
*/
protected function setUp() {
parent::setUp();
$this->installEntitySchema('node');
$this->installConfig('node');
$this->installSchema('statistics', ['node_counter']);
$this->executeMigrations([
'd7_user_role',
'd7_user',
'd7_node_type',
'd7_node',
'statistics_node_counter'
]);
}
/**
* Tests migration of node counter.
*/
public function testStatisticsSettings() {
$this->assertNodeCounter(1, 2, 0, 1421727536);
$this->assertNodeCounter(2, 1, 0, 1471428059);
$this->assertNodeCounter(4, 1, 1, 1478755275);
}
/**
* Asserts various aspects of a node counter.
*
* @param int $nid
* The node ID.
* @param int $total_count
* The expected total count.
* @param int $day_count
* The expected day count.
* @param int $timestamp
* The expected timestamp.
*/
protected function assertNodeCounter($nid, $total_count, $day_count, $timestamp) {
/** @var \Drupal\statistics\StatisticsViewsResult $statistics */
$statistics = $this->container->get('statistics.storage.node')->fetchView($nid);
// @todo Remove casting after https://www.drupal.org/node/2926069 lands.
$this->assertSame($total_count, (int) $statistics->getTotalCount());
$this->assertSame($day_count, (int) $statistics->getDayCount());
$this->assertSame($timestamp, (int) $statistics->getTimestamp());
}
}
@@ -0,0 +1,67 @@
<?php
namespace Drupal\Tests\statistics\Kernel\Plugin\migrate\source;
use Drupal\Tests\migrate\Kernel\MigrateSqlSourceTestBase;
/**
* Tests the node_counter source plugin.
*
* @covers \Drupal\statistics\Plugin\migrate\source\NodeCounter
*
* @group statistics
*/
class NodeCounterTest extends MigrateSqlSourceTestBase {
/**
* {@inheritdoc}
*/
public static $modules = ['migrate_drupal', 'statistics'];
/**
* {@inheritdoc}
*/
public function providerSource() {
$tests = [];
// The source data.
$tests[0]['source_data']['node_counter'] = [
[
'nid' => 1,
'totalcount' => 2,
'daycount' => 0,
'timestamp' => 1421727536,
],
[
'nid' => 2,
'totalcount' => 1,
'daycount' => 0,
'timestamp' => 1471428059,
],
[
'nid' => 3,
'totalcount' => 1,
'daycount' => 0,
'timestamp' => 1471428153,
],
[
'nid' => 4,
'totalcount' => 1,
'daycount' => 1,
'timestamp' => 1478755275,
],
[
'nid' => 5,
'totalcount' => 1,
'daycount' => 1,
'timestamp' => 1478755314,
],
];
// The expected results.
$tests[0]['expected_data'] = $tests[0]['source_data']['node_counter'];
return $tests;
}
}
@@ -4,8 +4,8 @@ description: 'Theme for testing attached library'
# version: VERSION
# core: 8.x
# Information added by Drupal.org packaging script on 2018-01-03
version: '8.4.4'
# Information added by Drupal.org packaging script on 2018-03-07
version: '8.5.0'
core: '8.x'
project: 'drupal'
datestamp: 1515021228
datestamp: 1520457825