From 8a2417a750ede29d4d4c5cb7db984a0d284027fd Mon Sep 17 00:00:00 2001 From: UndefinedOffset Date: Thu, 13 Dec 2018 14:05:12 -0400 Subject: [PATCH] Fixed functionality when using ManyManyThroughList --- src/Forms/GridFieldSortableRows.php | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/Forms/GridFieldSortableRows.php b/src/Forms/GridFieldSortableRows.php index 3b55fc7..1d9c7ab 100644 --- a/src/Forms/GridFieldSortableRows.php +++ b/src/Forms/GridFieldSortableRows.php @@ -22,6 +22,7 @@ use SilverStripe\ORM\DataObjectSchema; use SilverStripe\ORM\DataQuery; use SilverStripe\ORM\DB; use SilverStripe\ORM\ManyManyList; +use SilverStripe\ORM\ManyManyThroughList; use SilverStripe\ORM\RelationList; use SilverStripe\ORM\SS_List; use SilverStripe\ORM\UnsavedRelationList; @@ -231,8 +232,13 @@ class GridFieldSortableRows implements GridField_HTMLProvider, GridField_ActionP $many_many = ($list instanceof ManyManyList); if (!$many_many) { - $sng = singleton($gridField->getModelClass()); - $fieldType = $sng->config()->db[$this->sortColumn]; + if($list instanceof ManyManyThroughList) { + $fieldType = $list->getExtraFields(); + $fieldType = $fieldType[$this->sortColumn]; + } else { + $sng = singleton($gridField->getModelClass()); + $fieldType = $sng->config()->db[$this->sortColumn]; + } if (!$fieldType || !($fieldType == 'Int' || $fieldType == 'SilverStripe\\ORM\\FieldType\\DBInt' || is_subclass_of($fieldType, 'SilverStripe\\ORM\\FieldType\\DBInt'))) { if (is_array($fieldType)) {