Diff for /loncom/interface/spreadsheet/assesscalc.pm between versions 1.51.2.1 and 1.52

version 1.51.2.1, 2006/05/15 23:44:46 version 1.52, 2006/04/06 20:24:13
Line 290  Returns: The value of a parameter, or '' Line 290  Returns: The value of a parameter, or ''
   
 This function cascades through the possible levels searching for a value for  This function cascades through the possible levels searching for a value for
 a parameter.  The levels are checked in the following order:  a parameter.  The levels are checked in the following order:
 user, course (at section level and course level), map, and lonnet::metadata.  user, course (at group, section level and course level), map, and 
   lonnet::metadata.
 This function uses %parmhash, which must be tied prior to calling it.  This function uses %parmhash, which must be tied prior to calling it.
 This function also requires %courseopt and %useropt to be initialized for  This function also requires %courseopt and %useropt to be initialized for
 this user and course.  this user and course.
Line 301  this user and course. Line 302  this user and course.
 ##################################################  ##################################################
 sub parmval {  sub parmval {
     my $self = shift;      my $self = shift;
     my ($what,$symb,$uname,$udom,$csec,$recurse,$mapname,$id,$fn)=@_;      my ($what,$symb,$uname,$udom,$csec,$recurse,$mapname,$id,$fn,$cgroup)=@_;
     $uname = $self->{'name'}    if (! defined($uname));      $uname  = $self->{'name'}    if (! defined($uname));
     $udom  = $self->{'domain'}  if (! defined($udom));      $udom   = $self->{'domain'}  if (! defined($udom));
     $csec  = $self->{'section'} if (! defined($csec));      $csec   = $self->{'section'} if (! defined($csec));
     $symb  = $self->{'symb'}    if (! defined($symb));      $cgroup = $self->{'group'}   if (! defined($cgroup)); 
       $symb   = $self->{'symb'}    if (! defined($symb));
     #      #
     my $result='';      my $result='';
     #      #
     # This should be a       # This should be a 
     if (!defined($mapname) || !defined($id) || !defined($fn)) {      if (!defined($mapname) || !defined($id) || !defined($fn)) {
  ($mapname,$id,$fn)=&Apache::lonnet::decode_symb($symb);   ($mapname,$id,$fn)=&Apache::lonnet::decode_symb($symb);
  $mapname = &Apache::lonnet::deversion($mapname);  
     }      }
     # Cascading lookup scheme      # Cascading lookup scheme
     my $rwhat=$what;      my $rwhat=$what;
Line 324  sub parmval { Line 325  sub parmval {
     my $courseprefix = $self->{'cid'};      my $courseprefix = $self->{'cid'};
     my $usercourseprefix = $uname.'_'.$udom.'_'.$self->{'cid'};      my $usercourseprefix = $uname.'_'.$udom.'_'.$self->{'cid'};
     #      #
       my $grplevel=$courseprefix.'.['.$cgroup.'].'.$what;
       my $grplevelr=$courseprefix.'.['.$cgroup.'].'.$symbparm;
       my $grplevelm=$courseprefix.'.['.$cgroup.'].'.$mapparm;
       #
     my $seclevel  = $courseprefix.'.['.$csec.'].'.$what;      my $seclevel  = $courseprefix.'.['.$csec.'].'.$what;
     my $seclevelr = $courseprefix.'.['.$csec.'].'.$symbparm;      my $seclevelr = $courseprefix.'.['.$csec.'].'.$symbparm;
     my $seclevelm = $courseprefix.'.['.$csec.'].'.$mapparm;      my $seclevelm = $courseprefix.'.['.$csec.'].'.$mapparm;
Line 335  sub parmval { Line 340  sub parmval {
     my $ucourselevel  = $usercourseprefix.'.'.$what;      my $ucourselevel  = $usercourseprefix.'.'.$what;
     my $ucourselevelr = $usercourseprefix.'.'.$symbparm;      my $ucourselevelr = $usercourseprefix.'.'.$symbparm;
     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{$ucourselevel}  if (defined($useropt{$ucourselevel}));          return $useropt{$ucourselevel}  if (defined($useropt{$ucourselevel}));
     }      }
       # check group
       if (defined($cgroup)) {
           return $courseopt{$grplevelr} if (defined($courseopt{$grplevelr}));
           return $courseopt{$grplevelm} if (defined($courseopt{$grplevelm}));
           return $courseopt{$grplevel}  if (defined($courseopt{$grplevel}));
       }
     # check section      # check section
     if (defined($csec)) {      if (defined($csec)) {
         return $courseopt{$seclevelr} if (defined($courseopt{$seclevelr}));          return $courseopt{$seclevelr} if (defined($courseopt{$seclevelr}));
Line 632  sub get_parameter_values { Line 643  sub get_parameter_values {
     if (tie(%parmhash,'GDBM_File',      if (tie(%parmhash,'GDBM_File',
             $self->{'coursefilename'}.'_parms.db',&GDBM_READER(),0640)) {              $self->{'coursefilename'}.'_parms.db',&GDBM_READER(),0640)) {
  my ($mapname,$id,$fn)=&Apache::lonnet::decode_symb($self->{'symb'});   my ($mapname,$id,$fn)=&Apache::lonnet::decode_symb($self->{'symb'});
  $mapname = &Apache::lonnet::deversion($mapname);  
         foreach my $parmname (@Parameters) {          foreach my $parmname (@Parameters) {
             my $value = $self->parmval($parmname,$self->{'symb'},              my $value = $self->parmval($parmname,$self->{'symb'},
        $self->{'name'},$self->{'domain'},         $self->{'name'},$self->{'domain'},

Removed from v.1.51.2.1  
changed lines
  Added in v.1.52


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