$key,
'Participant'
);
+ foreach (array_keys($value) as $fieldName) {
+ // Unset the original custom field now that it has been formatting to the 'custom'
+ // array as it may not be in the right format for the api as is (notably for
+ // multiple checkbox values).
+ if (substr($fieldName, 0, 7) === 'custom_') {
+ unset($value[$fieldName]);
+ }
+ }
$value['id'] = $key;
class CRM_Event_Form_Task_BatchTest extends CiviUnitTestCase {
public function testSubmit() {
+ $group = $this->CustomGroupCreate(['extends' => 'Participant', 'title' => 'Participant']);
+ $field = $this->customFieldCreate(['custom_group_id' => $group['id'], 'html_type' => 'CheckBox', 'option_values' => ['two' => 'A couple', 'three' => 'A few', 'four' => 'Too Many']]);
$participantID = $this->participantCreate();
$participant = $this->callAPISuccessGetSingle('Participant', ['id' => $participantID]);
$this->assertEquals(2, $participant['participant_status_id']);
$form = $this->getFormObject('CRM_Event_Form_Task_Batch');
- $form->submit(['field' => [$participantID => ['participant_status_id' => 1]]]);
+ $form->submit(['field' => [$participantID => ['participant_status_id' => 1, 'custom_' . $field['id'] => ['two' => 1, 'four' => 1]]]]);
$participant = $this->callAPISuccessGetSingle('Participant', ['id' => $participantID]);
$this->assertEquals(1, $participant['participant_status_id']);
}
+
}