From: Vincent Vanwaelscappel Date: Wed, 22 Nov 2023 08:50:18 +0000 (+0100) Subject: wip #6501 @0.5 X-Git-Url: http://git.cubedesigners.com/?a=commitdiff_plain;h=9cfeaf5b0c351f089f9e2405c88efdf6ca743aa4;p=fluidbook-toolbox.git wip #6501 @0.5 --- 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; }