handle stiuation when leader/helper wasn't previously allocated to the study group in any session
This commit is contained in:
@@ -399,17 +399,40 @@ function booking_studygroup_leadhelp_edit_form_submit($form, &$form_state) {
|
||||
$person_nid = $matches[1];
|
||||
//if $person is now different, run an update query
|
||||
if ($person_nid != $previous_value) {
|
||||
$update_messages[] = t("Adding role @role to nid @id in group @group and session @session.",
|
||||
array('@id' => $person_nid, '@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', $person_nid)
|
||||
->execute();
|
||||
//check if this person is already a member of this studygroup
|
||||
$group_query = db_query("SELECT * FROM {booking_studygroup_mapping} " .
|
||||
"WHERE booking_eventid = :eid AND booking_node_id = :nid AND booking_studygroup_id = :gid",
|
||||
array(':eid' => $event->eid, ':nid' => $person_nid, ':gid' => $group_id))
|
||||
->fetchObject();
|
||||
|
||||
if (! $group_query) {
|
||||
//this person doesn't seem to already be in this study group so insert a record
|
||||
$update_messages[] = t("Adding via insert: role @role to nid @id in group @group and session @session.",
|
||||
array('@id' => $person_nid, '@group' => $group_id, '@role' => $type_id, '@session' => $session_id));
|
||||
db_insert('booking_studygroup_mapping')
|
||||
->fields(array(
|
||||
'booking_eventid' => $event->eid,
|
||||
'booking_node_id' => $person_nid,
|
||||
'booking_studygroup_id' => $group_id,
|
||||
'booking_session_id' => $session_id,
|
||||
'booking_studygroup_role' => $type_id,
|
||||
))
|
||||
->execute();
|
||||
}
|
||||
else {
|
||||
//update the role for the new person
|
||||
$update_messages[] = t("Adding via update: role @role to nid @id in group @group and session @session.",
|
||||
array('@id' => $person_nid, '@group' => $group_id, '@role' => $type_id, '@session' => $session_id));
|
||||
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', $person_nid)
|
||||
->execute();
|
||||
}
|
||||
|
||||
$counter++;
|
||||
//remove the role from the old person if there was someone else there before
|
||||
if ($previous_value != 0) {
|
||||
|
Reference in New Issue
Block a user