Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/matomo-org/matomo.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordizzy <diosmosis@users.noreply.github.com>2021-02-15 08:40:42 +0300
committerGitHub <noreply@github.com>2021-02-15 08:40:42 +0300
commit060d4a80d93bacfbebaf9b149404aeac11fcc30c (patch)
tree49e9c82e366cf1d793ba2360677381d71b7712ba
parentd81997eaf7ae120c2d0090f6505cae92e9a1b109 (diff)
do not end up creating done flags like "done." (#17215)
* do not end up creating done flags like "done." * Add update file * Fix LoaderTest. * fix test
-rw-r--r--core/ArchiveProcessor/Rules.php4
-rw-r--r--core/DataAccess/ArchiveSelector.php12
-rw-r--r--core/Updates/4.1.2-b2.php51
-rw-r--r--core/Version.php2
4 files changed, 62 insertions, 7 deletions
diff --git a/core/ArchiveProcessor/Rules.php b/core/ArchiveProcessor/Rules.php
index 24acf8a434..5a857a3eda 100644
--- a/core/ArchiveProcessor/Rules.php
+++ b/core/ArchiveProcessor/Rules.php
@@ -51,7 +51,9 @@ class Rules
*/
public static function getDoneStringFlagFor(array $idSites, $segment, $periodLabel, $plugin)
{
- if (!self::shouldProcessReportsAllPlugins($idSites, $segment, $periodLabel)) {
+ if (!empty($plugin)
+ && !self::shouldProcessReportsAllPlugins($idSites, $segment, $periodLabel)
+ ) {
return self::getDoneFlagArchiveContainsOnePlugin($segment, $plugin);
}
return self::getDoneFlagArchiveContainsAllPlugins($segment);
diff --git a/core/DataAccess/ArchiveSelector.php b/core/DataAccess/ArchiveSelector.php
index 3add5cee7d..d2c03e74f7 100644
--- a/core/DataAccess/ArchiveSelector.php
+++ b/core/DataAccess/ArchiveSelector.php
@@ -70,9 +70,10 @@ class ArchiveSelector
$requestedPlugin = $params->getRequestedPlugin();
$segment = $params->getSegment();
$plugins = array("VisitsSummary", $requestedPlugin);
+ $plugins = array_filter($plugins);
$doneFlags = Rules::getDoneFlags($plugins, $segment);
- $requestedPluginDoneFlags = Rules::getDoneFlags([$requestedPlugin], $segment);
+ $requestedPluginDoneFlags = empty($requestedPlugin) ? [] : Rules::getDoneFlags([$requestedPlugin], $segment);
$doneFlagValues = Rules::getSelectableDoneFlagValues($includeInvalidated === null ? true : $includeInvalidated, $params, $includeInvalidated === null);
$results = self::getModel()->getArchiveIdAndVisits($numericTable, $idSite, $period, $dateStartIso, $dateEndIso, null, $doneFlags);
@@ -80,7 +81,8 @@ class ArchiveSelector
return [false, false, false, false, false];
}
- $result = self::findArchiveDataWithLatestTsArchived($results, $requestedPluginDoneFlags);
+ $result = self::findArchiveDataWithLatestTsArchived($results,
+ array_merge($requestedPluginDoneFlags, [Rules::getDoneFlagArchiveContainsAllPlugins($segment)]));
$tsArchived = isset($result['ts_archived']) ? $result['ts_archived'] : false;
$visits = isset($result['nb_visits']) ? $result['nb_visits'] : false;
@@ -394,10 +396,10 @@ class ArchiveSelector
* - the doneFlag value for the latest archive
*
* @param $results
- * @param $requestedPluginDoneFlags
+ * @param $doneFlags
* @return array
*/
- private static function findArchiveDataWithLatestTsArchived($results, $requestedPluginDoneFlags)
+ private static function findArchiveDataWithLatestTsArchived($results, $doneFlags)
{
// find latest idarchive for each done flag
$idArchives = [];
@@ -416,7 +418,7 @@ class ArchiveSelector
];
foreach ($results as $result) {
- if (in_array($result['name'], $requestedPluginDoneFlags)
+ if (in_array($result['name'], $doneFlags)
&& in_array($result['idarchive'], $idArchives)
) {
$archiveData = $result;
diff --git a/core/Updates/4.1.2-b2.php b/core/Updates/4.1.2-b2.php
new file mode 100644
index 0000000000..0c38c38480
--- /dev/null
+++ b/core/Updates/4.1.2-b2.php
@@ -0,0 +1,51 @@
+<?php
+/**
+ * Matomo - free/libre analytics platform
+ *
+ * @link https://matomo.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
+ *
+ */
+
+namespace Piwik\Updates;
+
+use Piwik\Container\StaticContainer;
+use Piwik\CronArchive;
+use Piwik\DataAccess\ArchiveTableCreator;
+use Piwik\Date;
+use Piwik\Plugins\SegmentEditor\API;
+use Piwik\Archive\ArchiveInvalidator;
+use Piwik\ArchiveProcessor\Rules;
+use Piwik\Updater;
+use Piwik\Updates as PiwikUpdates;
+use Piwik\Updater\Migration\Factory as MigrationFactory;
+
+class Updates_4_1_2_b2 extends PiwikUpdates
+{
+ /**
+ * @var MigrationFactory
+ */
+ private $migration;
+
+ public function __construct(MigrationFactory $factory)
+ {
+ $this->migration = $factory;
+ }
+
+ public function doUpdate(Updater $updater)
+ {
+ $updater->executeMigrations(__FILE__, $this->getMigrations($updater));
+ }
+
+ public function getMigrations(Updater $updater)
+ {
+ $migrations = [];
+
+ $tables = ArchiveTableCreator::getTablesArchivesInstalled('numeric');
+ foreach ($tables as $table) {
+ $migrations[] = $this->migration->db->sql("UPDATE `$table` SET `name` = 'done' WHERE `name` = 'done.'");
+ }
+
+ return $migrations;
+ }
+} \ No newline at end of file
diff --git a/core/Version.php b/core/Version.php
index 43cbfddc57..446e88ff5f 100644
--- a/core/Version.php
+++ b/core/Version.php
@@ -20,7 +20,7 @@ final class Version
* The current Matomo version.
* @var string
*/
- const VERSION = '4.1.2-b1';
+ const VERSION = '4.1.2-b2';
const MAJOR_VERSION = 4;
public function isStableVersion($version)