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'];
|
$values = $form_state['input'];
|
||||||
$group_id = $form_state['values']['booking_gid'];
|
$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)));
|
watchdog('booking_debug', "<pre>Studygroup leader/helper test submission form :\n@info</pre>", array('@info' => print_r( $form_state, true)));
|
||||||
|
|
||||||
$role_types = array(
|
$role_types = array(
|
||||||
@@ -372,6 +375,7 @@ function booking_studygroup_leadhelp_edit_form_submit($form, &$form_state) {
|
|||||||
foreach ($role_types as $type => $type_id) {
|
foreach ($role_types as $type => $type_id) {
|
||||||
//iterate over the sessions for that role type
|
//iterate over the sessions for that role type
|
||||||
foreach ($values[$type] as $session_id => $person) {
|
foreach ($values[$type] as $session_id => $person) {
|
||||||
|
$message = "";
|
||||||
//get the previous value
|
//get the previous value
|
||||||
$previous_value = _booking_studygroup_leadhelp_edit_get_previous_value($form, $type, $type . '[' . $session_id . ']');
|
$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>",
|
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
|
//compare it against $person
|
||||||
//if $person is now empty, set the person's role to zero
|
//if $person is now empty, set the person's role to zero
|
||||||
if (empty($person) && $previous_value != 0) {
|
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));
|
array('@id' => $previous_value, '@group' => $group_id, '@role' => $type_id));
|
||||||
db_update('booking_studygroup_mapping')
|
db_update('booking_studygroup_mapping')
|
||||||
->fields(array(
|
->fields(array(
|
||||||
@@ -388,18 +392,45 @@ function booking_studygroup_leadhelp_edit_form_submit($form, &$form_state) {
|
|||||||
->condition('booking_studygroup_id', $group_id)
|
->condition('booking_studygroup_id', $group_id)
|
||||||
->condition('booking_node_id', $previous_value)
|
->condition('booking_node_id', $previous_value)
|
||||||
->execute();
|
->execute();
|
||||||
|
$counter++;
|
||||||
}
|
}
|
||||||
elseif (!empty($person)) {
|
elseif (!empty($person)) {
|
||||||
preg_match('/[\s\w,]+\s\[(\d+)\]/i', $person, $matches);
|
preg_match('/[\s\w,]+\s\[(\d+)\]/i', $person, $matches);
|
||||||
$person_nid = $matches[1];
|
$person_nid = $matches[1];
|
||||||
//if $person is now different, run an update query
|
//if $person is now different, run an update query
|
||||||
if ($person_nid != $previous_value) {
|
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