From fcdca8b2ba489d93df6995d7423b61b5ec594967 Mon Sep 17 00:00:00 2001 From: nicolasconnault Date: Thu, 29 Mar 2007 08:36:53 +0000 Subject: [PATCH] MDL-9062: Completed the new form. --- group/edit.php | 11 ++++++++--- group/edit_form.php | 20 ++++++++++++++++++++ group/lib/groupinglib.php | 7 ++++--- 3 files changed, 32 insertions(+), 6 deletions(-) diff --git a/group/edit.php b/group/edit.php index dfbe5913bcf..b2569bb1508 100755 --- a/group/edit.php +++ b/group/edit.php @@ -20,6 +20,9 @@ $id = optional_param('id', false, PARAM_INT); $groupingid = optional_param('grouping', false, PARAM_INT); $newgrouping = optional_param('newgrouping', false, PARAM_INT); $courseid = required_param('courseid', PARAM_INT); +if ($groupingid === false) { + $groupingid = -1; +} $delete = optional_param('delete', false, PARAM_BOOL); @@ -68,11 +71,13 @@ if ($editform->is_cancelled()) { } else { $success = (bool)$id; $data->id = $id; + if ($groupingid) { + $success = $success && groups_add_group_to_grouping($id, $groupingid); + } } } elseif ($groupingid != $newgrouping) { // Moving group to new grouping - if ($groupingid != GROUP_NOT_IN_GROUPING) { - $success = $success && groups_remove_group_from_grouping($id, $groupingid); - } + $success = $success && groups_remove_group_from_grouping($id, $groupingid); + $success = $success && groups_add_group_to_grouping($id, $newgrouping); } else { // Updating group if (!groups_update_group($data, $course->id)) { print_error('groupnotupdated'); diff --git a/group/edit_form.php b/group/edit_form.php index eebf2a24aa1..b9af51f43f6 100644 --- a/group/edit_form.php +++ b/group/edit_form.php @@ -54,6 +54,26 @@ class group_edit_form extends moodleform { $buttonstr = get_string('save', 'group'); $mform->addElement('hidden','id', null); $mform->setType('id', PARAM_INT); + + // Options to move group to another grouping + $groupingids = groups_get_groupings($courseid); + + // Add pseudo-grouping "Not in a grouping" + $groupingids[] = GROUP_NOT_IN_GROUPING; + if ($groupingids) { + // Put the groupings into a hash and sort them + foreach($groupingids as $id) { + $listgroupings[$id] = groups_get_grouping_displayname($id, $courseid); + } + natcasesort($listgroupings); + $mform->addElement('select', 'newgrouping', get_string('addgroupstogrouping', 'group'), $listgroupings); + $mform->setDefault('newgrouping', $groupingid); + } + } + + if($groupingid) { + $mform->addElement('hidden', 'grouping', $groupingid); + $mform->setType('grouping', PARAM_INT); } $this->add_action_buttons(true, $buttonstr); diff --git a/group/lib/groupinglib.php b/group/lib/groupinglib.php index 7839835848f..e2cdc2c23ca 100644 --- a/group/lib/groupinglib.php +++ b/group/lib/groupinglib.php @@ -397,10 +397,11 @@ function groups_create_grouping($courseid, $groupingsettings = false) { */ function groups_add_group_to_grouping($groupid, $groupingid) { if (GROUP_NOT_IN_GROUPING == $groupingid) { - return false; + return true; } $belongstogrouping = groups_belongs_to_grouping($groupid, $groupingid); - if (!groups_grouping_exists($groupingid)) { + + if (!groups_grouping_exists($groupingid)) { $groupadded = false; } elseif (!$belongstogrouping) { $groupadded = groups_db_add_group_to_grouping($groupid, $groupingid); @@ -489,4 +490,4 @@ function groups_delete_all_groupings($courseid) { return $success; } -?> \ No newline at end of file +?>