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:
Ingo Schommer 2012-03-06 00:58:44 +01:00
parent bb6d4c506e
commit 1201f6c8bb
3 changed files with 5 additions and 1 deletions

View File

@ -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) {

View File

@ -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) {

View File

@ -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');