--- loncom/interface/lonquickgrades.pm 2022/10/29 18:13:28 1.125 +++ loncom/interface/lonquickgrades.pm 2023/09/24 03:31:18 1.126 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Quick Student Grades Display # -# $Id: lonquickgrades.pm,v 1.125 2022/10/29 18:13:28 raeburn Exp $ +# $Id: lonquickgrades.pm,v 1.126 2023/09/24 03:31:18 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -270,9 +270,32 @@ ENDCLOSE $totalRight,$totalAttempted,$topLevelParts,$topLevelRight, $topLevelAttempted); } else { - &outputTable($r,$showPoints,$notshowTotals,$navmap,$totalParts,$totalPossible, - $totalRight,$totalAttempted,$topLevelParts,$topLevelRight, - $topLevelAttempted); + my $nostdtotals; + if ($showPoints) { + if ($env{'course.'.$env{'request.course.id'}.'.grading'} eq 'standard') { + my $hidetotals = $env{'course.'.$env{'request.course.id'}.'.hidetotals'}; + if ($hidetotals eq 'all') { + $nostdtotals = 1; + } elsif ($hidetotals ne '') { + my $usec; + if (($uname eq $env{'user.name'}) && ($env{'user.domain'})) { + $usec = $env{'request.user.section'}; + } elsif ($cangrade) { + $usec = &Apache::lonnet::getsection($udom,$uname,$env{'request.course.id'}); + } + if ($usec ne '') { + my %secnototals; + map { $secnototals{$_} = 1; } split(/,/,$hidetotals); + if ($secnototals{$usec}) { + $nostdtotals = 1; + } + } + } + } + } + &outputTable($r,$showPoints,$notshowTotals,$nostdtotals,$navmap, + $totalParts,$totalPossible,$totalRight,$totalAttempted, + $topLevelParts,$topLevelRight,$topLevelAttempted); } } else { if ($cangrade) { $r->print("\n\n"); } @@ -350,6 +373,8 @@ sub startGradeScreen { my $showPoints = $env{'course.'.$env{'request.course.id'}.'.grading'} eq 'standard'; + my $hidetotals = + $env{'course.'.$env{'request.course.id'}.'.hidetotals'}; my $notshowSPRSlink = (($env{'course.'.$env{'request.course.id'}.'.grading'} eq 'external') || ($env{'course.'.$env{'request.course.id'}.'.grading'} eq 'externalnototals') @@ -378,6 +403,20 @@ sub startGradeScreen { push(@notes,&mt('Students do not see total points.')) if ($notshowTotals); push(@notes,&mt('Students do not see link to spreadsheet.')) if ($notshowSPRSlink); push(@notes,&mt('Students will see points based on problem weights.')) if ($showPoints); + if (($showPoints) && ($hidetotals ne '')) { + if ($hidetotals eq 'all') { + push(@notes,&mt('Students do not see course totals.')); + } else { + my @secs = split(/,/,$hidetotals); + if (@secs == 1) { + push(@notes,&mt('Students in section [_1] do not see course totals.', + $hidetotals)); + } elsif (@secs > 1) { + push(@notes,&mt('Students in sections [_1] do not see course totals.', + join(', ',@secs))); + } + } + } push(@notes,&mt('Students will see points based on categories.')) if ($showCategories); push(@notes,&mt('Students will see link to spreadsheet.')) if ($showSPRSlink); push(@notes, &Apache::lonhtmlcommon::coursepreflink(&mt('Grade display settings'),'grading')); @@ -636,8 +675,8 @@ sub getData { sub outputTable { - my ($r,$showPoints,$notshowTotals,$navmap,$totalParts,$totalPossible,$totalRight, - $totalAttempted,$topLevelParts,$topLevelRight,$topLevelAttempted)=@_; + my ($r,$showPoints,$notshowTotals,$nostdtotals,$navmap,$totalParts,$totalPossible, + $totalRight,$totalAttempted,$topLevelParts,$topLevelRight,$topLevelAttempted)=@_; my @start = (255, 255, 192); my @end = (0, 192, 0); @@ -723,16 +762,18 @@ sub outputTable { # show totals (if applicable), close table # if ($showPoints) { - my $maxHelpLink = &Apache::loncommon::help_open_topic("Quick_Grades_Possibly_Correct"); + unless ($nostdtotals) { + my $maxHelpLink = &Apache::loncommon::help_open_topic("Quick_Grades_Possibly_Correct"); - $title = $showPoints ? "Points" : "Parts Done"; - my $totaltitle = $showPoints ? &mt("Awarded Total Points") : &mt("Total Parts Done"); - $r->print(&Apache::loncommon::start_data_table_row() - .''.$totaltitle.': '.$totalRight.'
'); - $r->print(&mt('Max Possible To Date')." $maxHelpLink: $totalPossible
"); - $title = $showPoints ? "Points" : "Parts"; - $r->print(&mt("Total $title In Course").': '.$totalParts.'' - .&Apache::loncommon::end_data_table_row()); + $title = $showPoints ? "Points" : "Parts Done"; + my $totaltitle = $showPoints ? &mt("Awarded Total Points") : &mt("Total Parts Done"); + $r->print(&Apache::loncommon::start_data_table_row() + .''.$totaltitle.': '.$totalRight.'
'); + $r->print(&mt('Max Possible To Date')." $maxHelpLink: $totalPossible
"); + $title = $showPoints ? "Points" : "Parts"; + $r->print(&mt("Total $title In Course").': '.$totalParts.'' + .&Apache::loncommon::end_data_table_row()); + } } $r->print(&Apache::loncommon::end_data_table());