mirror of
https://github.com/moodle/moodle.git
synced 2025-04-21 00:12:56 +02:00
MDL-9167 and MDL-9113 both solved
This commit is contained in:
parent
bfe1e789de
commit
e4596a4a1c
@ -210,6 +210,24 @@ function groups_db_group_matches($courseid, $grp_name, $grp_description) {
|
||||
return $group;
|
||||
}
|
||||
|
||||
/**
|
||||
* Determine if a course ID, and group name match a group in the database.
|
||||
* @return mixed A group-like object with $group->id, or false.
|
||||
*/
|
||||
function groups_db_group_name_exists($courseid, $grp_name) {
|
||||
global $CFG;
|
||||
$sql = "SELECT g.id, g.name
|
||||
FROM {$CFG->prefix}groups g
|
||||
INNER JOIN {$CFG->prefix}groups_courses_groups cg ON g.id = cg.groupid
|
||||
WHERE g.name = '$grp_name'
|
||||
AND cg.courseid = '$courseid'";
|
||||
$records = get_records_sql($sql);
|
||||
$group = false;
|
||||
if ($records) {
|
||||
$group = current($records);
|
||||
}
|
||||
return $group;
|
||||
}
|
||||
|
||||
/**
|
||||
* Determines if a specified user is a member of a specified group
|
||||
@ -517,4 +535,4 @@ function groups_members_where_sql($groupid, $userid_sql=false) {
|
||||
return $sql;
|
||||
}
|
||||
|
||||
?>
|
||||
?>
|
||||
|
@ -60,20 +60,28 @@ if (!empty($group)) {
|
||||
$editform->set_data($group);
|
||||
}
|
||||
|
||||
// Process delete action
|
||||
if ($delete) {
|
||||
if (groups_delete_group($id)) {
|
||||
redirect(groups_home_url($course->id, null, $groupingid, false));
|
||||
} else {
|
||||
print_error('erroreditgroup', 'group', groups_home_url($course->id));
|
||||
}
|
||||
}
|
||||
|
||||
$error = null;
|
||||
|
||||
if ($editform->is_cancelled()) {
|
||||
redirect(groups_home_url($courseid, $id, $groupingid, false));
|
||||
} elseif ($data = $editform->get_data()) {
|
||||
$success = true;
|
||||
|
||||
// preprocess data
|
||||
if ($delete) {
|
||||
if ($success = groups_delete_group($id)) {
|
||||
redirect(groups_home_url($course->id, null, $groupingid, false));
|
||||
} else {
|
||||
print_error('erroreditgroup', 'group', groups_home_url($course->id));
|
||||
}
|
||||
} elseif (empty($group)) { // New group
|
||||
if (!$id = groups_create_group($course->id, $data)) {
|
||||
if (empty($group)) { // New group
|
||||
// First check if this group name doesn't already exist
|
||||
if (groups_group_name_exists($courseid, $data->name)) {
|
||||
$error = get_string('groupnameexists', 'group', $data->name);
|
||||
$success = false;
|
||||
} elseif (!$id = groups_create_group($course->id, $data)) {
|
||||
print_error('erroreditgroup');
|
||||
} else {
|
||||
$success = (bool)$id;
|
||||
@ -86,7 +94,11 @@ if ($editform->is_cancelled()) {
|
||||
$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)) {
|
||||
$group = groups_get_group($data->id);
|
||||
if (groups_group_name_exists($courseid, $data->name) && $group->name != $data->name) {
|
||||
$error = get_string('groupnameexists', 'group', $data->name);
|
||||
$success = false;
|
||||
} elseif (!groups_update_group($data, $course->id)) {
|
||||
print_error('groupnotupdated');
|
||||
}
|
||||
}
|
||||
@ -101,32 +113,36 @@ if ($editform->is_cancelled()) {
|
||||
|
||||
if ($success) {
|
||||
redirect(groups_home_url($course->id, $id, $groupingid, false));
|
||||
} else {
|
||||
} elseif (empty($error)) {
|
||||
print_error('erroreditgroup', 'group', groups_home_url($course->id));
|
||||
}
|
||||
} else { // Prepare and output form
|
||||
$strgroups = get_string('groups');
|
||||
$strparticipants = get_string('participants');
|
||||
|
||||
if ($id) {
|
||||
$strheading = get_string('editgroupsettings', 'group');
|
||||
} else {
|
||||
$strheading = get_string('creategroup', 'group');
|
||||
}
|
||||
print_header("$course->shortname: ". $strheading,
|
||||
$course->fullname,
|
||||
"<a href=\"$CFG->wwwroot/course/view.php?id=$courseid\">$course->shortname</a> ".
|
||||
"-> <a href=\"$CFG->wwwroot/user/index.php?id=$courseid\">$strparticipants</a> ".
|
||||
'-> <a href="' .format_string(groups_home_url($courseid, $id, $groupingid, false)) . "\">$strgroups</a>".
|
||||
"-> $strheading", '', '', true, '', user_login_string($course, $USER));
|
||||
|
||||
print_heading($strheading);
|
||||
echo '<div id="grouppicture">';
|
||||
if ($id) {
|
||||
print_group_picture($group, $course->id);
|
||||
}
|
||||
echo '</div>';
|
||||
$editform->display();
|
||||
print_footer($course);
|
||||
}
|
||||
$strgroups = get_string('groups');
|
||||
$strparticipants = get_string('participants');
|
||||
|
||||
if ($id) {
|
||||
$strheading = get_string('editgroupsettings', 'group');
|
||||
} else {
|
||||
$strheading = get_string('creategroup', 'group');
|
||||
}
|
||||
print_header("$course->shortname: ". $strheading,
|
||||
$course->fullname,
|
||||
"<a href=\"$CFG->wwwroot/course/view.php?id=$courseid\">$course->shortname</a> ".
|
||||
"-> <a href=\"$CFG->wwwroot/user/index.php?id=$courseid\">$strparticipants</a> ".
|
||||
'-> <a href="' .format_string(groups_home_url($courseid, $id, $groupingid, false)) . "\">$strgroups</a>".
|
||||
"-> $strheading", '', '', true, '', user_login_string($course, $USER));
|
||||
|
||||
print_heading($strheading);
|
||||
|
||||
if ($error) {
|
||||
notify($error);
|
||||
}
|
||||
|
||||
echo '<div id="grouppicture">';
|
||||
if ($id) {
|
||||
print_group_picture($group, $course->id);
|
||||
}
|
||||
echo '</div>';
|
||||
$editform->display();
|
||||
print_footer($course);
|
||||
?>
|
||||
|
@ -46,19 +46,21 @@ if (!empty($grouping)) {
|
||||
$editform->set_data($grouping);
|
||||
}
|
||||
|
||||
// preprocess data
|
||||
if ($delete) {
|
||||
if (groups_delete_grouping($id)) {
|
||||
redirect(groups_home_url($course->id));
|
||||
} else {
|
||||
print_error('erroreditgrouping', 'group', groups_home_url($course->id));
|
||||
}
|
||||
}
|
||||
|
||||
if ($editform->is_cancelled()) {
|
||||
redirect(groups_home_url($courseid, false, $id, false));
|
||||
} elseif ($data = $editform->get_data()) {
|
||||
$success = true;
|
||||
|
||||
// preprocess data
|
||||
if ($delete) {
|
||||
if ($success = groups_delete_grouping($id)) {
|
||||
redirect(groups_home_url($course->id));
|
||||
} else {
|
||||
print_error('erroreditgrouping', 'group', groups_home_url($course->id));
|
||||
}
|
||||
} elseif (empty($grouping)) { // New grouping
|
||||
if (empty($grouping)) { // New grouping
|
||||
if (!$id = groups_create_grouping($course->id, $data)) {
|
||||
print_error('erroreditgrouping');
|
||||
} else {
|
||||
|
@ -27,7 +27,6 @@ $groupid = optional_param('group', false, PARAM_INT);
|
||||
$userid = optional_param('user', false, PARAM_INT);
|
||||
$action = groups_param_action();
|
||||
|
||||
|
||||
if ($groupid) {
|
||||
$groupingsforgroup = groups_get_groupings_for_group($groupid);
|
||||
if ($groupingsforgroup) {
|
||||
@ -176,7 +175,7 @@ if ($success) {
|
||||
$showcreategroupform_disabled = $disabled;
|
||||
}
|
||||
|
||||
if ($groupingid == -1) {
|
||||
if ($groupingid == -1 && groups_count_groups_in_grouping(GROUP_NOT_IN_GROUPING, $courseid) > 0) {
|
||||
$printerfriendly_disabled = '';
|
||||
}
|
||||
|
||||
@ -212,6 +211,8 @@ if ($success) {
|
||||
//NOTE, only show the pseudo-grouping if it has groups.
|
||||
$groupingids[] = GROUP_NOT_IN_GROUPING;
|
||||
}
|
||||
|
||||
$sel_groupingid = -1;
|
||||
|
||||
if ($groupingids) {
|
||||
// Put the groupings into a hash and sort them
|
||||
@ -231,7 +232,10 @@ if ($success) {
|
||||
echo "<option value=\"$id\"$select>$name</option>\n";
|
||||
$count++;
|
||||
}
|
||||
} else {
|
||||
echo '<option> </option>';
|
||||
}
|
||||
|
||||
echo '</select>'."\n";
|
||||
|
||||
|
||||
|
@ -206,6 +206,13 @@ function groups_group_matches($courseid, $grp_name, $grp_description) {
|
||||
return groups_db_group_matches($courseid, $grp_name, $grp_description);
|
||||
}
|
||||
|
||||
/**
|
||||
* Determine if a course ID, and group name match a group in the database.
|
||||
* @return mixed A group-like object with $group->id, or false.
|
||||
*/
|
||||
function groups_group_name_exists($courseid, $grp_name) {
|
||||
return groups_db_group_name_exists($courseid, $grp_name);
|
||||
}
|
||||
|
||||
/**
|
||||
* Determines if the user is a member of the given group.
|
||||
|
@ -70,6 +70,7 @@ $string['creategroup'] = 'Create group';
|
||||
$string['createorphangroup'] = 'Create orphan group';
|
||||
|
||||
$string['groupname'] = 'Group name';
|
||||
$string['groupnameexists'] = 'The group name \'$a\' already exists in this course, please choose another one.';
|
||||
$string['defaultgroupname'] = 'Group';
|
||||
$string['groupdescription'] = 'Group description';
|
||||
$string['enrolmentkey'] = 'Enrolment key';
|
||||
|
Loading…
x
Reference in New Issue
Block a user