add update code for leader/helper edit form
This commit is contained in:
@@ -361,6 +361,9 @@ function booking_studygroup_leadhelp_edit_form_submit($form, &$form_state) {
|
||||
|
||||
$values = $form_state['input'];
|
||||
$group_id = $form_state['values']['booking_gid'];
|
||||
$update_messages = array();
|
||||
$message = "";
|
||||
$counter = 0;
|
||||
watchdog('booking_debug', "<pre>Studygroup leader/helper test submission form :\n@info</pre>", array('@info' => print_r( $form_state, true)));
|
||||
|
||||
$role_types = array(
|
||||
@@ -372,6 +375,7 @@ function booking_studygroup_leadhelp_edit_form_submit($form, &$form_state) {
|
||||
foreach ($role_types as $type => $type_id) {
|
||||
//iterate over the sessions for that role type
|
||||
foreach ($values[$type] as $session_id => $person) {
|
||||
$message = "";
|
||||
//get the previous value
|
||||
$previous_value = _booking_studygroup_leadhelp_edit_get_previous_value($form, $type, $type . '[' . $session_id . ']');
|
||||
watchdog('booking_debug', "<pre>Studygroup assignment previous value:\n@info\nCurrent value:\n@current</pre>",
|
||||
@@ -379,7 +383,7 @@ function booking_studygroup_leadhelp_edit_form_submit($form, &$form_state) {
|
||||
//compare it against $person
|
||||
//if $person is now empty, set the person's role to zero
|
||||
if (empty($person) && $previous_value != 0) {
|
||||
watchdog('booking', "Clearing leader/helper role for nid @id and group @group. Used to have role @role.",
|
||||
$message = t('booking', "Clearing leader/helper role for nid @id and group @group. Used to have role @role.",
|
||||
array('@id' => $previous_value, '@group' => $group_id, '@role' => $type_id));
|
||||
db_update('booking_studygroup_mapping')
|
||||
->fields(array(
|
||||
@@ -388,18 +392,45 @@ function booking_studygroup_leadhelp_edit_form_submit($form, &$form_state) {
|
||||
->condition('booking_studygroup_id', $group_id)
|
||||
->condition('booking_node_id', $previous_value)
|
||||
->execute();
|
||||
$counter++;
|
||||
}
|
||||
elseif (!empty($person)) {
|
||||
preg_match('/[\s\w,]+\s\[(\d+)\]/i', $person, $matches);
|
||||
$person_nid = $matches[1];
|
||||
//if $person is now different, run an update query
|
||||
if ($person_nid != $previous_value) {
|
||||
|
||||
$message = t('booking', "Adding role @role to nid @id in group @group and session @session.",
|
||||
array('@id' => $previous_value, '@group' => $group_id, '@role' => $type_id, '@session' => $session_id));
|
||||
//add the role to the new person
|
||||
db_update('booking_studygroup_mapping')
|
||||
->fields(array(
|
||||
'booking_studygroup_role' => $type_id,
|
||||
'booking_session_id' => $session_id,
|
||||
))
|
||||
->condition('booking_studygroup_id', $group_id)
|
||||
->condition('booking_node_id', $previous_value)
|
||||
//->condition('booking_session_id', $session_id)
|
||||
->execute();
|
||||
//remove the role from the old person
|
||||
$message = t('booking', "Removing role @role from nid @id in group @group and session @session.",
|
||||
array('@id' => $previous_value, '@group' => $group_id, '@role' => $type_id, '@session' => $session_id));
|
||||
db_update('booking_studygroup_mapping')
|
||||
->fields(array(
|
||||
'booking_studygroup_role' => 0,
|
||||
))
|
||||
->condition('booking_studygroup_id', $group_id)
|
||||
->condition('booking_node_id', $previous_value)
|
||||
->execute()
|
||||
$counter++;
|
||||
}
|
||||
}
|
||||
$update_messages[] = $message;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
$final_message = "Updated $counter leader/helper roles for study group id $group_id";
|
||||
drupal_set_message($final_message, 'status', FALSE);
|
||||
watchdog('booking', "<pre>" . $final_message . "\n" . implode("\n", $update_messages) . "</pre>");
|
||||
}
|
||||
|
||||
/**
|
||||
|
Reference in New Issue
Block a user