mirror of
https://github.com/silverstripe/silverstripe-framework
synced 2024-10-22 12:05:37 +00:00
BUGFIX Saving records in ListboxField->saveInto() and PermissionCheckboxSetField->saveInto() so we have a database ID to relate to (was previously customised in MemberTableField->saveComplexTableField(), which is now deprecated)
This commit is contained in:
parent
bb6d4c506e
commit
1201f6c8bb
@ -174,6 +174,7 @@ class ListboxField extends DropdownField {
|
||||
$fieldname = $this->name;
|
||||
if($fieldname && $record && ($record->has_many($fieldname) || $record->many_many($fieldname))) {
|
||||
$idList = (is_array($this->value)) ? array_values($this->value) : array();
|
||||
if(!$record->ID) $record->write(); // record needs to have an ID in order to set relationships
|
||||
$record->$fieldname()->setByIDList($idList);
|
||||
} elseif($fieldname && $record) {
|
||||
if($this->value) {
|
||||
|
@ -226,6 +226,9 @@ class PermissionCheckboxSetField extends FormField {
|
||||
}
|
||||
|
||||
if($fieldname && $record && ($record->has_many($fieldname) || $record->many_many($fieldname))) {
|
||||
|
||||
if(!$record->ID) $record->write(); // We need a record ID to write permissions
|
||||
|
||||
$idList = array();
|
||||
if($this->value) foreach($this->value as $id => $bool) {
|
||||
if($bool) {
|
||||
|
@ -344,7 +344,7 @@ class MemberTest extends FunctionalTest {
|
||||
|
||||
$grouplessMember->addToGroupByCode('memberless');
|
||||
|
||||
$this->assertEquals($memberlessGroup->Members()->Count(), 1);
|
||||
$this->assertEquals($memberlessGroup->Members()->Count(), 0);
|
||||
$this->assertEquals($grouplessMember->Groups()->Count(), 1);
|
||||
|
||||
$grouplessMember->addToGroupByCode('somegroupthatwouldneverexist', 'New Group');
|
||||
|
Loading…
x
Reference in New Issue
Block a user