From 55bdc52c388dfe214942fa5183294988f1b743f4 Mon Sep 17 00:00:00 2001 From: Loz Calver Date: Tue, 22 Jan 2019 14:15:00 +0000 Subject: [PATCH] FIX: Remove unnecessary "version mismatch" restriction (fixes #282) --- src/GridFieldOrderableRows.php | 16 +--------------- 1 file changed, 1 insertion(+), 15 deletions(-) diff --git a/src/GridFieldOrderableRows.php b/src/GridFieldOrderableRows.php index d8c5e0ce..24029d9f 100755 --- a/src/GridFieldOrderableRows.php +++ b/src/GridFieldOrderableRows.php @@ -588,25 +588,11 @@ protected function reorderItems($list, array $values, array $sortedIDs) // Model has sort column and is versioned - handle as versioned // Model has sort column and is NOT versioned - handle as NOT versioned // Model doesn't have sort column because sort column is on ManyManyList - handle as NOT versioned - // Model doesn't have sort column because sort column is on ManyManyThroughList... - // - Related item is not versioned: - // - Through object is versioned: THROW an error. - // - Through object is NOT versioned: handle as NOT versioned - // - Related item is versioned... - // - Through object is versioned: handle as versioned - // - Through object is NOT versioned: THROW an error. + // Model doesn't have sort column because sort column is on ManyManyThroughList - inspect through object if ($list instanceof ManyManyThroughList) { - $listClassVersioned = $class::create()->hasExtension(Versioned::class); // We'll be updating the join class, not the relation class. $class = $this->getManyManyInspector($list)->getJoinClass(); $isVersioned = $class::create()->hasExtension(Versioned::class); - - // If one side of the relationship is versioned and the other is not, throw an error. - if ($listClassVersioned xor $isVersioned) { - throw new Exception( - 'ManyManyThrough cannot mismatch Versioning between join class and related class' - ); - } } elseif (!$this->isManyMany($list)) { $isVersioned = $class::create()->hasExtension(Versioned::class); }