Diff for /loncom/interface/spreadsheet/assesscalc.pm between versions 1.60 and 1.61

version 1.60, 2014/02/11 19:11:30 version 1.61, 2016/03/02 14:14:21
Line 315  sub parmval { Line 315  sub parmval {
     $symb   = $self->{'symb'}     if (! defined($symb));      $symb   = $self->{'symb'}     if (! defined($symb));
     #      #
     my $result='';      my $result='';
       my @recurseup;
     #      #
     # This should be a       # This should be a 
     if (!defined($mapname) || !defined($id) || !defined($fn)) {      if (!defined($mapname) || !defined($id) || !defined($fn)) {
Line 327  sub parmval { Line 328  sub parmval {
     $what =~ s/\_([^\_]+)$/\.$1/;      $what =~ s/\_([^\_]+)$/\.$1/;
     #      #
     my $symbparm = $symb.'.'.$what;      my $symbparm = $symb.'.'.$what;
       my $recurseparm=$mapname.'___(rec).'.$what;
     my $mapparm  = $mapname.'___(all).'.$what;      my $mapparm  = $mapname.'___(all).'.$what;
     my $courseprefix = $self->{'cid'};      my $courseprefix = $self->{'cid'};
     my $usercourseprefix = $uname.'_'.$udom.'_'.$self->{'cid'};      my $usercourseprefix = $uname.'_'.$udom.'_'.$self->{'cid'};
     #      #
     my $seclevel  = $courseprefix.'.['.$csec.'].'.$what;      my $seclevel  = $courseprefix.'.['.$csec.'].'.$what;
     my $seclevelr = $courseprefix.'.['.$csec.'].'.$symbparm;      my $seclevelr = $courseprefix.'.['.$csec.'].'.$symbparm;
       my $secleveli = $courseprefix.'.['.$csec.'].'.$recurseparm;
     my $seclevelm = $courseprefix.'.['.$csec.'].'.$mapparm;      my $seclevelm = $courseprefix.'.['.$csec.'].'.$mapparm;
     #      #
     my $courselevel  = $courseprefix.'.'.$what;      my $courselevel  = $courseprefix.'.'.$what;
     my $courselevelr = $courseprefix.'.'.$symbparm;      my $courselevelr = $courseprefix.'.'.$symbparm;
       my $courseleveli = $courseprefix.'.'.$recurseparm;
     my $courselevelm = $courseprefix.'.'.$mapparm;      my $courselevelm = $courseprefix.'.'.$mapparm;
     #      #
     my $ucourselevel  = $usercourseprefix.'.'.$what;      my $ucourselevel  = $usercourseprefix.'.'.$what;
     my $ucourselevelr = $usercourseprefix.'.'.$symbparm;      my $ucourselevelr = $usercourseprefix.'.'.$symbparm;
       my $ucourseleveli = $usercourseprefix.'.'.$recurseparm;  
     my $ucourselevelm = $usercourseprefix.'.'.$mapparm;      my $ucourselevelm = $usercourseprefix.'.'.$mapparm;
     # check user      # check user
     if (defined($uname)) {      if (defined($uname)) {
         return $useropt{$ucourselevelr} if (defined($useropt{$ucourselevelr}));          return $useropt{$ucourselevelr} if (defined($useropt{$ucourselevelr}));
         return $useropt{$ucourselevelm} if (defined($useropt{$ucourselevelm}));          return $useropt{$ucourselevelm} if (defined($useropt{$ucourselevelm}));
           return $useropt{$ucourseleveli} if (defined($useropt{$ucourseleveli}));
           unless (@recurseup > 0) {
               @recurseup = &Apache::lonnet::get_map_hierarchy($mapname);
           }
           foreach my $item (@recurseup) {
               my $norecursechk=$usercourseprefix.'.'.$item.'___(all).'.$what;
               last if (defined($useropt{$norecursechk}));
               my $recursechk=$usercourseprefix.'.'.$item.'___(rec).'.$what;
               return $useropt{$recursechk} if (defined($useropt{$recursechk}));
           }
         return $useropt{$ucourselevel}  if (defined($useropt{$ucourselevel}));          return $useropt{$ucourselevel}  if (defined($useropt{$ucourselevel}));
     }      }
     # check groups      # check groups
     if (defined($groups) && ref($groups) eq 'ARRAY') {      if (defined($groups) && ref($groups) eq 'ARRAY') {
         foreach my $group (@{$groups}) {          foreach my $group (@{$groups}) {
             foreach my $level ($symbparm,$mapparm,$what) {              foreach my $level ($symbparm,$mapparm,$recurseparm,$what) {
                 my $item = $courseprefix.'.['.$group.'].'.$level;                  my $item = $courseprefix.'.['.$group.'].'.$level;
                   if ($level eq $what) {
                       unless (@recurseup > 0) {
                           @recurseup = &Apache::lonnet::get_map_hierarchy($mapname);
                       }
                       foreach my $item (@recurseup) {
                           my $norecursechk=$courseprefix.'.['.$group.'].'.$item.'___(all).'.$what;
                           last if (defined($courseopt{$norecursechk}));
                           my $recursechk=$courseprefix.'.['.$group.'].'.$item.'___(rec).'.$what;
                           return $courseopt{$recursechk} if (defined($courseopt{$recursechk}));
                       }
                   }
                 if (defined($courseopt{$item})) {                  if (defined($courseopt{$item})) {
                     return $courseopt{$item};                      return $courseopt{$item};
                 }                  }
Line 363  sub parmval { Line 389  sub parmval {
     if (defined($csec)) {      if (defined($csec)) {
         return $courseopt{$seclevelr} if (defined($courseopt{$seclevelr}));          return $courseopt{$seclevelr} if (defined($courseopt{$seclevelr}));
         return $courseopt{$seclevelm} if (defined($courseopt{$seclevelm}));          return $courseopt{$seclevelm} if (defined($courseopt{$seclevelm}));
           return $courseopt{$secleveli} if (defined($courseopt{$secleveli}));
           unless (@recurseup > 0) {
               @recurseup = &Apache::lonnet::get_map_hierarchy($mapname);
           }
           foreach my $item (@recurseup) {
               my $norecursechk=$courseprefix.'.['.$csec.'].'.$item.'___(all).'.$what;
               last if (defined($courseopt{$norecursechk}));
               my $recursechk=$courseprefix.'.['.$csec.'].'.$item.'___(rec).'.$what;
               return $courseopt{$recursechk} if (defined($courseopt{$secleveli}));
           }
         return $courseopt{$seclevel}  if (defined($courseopt{$seclevel}));          return $courseopt{$seclevel}  if (defined($courseopt{$seclevel}));
     }      }
     #      #
Line 376  sub parmval { Line 412  sub parmval {
     return $thisparm if (defined($thisparm));      return $thisparm if (defined($thisparm));
     # check more course      # check more course
     return $courseopt{$courselevelm} if (defined($courseopt{$courselevelm}));      return $courseopt{$courselevelm} if (defined($courseopt{$courselevelm}));
       return $courseopt{$courseleveli} if (defined($courseopt{$courseleveli}));
       unless (@recurseup > 0) {
           @recurseup = &Apache::lonnet::get_map_hierarchy($mapname);
       }
       foreach my $item (@recurseup) {
           my $norecursechk=$courseprefix.'.'.$item.'___(all).'.$what;
           last if (defined($courseopt{$norecursechk}));
           my $recursechk=$courseprefix.'.'.$item.'___(rec).'.$what;
           return $courseopt{$recursechk} if (defined($courseopt{$recursechk}));
       }
     return $courseopt{$courselevel}  if (defined($courseopt{$courselevel}));      return $courseopt{$courselevel}  if (defined($courseopt{$courselevel}));
   
     # Cascade Up      # Cascade Up

Removed from v.1.60  
changed lines
  Added in v.1.61


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>