Diff for /loncom/interface/loncoursedata.pm between versions 1.78 and 1.81.2.1

version 1.78, 2003/06/17 21:45:36 version 1.81.2.1, 2003/10/01 21:41:47
Line 161  sub get_sequence_assessment_data { Line 161  sub get_sequence_assessment_data {
             $title = $previous->title();              $title = $previous->title();
             $symb  = $previous->symb();              $symb  = $previous->symb();
             $src   = $previous->src();              $src   = $previous->src();
               # pick up the filename if there is no title available
               if (! defined($title) || $title eq '') {
                   ($title) = ($src=~/\/([^\/]*)$/);
               }
             $randompick = $previous->randompick();              $randompick = $previous->randompick();
             my $newmap = { title    => $title,              my $newmap = { title    => $title,
                            src      => $src,                             src      => $src,
Line 916  sub update_student_data { Line 920  sub update_student_data {
                                  $sname.':'.$sdom.' in course '.$courseid.                                   $sname.':'.$sdom.' in course '.$courseid.
                                  ':'.$tmp[0]);                                   ':'.$tmp[0]);
         $returnstatus = 'error getting data';          $returnstatus = 'error getting data';
         return $returnstatus;          return ($returnstatus,undef);
     }      }
     if (scalar(@tmp) < 1) {      if (scalar(@tmp) < 1) {
         return ('no data',undef);          return ('no data',undef);
Line 940  sub update_student_data { Line 944  sub update_student_data {
     my $num_parameters = 0;      my $num_parameters = 0;
     my $store_performance_command = 'INSERT INTO '.$performance_table.      my $store_performance_command = 'INSERT INTO '.$performance_table.
         ' VALUES '."\n";          ' VALUES '."\n";
     return 'error' if (! defined($dbh));      return ('error',undef) if (! defined($dbh));
     while (my ($current_symb,$param_hash) = each(%student_data)) {      while (my ($current_symb,$param_hash) = each(%student_data)) {
         #          #
         # make sure the symb is set up properly          # make sure the symb is set up properly
Line 994  sub update_student_data { Line 998  sub update_student_data {
         &Apache::lonnet::logthis(' bigass insert error:'.$dbh->errstr());          &Apache::lonnet::logthis(' bigass insert error:'.$dbh->errstr());
         &Apache::lonnet::logthis('command = '.$store_parameters_command);          &Apache::lonnet::logthis('command = '.$store_parameters_command);
         $returnstatus = 'error: unable to insert parameters into database';          $returnstatus = 'error: unable to insert parameters into database';
         return $returnstatus,\%student_data;          return ($returnstatus,\%student_data);
     }      }
     $dbh->do($store_performance_command);      $dbh->do($store_performance_command);
     if ($dbh->err()) {      if ($dbh->err()) {
         &Apache::lonnet::logthis(' bigass insert error:'.$dbh->errstr());          &Apache::lonnet::logthis(' bigass insert error:'.$dbh->errstr());
         &Apache::lonnet::logthis('command = '.$store_performance_command);          &Apache::lonnet::logthis('command = '.$store_performance_command);
         $returnstatus = 'error: unable to insert performance into database';          $returnstatus = 'error: unable to insert performance into database';
         return $returnstatus,\%student_data;          return ($returnstatus,\%student_data);
     }      }
     $elapsed += Time::HiRes::time - $start;      $elapsed += Time::HiRes::time - $start;
     #      #
Line 1057  sub ensure_current_data { Line 1061  sub ensure_current_data {
         !$found_student     || !$found_part   ||          !$found_student     || !$found_part   ||
         !$found_performance || !$found_parameters) {          !$found_performance || !$found_parameters) {
         if (&init_dbs($courseid)) {          if (&init_dbs($courseid)) {
             return 'error';              return ('error',undef);
         }          }
     }      }
     #      #
Line 1161  sub get_student_data_from_performance_ca Line 1165  sub get_student_data_from_performance_ca
         $studentdata->{$symb}->{$base.'.awarddetail'} = $awarddetail;          $studentdata->{$symb}->{$base.'.awarddetail'} = $awarddetail;
         $studentdata->{$symb}->{'timestamp'} = $time if (defined($time) && $time ne '');          $studentdata->{$symb}->{'timestamp'} = $time if (defined($time) && $time ne '');
     }      }
       ## Get misc parameters
       $request = 'SELECT c.symb,a.parameter,a.value '.
           "FROM $student_table AS b ".
           "LEFT JOIN $parameters_table AS a ON b.student_id=a.student_id ".
           "LEFT JOIN $symb_table AS c ON c.symb_id = a.symb_id ".
           "WHERE student='$student'";
       if (defined($symb) && $symb ne '') {
           $request .= " AND c.symb=".$dbh->quote($symb);
       }
       $sth = $dbh->prepare($request);
       $sth->execute();
       if ($sth->err()) {
           &Apache::lonnet::logthis("Unable to execute MySQL request:");
           &Apache::lonnet::logthis("\n".$request."\n");
           &Apache::lonnet::logthis("error is:".$sth->errstr());
           if (defined($symb) && $symb ne '') {
               $studentdata = $studentdata->{$symb};
           }
           return $studentdata;
       }
       #
       foreach my $row (@{$sth->fetchall_arrayref}) {
           $rows_retrieved++;
           my ($symb,$parameter,$value) = (@$row);
           $studentdata->{$symb}->{$parameter}  = $value;
       }
       #
     if (defined($symb) && $symb ne '') {      if (defined($symb) && $symb ne '') {
         $studentdata = $studentdata->{$symb};          $studentdata = $studentdata->{$symb};
     }      }
Line 1225  sub get_current_state { Line 1256  sub get_current_state {
 #        }  #        }
 #    }  #    }
     #      #
     if (defined($data)) {      if (defined($data) && defined($symb) && ref($data->{$symb})) {
         if (defined($symb)) {          return %{$data->{$symb}};
             return %{$data->{$symb}};      } elsif (defined($data) && ! defined($symb) && ref($data)) {
         } else {          return %$data;
             return %$data;      } 
         }      if ($status eq 'no data') {
     } elsif ($status eq 'no data') {  
         return ();          return ();
     } else {      } else {
         if ($status ne 'okay' && $status ne '') {          if ($status ne 'okay' && $status ne '') {
Line 1372  sub get_problem_statistics { Line 1402  sub get_problem_statistics {
     }      }
     #      #
     $dbh->do('DROP TABLE '.$stats_table);  # May return an error      $dbh->do('DROP TABLE '.$stats_table);  # May return an error
       #
       # Store in metadata
       #
       if ($num) {
    my %storestats=();
   
           my $urlres=(split(/\_\_\_/,$symb))[2];
   
    $storestats{$courseid.'___'.$urlres.'___timestamp'}=time;       
    $storestats{$courseid.'___'.$urlres.'___stdno'}=$num;
    $storestats{$courseid.'___'.$urlres.'___avetries'}=$mean;   
    $storestats{$courseid.'___'.$urlres.'___difficulty'}=$DegOfDiff;
   
    $urlres=~/^(\w+)\/(\w+)/; 
    &Apache::lonnet::put('nohist_resevaldata',\%storestats,$1,$2); 
       }
       #
       # Return result
       #
     return { num_students => $num,      return { num_students => $num,
              tries        => $tries,               tries        => $tries,
              max_tries    => $mod,               max_tries    => $mod,
Line 1381  sub get_problem_statistics { Line 1430  sub get_problem_statistics {
              num_solved   => $Solved,               num_solved   => $Solved,
              num_override => $solved,               num_override => $solved,
              per_wrong    => $wrongpercent,               per_wrong    => $wrongpercent,
              deg_of_diff  => $DegOfDiff }               deg_of_diff  => $DegOfDiff };
 }  }
   
 sub execute_SQL_request {  sub execute_SQL_request {

Removed from v.1.78  
changed lines
  Added in v.1.81.2.1


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