Diff for /loncom/interface/Attic/lonspreadsheet.pm between versions 1.4 and 1.5

version 1.4, 2000/12/04 22:09:39 version 1.5, 2000/12/05 15:09:22
Line 1 Line 1
 # The LearningOnline Network with CAPA  # The LearningOnline Network with CAPA
 # Spreadsheet/Grades Display Handler  # Spreadsheet/Grades Display Handler
 #  #
 # 11/11,11/15,11/27,12/04 Gerd Kortemeyer  # 11/11,11/15,11/27,12/04,12/05 Gerd Kortemeyer
   
 package Apache::lonspreadsheet;  package Apache::lonspreadsheet;
   
Line 13  use Apache::lonnet; Line 13  use Apache::lonnet;
 use Apache::Constants qw(:common);  use Apache::Constants qw(:common);
 use HTML::TokeParser;  use HTML::TokeParser;
   
   # =============================================================================
   # ===================================== Implements an instance of a spreadsheet
   
 sub initsheet {  sub initsheet {
     my $safeeval = new Safe;      my $safeeval = new Safe;
Line 35  sub initsheet { Line 36  sub initsheet {
 %v=();   %v=(); 
 %t=();  %t=();
 %f=();  %f=();
   $sheettype='';
   $filename='';
   
 sub mask {  sub mask {
     my ($lower,$upper)=@_;      my ($lower,$upper)=@_;
Line 293  sub getformulas { Line 296  sub getformulas {
     return $safeeval->reval('%f');      return $safeeval->reval('%f');
 }  }
   
 # ------------------------------------------------------------ Read spreadsheet  # -------------------------------------------------------------------- Set type
   
 sub readf {  sub settype {
     my $fn=shift;      my ($safeeval,$type)=@_;
       $safeeval->reval('$sheettype='.$type.';');
   }
   
   # -------------------------------------------------------------------- Get type
   
   sub gettype {
       my $safeeval=shift;
       return $safeeval->reval('$sheettype');
   }
   
   # -------------------------------------------------------------------- Set type
   
   sub setfilename {
       my ($safeeval,$fn)=@_;
       $safeeval->reval('$filename='.$fn.';');
   }
   
   # -------------------------------------------------------------------- Get type
   
   sub getfilename {
       my $safeeval=shift;
       return $safeeval->reval('$filename');
   }
       
   # ========================================================== End of Spreadsheet
   # =============================================================================
   
   
   
   # --------------------------------------- Read spreadsheet formulas from a file
   
   sub readsheet {
       my ($safeeval,$fn)=shift;
       &setfilename($safeeval,$fn);
       $fn=~/\.(\w+)/;
       &settype($safeeval,$1);
     my %f=();      my %f=();
     my $content;      my $content;
     {      {
Line 315  sub readf { Line 354  sub readf {
          }           }
       }        }
     }      }
       &setformulas($safeeval,%f);
 }  }
   
 # --------------------------------------------------------------- Read metadata  # --------------------------------------------------------------- Read metadata
Line 344  sub readmeta { Line 384  sub readmeta {
     return %returnhash;      return %returnhash;
 }  }
   
   # ----------------------------------------------------------------- Update rows
   
   sub updaterows {
       my $safeeval=shift;
       my %bighash;
   # -------------------------------------------------------------------- Tie hash
         if (tie(%bighash,'GDBM_File',$ENV{'request.course.fn'}.'.db',
                          &GDBM_READER,0640)) {
   # --------------------------------------------------------- Get all assessments
   
    my %allkeys=();
           my %allassess=();
   
           my $stype=&gettype($safeeval);
   
           map {
       if ($_=~/^src\_(\d+)\.(\d+)$/) {
          my $mapid=$1;
                  my $resid=$2;
                  my $id=$mapid.'.'.$resid;
                  my $srcf=$bighash{$_};
                  if ($srcf=~/\.(problem|exam|quiz|assess|survey|form)$/) {
                    my $symb=
                        &Apache::lonnet::declutter($bighash{'map_id_'.$mapid}).
       '___'.$resid.'___'.
       &Apache::lonnet::declutter($srcf);
    $allassess{$symb}=$bighash{'title_'.$id};
                    if ($stype eq 'assesssheet') {
                      map {
                          if ($_=~/^stores\_(.*)/) {
     my $key=$_;
                             my $display=
         &Apache::lonnet::metadata($srcf,$key.'.display');
                             unless ($display) {
                                 $display=
            &Apache::lonnet::metadata($srcf,$key.'.name');
                             }
                             $allkeys{$key}=$display;
          }
                      } split(/\,/,&Apache::lonnet::metadata($srcf,'keys'));
            }
         }
      }
           } keys %bighash;
           untie(%bighash);
       
   #
   # %allkeys has a list of storage displays by unikey
   # %allassess has a list of all resource displays by symb
   #
   # -------------------- Find discrepancies between the course row table and this
   #
           my %f=&getformulas($safeeval);
    map {
       if ($_=~/^A/) {
    if ($stype eq 'assesssheet') {
                   } elsif ($stype eq 'coursesheet') {
                   }
               }
           } keys %f;
   # ------------------------------------------------ Find new and obsolete values
   
       } else {
           return 'Could not access course data';
       }
   }
   
 # -----------------------------------------------------------------------------  # -----------------------------------------------------------------------------
   

Removed from v.1.4  
changed lines
  Added in v.1.5


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