From 9cfeaf5b0c351f089f9e2405c88efdf6ca743aa4 Mon Sep 17 00:00:00 2001 From: Vincent Vanwaelscappel Date: Wed, 22 Nov 2023 09:50:18 +0100 Subject: [PATCH] wip #6501 @0.5 --- .../Commands/FluidbookDocumentSetRegion.php | 37 +++++++++++++++++++ app/Console/Commands/WorkshopMigration.php | 3 ++ app/Models/FluidbookPublication.php | 15 ++++++++ 3 files changed, 55 insertions(+) create mode 100644 app/Console/Commands/FluidbookDocumentSetRegion.php diff --git a/app/Console/Commands/FluidbookDocumentSetRegion.php b/app/Console/Commands/FluidbookDocumentSetRegion.php new file mode 100644 index 000000000..428b95085 --- /dev/null +++ b/app/Console/Commands/FluidbookDocumentSetRegion.php @@ -0,0 +1,37 @@ +whereNot('region', $default)->get() as $fluidbook) { + /** @var $fluidbook FluidbookPublication */ + $r = $fluidbook->region; + + if (!isset($regions[$r])) { + $regions[$r] = []; + } + $regions[$r] += $fluidbook->getDocumentsId(); + + } + + DB::table('fluidbook_document')->update(['region' => $default]); + foreach ($regions as $region => $documents) { + DB::table('fluidbook_document')->whereIn('id', $documents)->update(['region' => $region]); + } + } +} diff --git a/app/Console/Commands/WorkshopMigration.php b/app/Console/Commands/WorkshopMigration.php index c5e037c5f..befce7197 100644 --- a/app/Console/Commands/WorkshopMigration.php +++ b/app/Console/Commands/WorkshopMigration.php @@ -307,7 +307,10 @@ class WorkshopMigration extends CubistCommand } catch (\Exception $e) { dd($e); } + } + + Artisan::call('fluidbook:document:setregion'); } protected function _normalizeLang($lang) diff --git a/app/Models/FluidbookPublication.php b/app/Models/FluidbookPublication.php index 81ecbc118..d15b0552b 100644 --- a/app/Models/FluidbookPublication.php +++ b/app/Models/FluidbookPublication.php @@ -443,6 +443,18 @@ class FluidbookPublication extends ToolboxStatusModel } + public function getDocumentsId() + { + $res = []; + if (null === $this->getComposition()) { + return []; + } + foreach ($this->getComposition() as $page) { + $res[$page[0]] = true; + } + return array_keys($res); + } + public function getDocumentSizes() { if (null === $this->_documentsSize) { @@ -956,6 +968,9 @@ class FluidbookPublication extends ToolboxStatusModel public function getComposition() { $res = $this->_getCompositionAttribute('composition'); + if (null === $res) { + return []; + } return $res; } -- 2.39.5