diff --git a/upgrades/7.4.4-7.4.5/data.json b/upgrades/7.4.4-7.4.5/data.json new file mode 100644 index 0000000000..2c63c08510 --- /dev/null +++ b/upgrades/7.4.4-7.4.5/data.json @@ -0,0 +1,2 @@ +{ +} diff --git a/upgrades/7.4.4-7.4.5/scripts/AfterUpgrade.php b/upgrades/7.4.4-7.4.5/scripts/AfterUpgrade.php new file mode 100644 index 0000000000..ee12edbff7 --- /dev/null +++ b/upgrades/7.4.4-7.4.5/scripts/AfterUpgrade.php @@ -0,0 +1,80 @@ +updateMetadata($container->get('metadata')); + } + + private function updateMetadata(Metadata $metadata): void + { + $this->updateEventMetadata($metadata); + + $metadata->save(); + } + + private function updateEventMetadata(Metadata $metadata): void + { + $defs = $metadata->get(['scopes']); + + foreach ($defs as $entityType => $item) { + $isCustom = $item['isCustom'] ?? false; + $type = $item['type'] ?? false; + + if (!$isCustom || $type !== Event::TEMPLATE_TYPE) { + continue; + } + + if (!is_string($metadata->get(['entityDefs', $entityType, 'fields', 'duration', 'select']))) { + continue; + } + + $metadata->delete('entityDefs', $entityType, 'fields.duration.orderBy'); + + $metadata->set('entityDefs', $entityType, [ + 'fields' => [ + 'duration' => [ + 'select' => [ + 'select' => "TIMESTAMPDIFF_SECOND:(dateStart, dateEnd)" + ], + 'order' => [ + 'order' => [["TIMESTAMPDIFF_SECOND:(dateStart, dateEnd)", "{direction}"]] + ], + ] + ] + ]); + } + } +} diff --git a/upgrades/7.4/scripts/AfterUpgrade.php b/upgrades/7.4/scripts/AfterUpgrade.php index 7e68c453f0..7cebd3be4b 100644 --- a/upgrades/7.4/scripts/AfterUpgrade.php +++ b/upgrades/7.4/scripts/AfterUpgrade.php @@ -102,8 +102,6 @@ class AfterUpgrade ] ] ]); - - $metadata->save(); } } }