From: mattc-catalyst Date: Sun, 26 Aug 2007 23:50:08 +0000 (+0000) Subject: MDL-10888: groupings - mod/assignment - updated to support groupings X-Git-Url: http://git.mjollnir.org/gw?a=commitdiff_plain;h=ba3dc7b4a8769e564b65bba828a176517e1691e4;p=moodle.git MDL-10888: groupings - mod/assignment - updated to support groupings --- diff --git a/mod/assignment/index.php b/mod/assignment/index.php index 5e35a94980..6f5d82721b 100644 --- a/mod/assignment/index.php +++ b/mod/assignment/index.php @@ -46,14 +46,6 @@ $table->align = array ("left", "left", "left", "right"); } - $currentgroup = get_and_set_current_group($course, groupmode($course)); - if ($currentgroup and has_capability('moodle/site:accessallgroups', get_context_instance(CONTEXT_COURSE, $id))) { - $group = groups_get_group($currentgroup, false); - $groupname = " ($group->name)"; - } else { - $groupname = ""; - } - $currentsection = ""; $types = assignment_types(); diff --git a/mod/assignment/lib.php b/mod/assignment/lib.php index a0d03762f8..178be17b67 100644 --- a/mod/assignment/lib.php +++ b/mod/assignment/lib.php @@ -102,7 +102,7 @@ class assignment_base { "", "", true, '', navmenu($this->course, $this->cm)); notice(get_string("activityiscurrentlyhidden"), "$CFG->wwwroot/course/view.php?id={$this->course->id}"); } - $this->currentgroup = get_and_set_current_group($this->course, groupmode($this->course, $this->cm)); + $this->currentgroup = groups_get_activity_group($this->cm); /// Set up things for a HTML editor if it's needed if ($this->usehtmleditor = can_use_html_editor()) { @@ -164,8 +164,9 @@ class assignment_base { true, update_module_button($this->cm->id, $this->course->id, $this->strassignment), navmenu($this->course, $this->cm)); - $groupmode = groupmode($this->course, $this->cm); - $currentgroup = setup_and_print_groups($this->course, $groupmode, 'view.php?id=' . $this->cm->id); + $groupmode = groups_get_activity_groupmode($this->cm); + $currentgroup = groups_get_activity_group($this->cm); + groups_print_activity_menu($this->cm, 'view.php?id=' . $this->cm->id); echo ''; echo '
'; @@ -300,7 +301,7 @@ class assignment_base { // if this user can mark and is put in a group // then he can only see/mark submission in his own groups - if (!has_capability('moodle/course:managegroups', $context) and (groupmode($this->course, $this->cm) == SEPARATEGROUPS)) { + if (!has_capability('moodle/course:managegroups', $context) and (groups_get_activity_groupmode($this->cm) == SEPARATEGROUPS)) { $count = $this->count_real_submissions($this->currentgroup); // Only their groups } else { $count = $this->count_real_submissions(); // Everyone @@ -788,7 +789,7 @@ class assignment_base { /// Get all ppl that can submit assignments - $currentgroup = get_and_set_current_group($course, groupmode($course, $cm)); + $currentgroup = groups_get_activity_group($cm); $users = get_users_by_capability($context, 'mod/assignment:submit', 'u.id, u.id', '', '', '', $currentgroup, '', false); @@ -1022,11 +1023,19 @@ class assignment_base { $context = get_context_instance(CONTEXT_MODULE, $cm->id); /// find out current groups mode - $groupmode = groupmode($course, $cm); - $currentgroup = setup_and_print_groups($course, $groupmode, 'submissions.php?id=' . $this->cm->id); + $groupmode = groups_get_activity_groupmode($cm); + $currentgroup = groups_get_activity_group($cm, true); + groups_print_activity_menu($cm, 'submissions.php?id=' . $this->cm->id); /// Get all ppl that are allowed to submit assignments $users = get_users_by_capability($context, 'mod/assignment:submit', '', '', '', '', $currentgroup, '', false); + $users = array_keys($users); + + if (!empty($CFG->enablegroupings) && !empty($cm->groupingid)) { + $groupingusers = groups_get_grouping_members($cm->groupingid, 'u.id', 'u.id'); + $users = array_intersect($users, array_keys($groupingusers)); + + } $tablecolumns = array('picture', 'fullname', 'grade', 'submissioncomment', 'timemodified', 'timemarked', 'status'); if ($uses_outcomes) { @@ -1111,7 +1120,7 @@ class assignment_base { $sql = 'FROM '.$CFG->prefix.'user u '. 'LEFT JOIN '.$CFG->prefix.'assignment_submissions s ON u.id = s.userid AND s.assignment = '.$this->assignment->id.' '. - 'WHERE '.$where.'u.id IN ('.implode(',', array_keys($users)).') '; + 'WHERE '.$where.'u.id IN ('.implode(',',$users).') '; $table->pagesize($perpage, count($users)); @@ -1512,7 +1521,7 @@ class assignment_base { $potgraders = get_users_by_capability($this->context, 'mod/assignment:grade', '', '', '', '', '', '', false, false); $graders = array(); - if (groupmode($this->course, $this->cm) == SEPARATEGROUPS) { // Separate groups are being used + if (groups_get_activity_groupmode($this->cm) == SEPARATEGROUPS) { // Separate groups are being used if ($groups = groups_get_all_groups($this->course->id, $user->id)) { // Try to find all groups foreach ($groups as $group) { foreach ($potgraders as $t) { diff --git a/mod/assignment/mod_form.php b/mod/assignment/mod_form.php index 6a12aa0e80..7bf25f53b3 100644 --- a/mod/assignment/mod_form.php +++ b/mod/assignment/mod_form.php @@ -56,7 +56,11 @@ class mod_assignment_mod_form extends moodleform_mod { $mform->addElement('header', 'typedesc', get_string('type'.$type,'assignment')); $assignmentinstance->setup_elements($mform); - $this->standard_coursemodule_elements(); + $features = new stdClass; + $features->groups = true; + $features->groupings = true; + $features->groupmembersonly = true; + $this->standard_coursemodule_elements($features); $this->add_action_buttons(); }