handle stiuation when leader/helper wasn't previously allocated to the study group in any session

This commit is contained in:
Nathan Coad
2016-06-23 13:53:14 +10:00
parent 7288dd7b78
commit 94e7a7049f

View File

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