diff --git a/code/MemberTableField.php b/code/MemberTableField.php index cda10b77..93ce7090 100755 --- a/code/MemberTableField.php +++ b/code/MemberTableField.php @@ -308,15 +308,11 @@ class MemberTableField extends ComplexTableField { $className = $this->sourceClass(); $childData = new $className(); + // Needs to write before saveInto() to ensure the 'Groups' TreeMultiselectField saves + $childData->write(); + $form->saveInto($childData); $childData->write(); - - // Only write group if no specific assignments have been set - if(isset($data['Groups']) && $data['Groups']) { - $childData->Groups()->setByIDList(explode(',', $data['Groups'])); - } else { - $childData->Groups()->add($data['GroupID']); - } $closeLink = sprintf( '(%s)', @@ -452,19 +448,6 @@ class MemberTableField_Item extends ComplexTableField_Item { class MemberTableField_ItemRequest extends ComplexTableField_ItemRequest { - function saveComplexTableField($data, $form, $request) { - parent::saveComplexTableField($data, $form, $request); - - $childData = $this->dataObj(); - - // Only write group if no specific assignments have been set - if(isset($data['Groups']) && $data['Groups']) { - $childData->Groups()->setByIDList(explode(',', $data['Groups'])); - } else { - $childData->Groups()->add($data['GroupID']); - } - } - /** * Deleting an item from a member table field should just remove that member from the group */