Moodle

Block quiz_results doesn't support multi-groups

Details

  • Type: Bug Bug
  • Status: Closed Closed
  • Priority: Major Major
  • Resolution: Won't Fix
  • Affects Version/s: 1.6.2
  • Fix Version/s: None
  • Component/s: Blocks
  • Labels:
    None
  • Database:
    MySQL
  • Affected Branches:
    MOODLE_16_STABLE

Description

If one student belongs to two or more groups, the block only count its grade in one group and ignore others. This makes the groupmode quiz result shows wrong group ranklist.

Activity

Hide
Sunner Sun added a comment -

my patch
Since it call get_groups() so many times, perhaps there are some performance problem.

126,131d125
< // Now find which groups these users belong in
< $groupofuser = get_records_sql(
< 'SELECT m.userid, m.groupid, g.name FROM '.$CFG->prefix.'groups g LEFT JOIN '.$CFG->prefix.'groups_members m ON g.id = m.groupid '.
< 'WHERE g.courseid = '.$courseid.' AND m.userid IN ('.implode(',', $userids).')'
< );
<
136c130
< if(isset($groupofuser[$grade->userid])) {

> if ($usergroups = get_groups($courseid, $grade->userid)) {
138,144c132,140
< $groupid = $groupofuser[$grade->userid]->groupid;
< if(!isset($groupgrades[$groupid])) { < $groupgrades[$groupid] = array('sum' => (float)$grade->grade, 'number' => 1, 'group' => $groupofuser[$grade->userid]->name); < }
< else {
< $groupgrades[$groupid]['sum'] += $grade->grade;
< ++$groupgrades[$groupid]['number'];

> foreach ($usergroups as $usergroup) {
> $groupid = $usergroup->id;
> if(!isset($groupgrades[$groupid])) { > $groupgrades[$groupid] = array('sum' => (float)$grade->grade, 'number' => 1, 'group' => $usergroup->name); > }
> else { > $groupgrades[$groupid]['sum'] += $grade->grade; > ++$groupgrades[$groupid]['number']; > }

Show
Sunner Sun added a comment - my patch Since it call get_groups() so many times, perhaps there are some performance problem. 126,131d125 < // Now find which groups these users belong in < $groupofuser = get_records_sql( < 'SELECT m.userid, m.groupid, g.name FROM '.$CFG->prefix.'groups g LEFT JOIN '.$CFG->prefix.'groups_members m ON g.id = m.groupid '. < 'WHERE g.courseid = '.$courseid.' AND m.userid IN ('.implode(',', $userids).')' < ); < 136c130 < if(isset($groupofuser[$grade->userid])) { — > if ($usergroups = get_groups($courseid, $grade->userid)) { 138,144c132,140 < $groupid = $groupofuser[$grade->userid]->groupid; < if(!isset($groupgrades[$groupid])) { < $groupgrades[$groupid] = array('sum' => (float)$grade->grade, 'number' => 1, 'group' => $groupofuser[$grade->userid]->name); < } < else { < $groupgrades[$groupid]['sum'] += $grade->grade; < ++$groupgrades[$groupid]['number']; — > foreach ($usergroups as $usergroup) { > $groupid = $usergroup->id; > if(!isset($groupgrades[$groupid])) { > $groupgrades[$groupid] = array('sum' => (float)$grade->grade, 'number' => 1, 'group' => $usergroup->name); > } > else { > $groupgrades[$groupid]['sum'] += $grade->grade; > ++$groupgrades[$groupid]['number']; > }
Hide
Michael de Raadt added a comment -

Thanks for reporting this issue.

We have detected that this issue has been inactive for over a year has been recorded as affecting versions that are no longer supported.

If you believe that this issue is still relevant to current versions (2.1 and beyond), please comment on the issue. Issues left inactive for a further month will be closed.

Michael d;

lqjjLKA0p6

Show
Michael de Raadt added a comment - Thanks for reporting this issue. We have detected that this issue has been inactive for over a year has been recorded as affecting versions that are no longer supported. If you believe that this issue is still relevant to current versions (2.1 and beyond), please comment on the issue. Issues left inactive for a further month will be closed. Michael d; lqjjLKA0p6
Hide
Michael de Raadt added a comment -

I'm closing this issue as it has become inactive and does not appear to affect a current supported version. If you are encountering this problem or one similar, please launch a new issue.

Show
Michael de Raadt added a comment - I'm closing this issue as it has become inactive and does not appear to affect a current supported version. If you are encountering this problem or one similar, please launch a new issue.

People

Vote (0)
Watch (0)

Dates

  • Created:
    Updated:
    Resolved: