Diff for /loncom/interface/loncoursedata.pm between versions 1.3 and 1.4

version 1.3, 2002/07/22 20:35:05 version 1.4, 2002/07/24 14:52:32
Line 157  sub DownloadClasslist { Line 157  sub DownloadClasslist {
   
 =pod  =pod
   
 =item &DownloadStudentCourseInformation()  =item &DownloadCourseInformation()
   
 Dump of all the course information for a single student.  There is no  Dump of all the course information for a single student.  There is no
 pruning of data, it is all stored in a hash and returned.  It also  pruning of data, it is all stored in a hash and returned.  It also
Line 181  database. Line 181  database.
   
 =cut  =cut
   
 sub DownloadStudentCourseInformation {  sub DownloadCourseInformation {
     my ($name,$courseID,$lastDownloadTime)=@_;      my ($namedata,$courseID,$lastDownloadTime)=@_;
     my %courseData;      my %courseData;
     my ($studentName,$studentDomain) = split(/\:/,$name);      my ($name,$domain) = split(/\:/,$namedata);
   
     my $modifiedTime = &GetFileTimestamp($studentDomain, $studentName,      my $modifiedTime = &GetFileTimestamp($domain, $name,
                                       $courseID.'.db',                                         $courseID.'.db', 
                                       $Apache::lonnet::perlvar{'lonUsersDir'});                                        $Apache::lonnet::perlvar{'lonUsersDir'});
     if($lastDownloadTime >= $modifiedTime) {      if($lastDownloadTime >= $modifiedTime) {
Line 195  sub DownloadStudentCourseInformation { Line 195  sub DownloadStudentCourseInformation {
         return \%courseData;          return \%courseData;
     }      }
   
     # Download student course data      # Download course data
     %courseData=&Apache::lonnet::dump($courseID, $studentDomain, $studentName);      %courseData=&Apache::lonnet::dump($courseID, $domain, $name);
     $courseData{'UpToDate'} = 'false';      $courseData{'UpToDate'} = 'false';
     $courseData{'lastDownloadTime'}=time;      $courseData{'lastDownloadTime'}=time;
     return \%courseData;      return \%courseData;
Line 449  sub ProcessTopResourceMap { Line 449  sub ProcessTopResourceMap {
   
 =pod  =pod
   
 =item &ProcessSection()  
   
 Determine the section number for a student for the class.  A student can have   
 multiple sections for the same class.  The correct one is chosen.  
   
 =over 4  
   
 Input: $sectionData, $courseid, $ActiveFlag  
   
 $sectionData:  A pointer to a hash containing all section data for this   
 student for the class  
   
 $courseid:  The course ID.  
   
 $ActiveFlag:  The student's active status (Active/Expired)  
   
 Output: $oldsection, $cursection, or -1  
   
 $oldsection and $cursection and sections number that will be displayed in the   
 chart.  
   
 -1 is returned if an error occurs.  
   
 =back  
   
   
 sub ProcessSection {  
     my ($sectionData,$courseid,$ActiveFlag)=@_;  
     $courseid=~s/\_/\//g;  
     $courseid=~s/^(\w)/\/$1/;  
   
     my $cursection='-1';  
     my $oldend='-1';  
     my $status='Expired';  
     my $section='';  
     foreach my $key (keys (%$sectionData)) {  
  my $value = $sectionData->{$key};  
         if ($key=~/^$courseid(?:\/)*(\w+)*\_st$/) {  
     $section=$1;  
     if($key eq $courseid.'_st') {  
  $section='';  
     }  
   
     my ($dummy,$end,$start)=split(/\_/,$value);  
     my $now=time;  
             my $notactive=0;  
             if ($start) {  
                 if($now<$start) {  
                     $notactive=1;  
                 }  
             }  
             if($end) {  
                 if ($now>$end) {  
                     $notactive=1;  
                 }  
             }  
             if($notactive == 0) {  
                 $status='Active';  
                 $cursection=$section;  
                 last;  
             }  
             if($notactive == 1) {  
                 if($end > $oldend) {  
                     $cursection=$section;  
                     $oldend = $end;  
                 }  
             }  
  }  
     }  
   
     return ($cursections, $status);  
 }  
   
 =cut  
   
 =pod  
   
 =item &ProcessClasslist()  =item &ProcessClasslist()
   
 Taking the class list dumped from &DownloadClasslist(), all the   Taking the class list dumped from &DownloadClasslist(), all the 
Line 648  sub ProcessClasslist { Line 571  sub ProcessClasslist {
 =item &ProcessStudentData()  =item &ProcessStudentData()
   
 Takes the course data downloaded for a student in   Takes the course data downloaded for a student in 
 &DownloadStudentCourseInformation() and breaks it up into key value pairs  &DownloadCourseInformation() and breaks it up into key value pairs
 to be stored in the cached data.  The keys are comprised of the   to be stored in the cached data.  The keys are comprised of the 
 $username:$domain:$keyFromCourseDatabase.  The student username:domain is  $username:$domain:$keyFromCourseDatabase.  The student username:domain is
 stored away signifying that the student's information has been downloaded and   stored away signifying that the student's information has been downloaded and 
Line 670  Output: None Line 593  Output: None
 *NOTE:  There is no output, but an error message is stored away in the cache   *NOTE:  There is no output, but an error message is stored away in the cache 
 data.  This is checked in &FormatStudentData().  The key username:domain:error   data.  This is checked in &FormatStudentData().  The key username:domain:error 
 will only exist if an error occured.  The error is an error from   will only exist if an error occured.  The error is an error from 
 &DownloadStudentCourseInformation().  &DownloadCourseInformation().
   
 =back  =back
   
Line 701  sub ProcessStudentData { Line 624  sub ProcessStudentData {
     return;      return;
 }  }
   
   sub LoadDiscussion {
   #    my $symb=shift;
   #    $r->print('<br>$cid ... '.$symb);
   #    my %contrib=&Apache::lonnet::dump('msu_2964385f9033c63msul1','msu','2964385f9033c63msul1');
       my ($name, $courseID, $Discuss)=@_;
       my %contrib=&DownloadCourseInformation($name, $courseID, 0);
                               
       foreach my $temp(keys %contrib) {
    if ($temp=~/^version/) {
       my $ver=$contrib{$temp};
       my ($dummy,$prb)=split(':',$temp);
       for (my $idx=1; $idx<=$ver; $idx++ ) {
    my $name=$contrib{"$idx:$prb:sendername"};
    $Discuss->{"$name:$prb"}=$idx;
       }
    }
       }       
   #   $r->print('<br>cid='.$cid);
   #    my %contrib=&Apache::lonnet::restore($symb,$cid,
   # $ENV{$cid.'.domain'},
   # $ENV{'course.'.$cid.'.num'});
   
   #    $Apache::lonxml::debug=1;
   #    &Apache::lonhomework::showhash(%Discuss);
   #    $Apache::lonxml::debug=0;
   }
   
 # ----- END PROCESSING FUNCTIONS ---------------------------------------  # ----- END PROCESSING FUNCTIONS ---------------------------------------
   
 =pod  =pod

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


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