Diff for /loncom/automation/batchcreatecourse.pm between versions 1.4 and 1.5

version 1.4, 2005/04/07 03:58:02 version 1.5, 2005/06/01 19:20:32
Line 211  sub create_courses { Line 211  sub create_courses {
                 &parse_coursereqs($newcoursedir.'/'.$request, \%details);                  &parse_coursereqs($newcoursedir.'/'.$request, \%details);
                 foreach my $num (sort keys %details) {                  foreach my $num (sort keys %details) {
                     my $courseid = &build_course($dom,$num,$context,\%details,\%longroles,\$logmsg,\$newusermsg,\$addresult,\%enrollcount,\$output,\$keysmsg);                      my $courseid = &build_course($dom,$num,$context,\%details,\%longroles,\$logmsg,\$newusermsg,\$addresult,\%enrollcount,\$output,\$keysmsg);
                     $$courseids{$courseid} = $enrollcount;                      $$courseids{$courseid} = $details{$num}{'class'};
                 }                  }
             }              }
         }          }
Line 292  sub parse_coursereqs { Line 292  sub parse_coursereqs {
                  } elsif ("@state" eq "class owner authtype") {                   } elsif ("@state" eq "class owner authtype") {
                     $$details{$num}{'ownerauthtype'} = $text;                      $$details{$num}{'ownerauthtype'} = $text;
                  } elsif ("@state" eq "class owner autharg") {                   } elsif ("@state" eq "class owner autharg") {
                     $$details{$num}{'ownerautharg'} = $text;                      $$details{$num}{'ownerauthparam'} = $text;
                  } elsif ("@state" eq "class authentication method") {                   } elsif ("@state" eq "class authentication method") {
                     $$details{$num}{'authtype'} = $text;                      $$details{$num}{'authtype'} = $text;
                  } elsif ("@state" eq "class authentication param") {                   } elsif ("@state" eq "class authentication param") {
Line 350  sub parse_coursereqs { Line 350  sub parse_coursereqs {
   
     $p->parse_file($coursefile);      $p->parse_file($coursefile);
     $p->eof;      $p->eof;
     if (-e "$coursefile") {  
 #        unlink $coursefile;  
     }  
     return;      return;
 }  }
   
Line 406  sub build_course { Line 403  sub build_course {
         $firstres = 'syl';          $firstres = 'syl';
     }      }
     foreach my $secid (sort keys %{$$details{$num}{'sections'}}) {      foreach my $secid (sort keys %{$$details{$num}{'sections'}}) {
         $sectionstr .= $$details{$num}{'sections'}{$secid}{'inst'}.':'.$$details{$num}{'sections'}{$secid}{'loncapa'};          $sectionstr .= $$details{$num}{'sections'}{$secid}{'inst'}.':'.$$details{$num}{'sections'}{$secid}{'loncapa'}.',';
     }      }
       $sectionstr =~ s/,$//;
   
     foreach my $xlist (sort keys %{$$details{$num}{'crosslists'}}) {      foreach my $xlist (sort keys %{$$details{$num}{'crosslists'}}) {
         $xliststr .= $$details{$num}{'crosslists'}{$xlist}{'inst'}.':'.$$details{$num}{'crosslists'}{$xlist}{'loncapa'};          $xliststr .= $$details{$num}{'crosslists'}{$xlist}{'inst'}.':'.$$details{$num}{'crosslists'}{$xlist}{'loncapa'}.',';
     }      }
       $xliststr =~ s/,$//;
   
     my %courseinfo = (      my %courseinfo = (
                       inst_code => $$details{$num}{'coursecode'},                        inst_code => $$details{$num}{'coursecode'},
                       description => $$details{$num}{'title'}                        description => $$details{$num}{'title'}
                      );                        ); 
     if (&Apache::lonnet::homeserver($$details{$num}{'owner'},$$details{$num}{'domain'}) eq 'no_host') { # Add user if no account      if (&Apache::lonnet::homeserver($$details{$num}{'owner'},$$details{$num}{'domain'}) eq 'no_host') { # Add user if no account
         my $ownerargs = ('auth' => $$details{$num}{'ownerauthtype'},          my $ownerargs = {'auth' => $$details{$num}{'ownerauthtype'},
                     'authparam' => $$details{$num}{'ownerauthparam'},                      'authparam' => $$details{$num}{'ownerauthparam'},
                     'emailenc' => $$details{$num}{'emailenc'},                      'emailenc' => $$details{$num}{'emailenc'},
                     'dom' => $$details{$num}{'domain'},                      'dom' => $$details{$num}{'domain'},
Line 435  sub build_course { Line 434  sub build_course {
                     'cid' => '',                      'cid' => '',
                     'context' => 'createowner',                      'context' => 'createowner',
                     'linefeed' => $linefeed,                      'linefeed' => $linefeed,
                     'role' => 'cc'                      'role' => 'cc',
                    );                     };
         $outcome = &LONCAPA::Enrollment::create_newuser($ownerargs,$logmsg,$newusermsg,$enrollcount,$addresult,$longroles,$courseinfo);          $outcome = &LONCAPA::Enrollment::create_newuser($ownerargs,$logmsg,$newusermsg,$enrollcount,$addresult,$longroles,$courseinfo);
     } else {      } else {
         $outcome = 'ok';          $outcome = 'ok';
Line 510  sub build_course { Line 509  sub build_course {
             if (&Apache::lonnet::homeserver($username,$userdom) eq 'no_host') { # Add user if no account              if (&Apache::lonnet::homeserver($username,$userdom) eq 'no_host') { # Add user if no account
                 my $firstrole = $$details{$num}{'users'}{$userkey}{'roles'}[0];                  my $firstrole = $$details{$num}{'users'}{$userkey}{'roles'}[0];
                 my $firssec = $$details{$num}{'users'}{$userkey}{$firstrole}{'usec'}[0];                  my $firssec = $$details{$num}{'users'}{$userkey}{$firstrole}{'usec'}[0];
                 my $userargs = ('auth' => $$details{$num}{'users'}{$userkey}{'authtype'},                  my $userargs = {
                     'authparam' => $$details{$num}{'users'}{$userkey}{'authparam'},                      'auth' => $$details{$num}{'users'}{$userkey}{'authtype'},
                       'authparam' => $$details{$num}{'users'}{$userkey}{'autharg'},
                     'emailenc' => $$details{$num}{'users'}{$userkey}{'emailenc'},                      'emailenc' => $$details{$num}{'users'}{$userkey}{'emailenc'},
                     'dom' => $userdom,                      'dom' => $userdom,
                     'uname' => $username,                      'uname' => $username,
Line 528  sub build_course { Line 528  sub build_course {
                     'context' => 'createcourse',                      'context' => 'createcourse',
                     'linefeed' => $linefeed,                      'linefeed' => $linefeed,
                     'role' => $$details{$num}{'users'}{$userkey}{'roles'}[0],                       'role' => $$details{$num}{'users'}{$userkey}{'roles'}[0], 
                    );                     };
                 $outcome = &LONCAPA::Enrollment::create_newuser($userargs,$logmsg,$newusermsg,$enrollcount,$addresult,$longroles,$courseinfo);                  $outcome = &LONCAPA::Enrollment::create_newuser($userargs,$logmsg,$newusermsg,$enrollcount,$addresult,$longroles,$courseinfo);
 # now add other roles and other sections.  # now add other roles and other sections.
                 if ($outcome eq 'ok') {                  if ($outcome eq 'ok') {
Line 587  sub build_course { Line 587  sub build_course {
                                 if ($usec ne '') {                                  if ($usec ne '') {
                                     $url .= '/'.$usec;                                      $url .= '/'.$usec;
                                 }                                  }
                                 $$output .= &Apache::loncreateuser::commit_standardrole($userdom,$username,$url,$curr_role,$start,$end,$crsudom,$crsunum,$usec);                                  my $stdresult = &Apache::loncreateuser::commit_standardrole($userdom,$username,$url,$curr_role,$start,$end,$crsudom,$crsunum,$usec);
                                 $url = '/'.$crsudom.'/'.$crsunum;                                  $$output .= $stdresult;
                                 if ($usec ne '') {  
                                     $url .= '/'.$usec;  
                                 }  
                             }                              }
                         } else {                          } else {
                               $url = '/'.$crsudom.'/'.$crsunum;
                             $$output .= &Apache::loncreateuser::commit_standardrole($userdom,$username,$url,$curr_role,$start,$end,$crsudom,$crsunum,'');                              $$output .= &Apache::loncreateuser::commit_standardrole($userdom,$username,$url,$curr_role,$start,$end,$crsudom,$crsunum,'');
                         }                          }
                     }                      }
Line 624  sub build_course { Line 622  sub build_course {
 sub process_date {  sub process_date {
     my $timestr = shift;      my $timestr = shift;
     my $timestamp = '';      my $timestamp = '';
     if ($timestr eq "No end date") {      if ($timestr !~ /:/) {
         $timestamp = '';          $timestamp = '';
     } else {      } else {
         my @entries = split/:/,$timestr;          my @entries = split/:/,$timestr;
Line 633  sub process_date { Line 631  sub process_date {
                 $entries[$j] =~ s/^0//;                  $entries[$j] =~ s/^0//;
             }              }
         }          }
         $entries[1] = $entries[1] - 1;          if ($entries[1] > 0) {  
               $entries[1] = $entries[1] - 1;
           }
         $timestamp =  timelocal($entries[5],$entries[4],$entries[3],$entries[2],$entries[1],$entries[0]);          $timestamp =  timelocal($entries[5],$entries[4],$entries[3],$entries[2],$entries[1],$entries[0]);
     }      }
     return $timestamp;      return $timestamp;

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


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