[LON-CAPA-cvs] cvs: loncom /interface lonnavmaps.pm lonprintout.pm lonquickgrades.pm
raeburn
raeburn at source.lon-capa.org
Mon Dec 9 23:52:30 EST 2024
raeburn Tue Dec 10 04:52:30 2024 EDT
Modified files:
/loncom/interface lonnavmaps.pm lonprintout.pm lonquickgrades.pm
Log:
- Change in args that can be passed to navmap->new(). Third arg is now
user's section. Supports case where a navmap object is instantiated for a
specific user (who may be in a different section).
-------------- next part --------------
Index: loncom/interface/lonnavmaps.pm
diff -u loncom/interface/lonnavmaps.pm:1.565 loncom/interface/lonnavmaps.pm:1.566
--- loncom/interface/lonnavmaps.pm:1.565 Tue Dec 10 04:34:19 2024
+++ loncom/interface/lonnavmaps.pm Tue Dec 10 04:52:30 2024
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Navigate Maps Handler
#
-# $Id: lonnavmaps.pm,v 1.565 2024/12/10 04:34:19 raeburn Exp $
+# $Id: lonnavmaps.pm,v 1.566 2024/12/10 04:52:30 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -2290,10 +2290,17 @@
$self->{USERNAME} = shift || $env{'user.name'};
$self->{DOMAIN} = shift || $env{'user.domain'};
+ $self->{SECTION} = shift;
$self->{CODE} = shift;
- $self->{NOHIDE} = shift;
+ $self->{NOHIDE} = shift;
+ if (($self->{SECTION} eq '') && ($env{'request.course.sec'} ne '')) {
+ if (($self->{USERNAME} eq $env{'user.name'}) &&
+ ($self->{USERNAME} eq $env{'user.domain'})) {
+ $self->{SECTION} = $env{'request.course.sec'};
+ }
+ }
# Resource cache stores navmap resources as we reference them. We generate
# them on-demand so we don't pay for creating resources unless we use them.
@@ -2335,7 +2342,7 @@
$self->{PARM_HASH} = \%parmhash;
$self->{PARM_CACHE} = {};
} else {
- $self->change_user($self->{USERNAME}, $self->{DOMAIN}, $self->{CODE}, $self->{NOHIDE});
+ $self->change_user($self->{USERNAME}, $self->{DOMAIN}, $self->{SECTION}, $self->{CODE}, $self->{NOHIDE});
}
return $self;
@@ -2355,6 +2362,7 @@
my $self = shift;
$self->{USERNAME} = shift;
$self->{DOMAIN} = shift;
+ $self->{SECTION} = shift;
$self->{CODE} = shift;
$self->{NOHIDE} = shift;
@@ -2861,7 +2869,7 @@
$self->generate_course_user_opt();
my $cid=$env{'request.course.id'};
- my $csec=$env{'request.course.sec'};
+ my $csec=$self->{SECTION};
my $cgroup='';
my @cgrps=split(/:/,$env{'request.course.groups'});
if (@cgrps > 0) {
@@ -3190,7 +3198,7 @@
# Get the course id and section if there is one.
my $cid=$env{'request.course.id'};
- my $csec=$env{'request.course.sec'};
+ my $csec=$self->{SECTION};
my $cgroup='';
my @cgrps=split(/:/,$env{'request.course.groups'});
if (@cgrps > 0) {
@@ -3391,11 +3399,11 @@
my $uname = $self->{USERNAME};
my $udom = $self->{DOMAIN};
+ my $csec = $self->{SECTION};
- # Course, section, group ids come from the env:
+ # Course and group ids come from the env:
my $cid = $env{'request.course.id'};
- my $csec = $env{'request.course.sec'};
my $cgroup = ''; # Assume no group
my @cgroups = split(/:/, $env{'request.course.groups'});
@@ -5253,7 +5261,7 @@
my $weight = &Apache::lonnet::EXT('resource.'.$part.'.weight',
$self->{SYMB}, $self->{DOMAIN},
$self->{USERNAME},
- $env{'request.course.sec'});
+ $self->{SECTION});
return $weight;
}
sub part_display {
Index: loncom/interface/lonprintout.pm
diff -u loncom/interface/lonprintout.pm:1.704 loncom/interface/lonprintout.pm:1.705
--- loncom/interface/lonprintout.pm:1.704 Mon Nov 11 03:20:46 2024
+++ loncom/interface/lonprintout.pm Tue Dec 10 04:52:30 2024
@@ -1,7 +1,7 @@
# The LearningOnline Network
# Printout
#
-# $Id: lonprintout.pm,v 1.704 2024/11/11 03:20:46 raeburn Exp $
+# $Id: lonprintout.pm,v 1.705 2024/12/10 04:52:30 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -812,16 +812,17 @@
# Parameters:
# $username - Name of user for whom we are checking.
# $domain - Domain of user we are checking.
+# $section - Section for user for whom we are checking.
# $map - map name.
# Returns:
# 0 - map is not incomplete.
# 1 - map is incomplete.
#
sub incomplete {
- my ($username, $domain, $map) = @_;
+ my ($username, $domain, $section, $map) = @_;
- my $navmap = Apache::lonnavmaps::navmap->new($username, $domain);
+ my $navmap = Apache::lonnavmaps::navmap->new($username, $domain, $section);
if (defined($navmap)) {
@@ -878,7 +879,7 @@
}
my $navmap = Apache::lonnavmaps::navmap->new($username, $userdomain,
- $code, $unhidden);
+ $usersection, $code, $unhidden);
my ($start,$finish);
if ($map) {
@@ -3867,7 +3868,7 @@
if ( !($type eq 'problems' &&
($curresline!~ m/$LONCAPA::assess_page_re/)) ) {
- if ($print_incomplete && !&incomplete($username, $userdomain, $res_url)) {
+ if ($print_incomplete && !&incomplete($username, $userdomain, $usersection, $res_url)) {
next;
}
$actually_printed++; # we're going to print one.
@@ -4236,7 +4237,6 @@
}
}
-
}
# Detect whether we're coming from construction space
Index: loncom/interface/lonquickgrades.pm
diff -u loncom/interface/lonquickgrades.pm:1.127 loncom/interface/lonquickgrades.pm:1.128
--- loncom/interface/lonquickgrades.pm:1.127 Fri Jan 5 19:10:30 2024
+++ loncom/interface/lonquickgrades.pm Tue Dec 10 04:52:30 2024
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Quick Student Grades Display
#
-# $Id: lonquickgrades.pm,v 1.127 2024/01/05 19:10:30 raeburn Exp $
+# $Id: lonquickgrades.pm,v 1.128 2024/12/10 04:52:30 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -261,8 +261,19 @@
my $showCategories=
$env{'course.'.$env{'request.course.id'}.'.grading'} eq 'categories';
+ my $usec;
+ if ($cangrade) {
+ if (($uname eq $env{'user.name'}) && ($udom eq $env{'user.domain'})) {
+ $usec = $env{'request.course.sec'};
+ } else {
+ $usec = &Apache::lonnet::getsection($udom,$uname,$env{'request.course.id'});
+ }
+ } else {
+ $usec = $env{'request.course.sec'};
+ }
+
my ($navmap,$totalParts,$totalPossible,$totalRight,$totalAttempted,$topLevelParts,
- $topLevelRight,$topLevelAttempted) = &getData($showPoints,$uname,$udom);
+ $topLevelRight,$topLevelAttempted) = &getData($showPoints,$uname,$udom,$usec);
if (ref($navmap)) {
if ($showCategories) {
@@ -277,16 +288,6 @@
if ($hidetotals eq 'all') {
$nostdtotals = 1;
} elsif ($hidetotals ne '') {
- my $usec;
- if ($cangrade) {
- if (($uname eq $env{'user.name'}) && ($udom eq $env{'user.domain'})) {
- $usec = $env{'request.course.sec'};
- } else {
- $usec = &Apache::lonnet::getsection($udom,$uname,$env{'request.course.id'});
- }
- } else {
- $usec = $env{'request.course.sec'};
- }
if ($usec ne '') {
my %secnototals;
map { $secnototals{$_} = 1; } split(/,/,$hidetotals);
@@ -336,9 +337,9 @@
}
sub getStudentCatGrade {
- my ($uname,$udom,%categories)=@_;
+ my ($uname,$udom,$usec,%categories)=@_;
my ($navmap,$totalParts,$totalPossible,$totalRight,$totalAttempted,$topLevelParts,$topLevelRight,$topLevelAttempted)=
- &getData(1,$uname,$udom);
+ &getData(1,$uname,$udom,$usec);
return &output_category_table(undef,0,$navmap,0,%categories);
}
@@ -354,11 +355,13 @@
my $usernameidx = &Apache::loncoursedata::CL_SNAME();
my $domainidx = &Apache::loncoursedata::CL_SDOM();
my $fullnameidx = &Apache::loncoursedata::CL_FULLNAME();
+ my $sectionidx = &Apache::loncoursedata::CL_SECTION();
foreach my $key (keys(%{$classlist})) {
my $student = $classlist->{$key};
my $perc=&getStudentCatGrade($classlist->{$student}->[$usernameidx],
$classlist->{$student}->[$domainidx],
+ $classlist->{$student}->[$sectionidx],
%categories);
}
}
@@ -531,10 +534,10 @@
sub getData {
- my ($showPoints,$uname,$udom)=@_;
+ my ($showPoints,$uname,$udom,$usec)=@_;
# Create the nav map
- my $navmap = Apache::lonnavmaps::navmap->new($uname,$udom);
+ my $navmap = Apache::lonnavmaps::navmap->new($uname,$udom,$usec);
if (!defined($navmap)) {
return ();
More information about the LON-CAPA-cvs
mailing list