[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