Diff for /loncom/interface/lonparmset.pm between versions 1.197 and 1.199

version 1.197, 2005/06/01 21:44:00 version 1.199, 2005/06/02 13:34:14
Line 64  use Apache::lonxml; Line 64  use Apache::lonxml;
 use Apache::lonlocal;  use Apache::lonlocal;
 use Apache::lonnavmaps;  use Apache::lonnavmaps;
   
   # --- Caches local to lonparmset
   
   my $courseoptid;
 my %courseopt;  my %courseopt;
   my $useroptid;
 my %useropt;  my %useropt;
   my $parmhashid;
 my %parmhash;  my %parmhash;
   
   # --- end local caches
   
   #
   # FIXME: get rid of items below
   #
 my @ids;  my @ids;
 my %symbp;  my %symbp;
 my %mapp;  my %mapp;
Line 109  Returns:  A list, the first item is the Line 119  Returns:  A list, the first item is the
 ##################################################  ##################################################
 sub parmval {  sub parmval {
     my ($what,$id,$def,$uname,$udom,$csec)=@_;      my ($what,$id,$def,$uname,$udom,$csec)=@_;
   # load caches
       &cacheparmhash();
       &cacheuseropt($uname,$udom);
       &cachecourseopt();
   
     my $result='';      my $result='';
     my @outpar=();      my @outpar=();
 # ----------------------------------------------------- Cascading lookup scheme  # ----------------------------------------------------- Cascading lookup scheme
Line 190  sub parmval { Line 205  sub parmval {
     return ($result,@outpar);      return ($result,@outpar);
 }  }
   
   sub resetparmhash {
       $parmhashid='';
   }
   
   sub cacheparmhash {
       if ($parmhashid eq  $env{'request.course.fn'}) { return; }
       my %parmhashfile;
       if (tie(%parmhashfile,'GDBM_File',
         $env{'request.course.fn'}.'_parms.db',&GDBM_READER(),0640)) {
    %parmhash=%parmhashfile;
    untie %parmhashfile;
    $parmhashid=$env{'request.course.fn'};
       }
   }
   
   sub resetuseropt {
       $useroptid='';
   }
   
   sub cacheuseropt {
       my ($uname,$udom)=@_;
       unless ($uname) { return; }
       if ($useroptid eq $uname.'@'.$udom) { return; }
       %useropt=&Apache::lonnet::dump('resourcedata',$udom,$uname);
       $useroptid=$uname.'@'.$udom;
   }
   
   sub resetcourseopt {
       $courseoptid='';
   }
   
   sub cachecourseopt {
       if ($courseoptid eq $env{'request.course.id'}) { return; };
       %courseopt = &Apache::lonnet::dump
           ('resourcedata',
            $env{'course.'.$env{'request.course.id'}.'.domain'},
            $env{'course.'.$env{'request.course.id'}.'.num'});
       $courseoptid=$env{'request.course.id'};
   }
   
 ##################################################  ##################################################
 ##################################################  ##################################################
Line 271  sub storeparm_by_symb { Line 325  sub storeparm_by_symb {
  } else {   } else {
     &Apache::lonnet::expirespread('','','assesscalc');      &Apache::lonnet::expirespread('','','assesscalc');
  }   }
    &resetcourseopt();
 # Store parameter  # Store parameter
  if ($delete) {   if ($delete) {
     $reply=&Apache::lonnet::del      $reply=&Apache::lonnet::del
Line 297  sub storeparm_by_symb { Line 352  sub storeparm_by_symb {
  } else {   } else {
     &Apache::lonnet::expirespread($uname,$udom,'assesscalc');      &Apache::lonnet::expirespread($uname,$udom,'assesscalc');
  }   }
    &resetuseropt();
 # Store parameter  # Store parameter
  if ($delete) {   if ($delete) {
     $reply=&Apache::lonnet::del      $reply=&Apache::lonnet::del
Line 825  sub assessparms { Line 881  sub assessparms {
     my %allparts;      my %allparts;
   
     my %defp;      my %defp;
     %courseopt=();  
     %useropt=();  
   
     @ids=();      @ids=();
     %symbp=();      %symbp=();
Line 928  sub assessparms { Line 982  sub assessparms {
     my $fcat=$env{'form.fcat'};      my $fcat=$env{'form.fcat'};
     unless ($fcat) { $fcat=''; }      unless ($fcat) { $fcat=''; }
   
 # ------------------------------------------------------------------- Tie hashs  
   
     if (!(tie(%parmhash,'GDBM_File',  
       $env{'request.course.fn'}.'_parms.db',&GDBM_READER(),0640))) {  
  $r->print("Unable to access parameter data. (File $env{'request.course.fn'}_parms.db not tieable)");  
  return ;  
     }  
   
 # --------------------------------------------------------- Get all assessments  # --------------------------------------------------------- Get all assessments
     &extractResourceInformation(\@ids, \%typep,\%keyp, \%allparms, \%allparts, \%allkeys, \%allmaps, $fcat, \%defp, \%mapp, \%symbp,\%maptitles,\%uris);      &extractResourceInformation(\@ids, \%typep,\%keyp, \%allparms, \%allparts, \%allkeys, \%allmaps, $fcat, \%defp, \%mapp, \%symbp,\%maptitles,\%uris);
   
Line 956  sub assessparms { Line 1002  sub assessparms {
                  $env{'course.'.$env{'request.course.id'}.'.num'},                   $env{'course.'.$env{'request.course.id'}.'.num'},
                  $env{'course.'.$env{'request.course.id'}.'.domain'});                   $env{'course.'.$env{'request.course.id'}.'.domain'});
     #&Apache::lonnet::clear_EXT_cache_status();      #&Apache::lonnet::clear_EXT_cache_status();
 # -------------------------------------------------------------- Get coursedata  
     %courseopt = &Apache::lonnet::dump  
         ('resourcedata',  
          $env{'course.'.$env{'request.course.id'}.'.domain'},  
          $env{'course.'.$env{'request.course.id'}.'.num'});  
 # --------------------------------------------------- Get userdata (if present)  
     if ($uname) {  
         %useropt=&Apache::lonnet::dump('resourcedata',$udom,$uname);  
     }  
   
 # ------------------------------------------------------------------- Sort this  # ------------------------------------------------------------------- Sort this
   
Line 990  sub assessparms { Line 1027  sub assessparms {
     $trimheader = 'yes';      $trimheader = 'yes';
     &startpage($r,$id,$udom,$csec,$uname,$have_assesments,$trimheader);      &startpage($r,$id,$udom,$csec,$uname,$have_assesments,$trimheader);
   
     if (!$have_assesments) {  
  untie(%parmhash);  
  return '';  
     }  
 #    if ($env{'form.url'}) {  #    if ($env{'form.url'}) {
 # $r->print('<input type="hidden" value="'.$env{'form.url'}.  # $r->print('<input type="hidden" value="'.$env{'form.url'}.
 #  '" name="url"><input type="hidden" name="command" value="set">');  #  '" name="url"><input type="hidden" name="command" value="set">');
Line 1503  ENDMAPONE Line 1536  ENDMAPONE
         } # end of $parmlev eq general          } # end of $parmlev eq general
     }      }
     $r->print('</form></body></html>');      $r->print('</form></body></html>');
     untie(%parmhash);  
 } # end sub assessparms  } # end sub assessparms
   
   
Line 2186  sub handler { Line 2218  sub handler {
   
 # ----------------------------------------------------------- Clear out garbage  # ----------------------------------------------------------- Clear out garbage
   
     %courseopt=();  
     %useropt=();  
     %parmhash=();  
   
     @ids=();      @ids=();
     %symbp=();      %symbp=();

Removed from v.1.197  
changed lines
  Added in v.1.199


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