Diff for /loncom/automation/batchcreatecourse.pm between versions 1.21 and 1.27

version 1.21, 2007/05/11 01:48:26 version 1.27, 2008/07/02 18:44:16
Line 76  use strict; Line 76  use strict;
 # <crsquota>20</crsquota>  # <crsquota>20</crsquota>
 # <clonecrs>466011437c34194msul1</clonecrs>  # <clonecrs>466011437c34194msul1</clonecrs>
 # <clonedom>msu</clonedom>  # <clonedom>msu</clonedom>
   # <datemode>shift</datemode>
   # <dateshift>365</dateshift>
 # <showphotos></showphotos>  # <showphotos></showphotos>
 # <setpolicy>1</setpolicy>  # <setpolicy>1</setpolicy>
 # <setcontent>1</setcontent>  # <setcontent>1</setcontent>
Line 219  sub create_courses { Line 221  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);
                     if ($courseid =~ /^$match_courseid$/) {                      if ($courseid =~m{^/$match_domain/$match_courseid}) {
                         $$courseids{$courseid} = $details{$num}{'class'};                          $$courseids{$courseid} = $details{$num}{'class'};
                     }                      }
                 }                  }
Line 249  sub parse_coursereqs { Line 251  sub parse_coursereqs {
     my $xlist = 0;      my $xlist = 0;
     my $userkey = '';      my $userkey = '';
     my $role = '';      my $role = '';
     my @items = ('title','optional_id','coursecode','coursehome','reshome','nonstandard','adds','drops','topmap','firstres','clonecrs','clonedom','showphotos','setpolicy','setcontent','setkeys','keyauth','disresdis','disablechat','openall','notify_owner','notify_dc','crstype','crsquota');      my @items = ('title','optional_id','coursecode','coursehome','reshome','nonstandard','adds','drops','topmap','firstres','clonecrs','clonedom','datemode','dateshift','showphotos','setpolicy','setcontent','setkeys','keyauth','disresdis','disablechat','openall','notify_owner','notify_dc','crstype','crsquota');
     my @dateitems = ('enrollstart','enrollend','accessstart','accessend');      my @dateitems = ('enrollstart','enrollend','accessstart','accessend');
     my @useritems = ('autharg','authtype','firstname','generation','lastname','middlename','studentID');      my @useritems = ('autharg','authtype','firstname','generation','lastname','middlename','studentID');
     my $p = HTML::Parser->new      my $p = HTML::Parser->new
Line 446  sub build_course { Line 448  sub build_course {
                     '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,$context);
     } else {      } else {
         $outcome = 'ok';          $outcome = 'ok';
     }      }
   
     if ($outcome eq 'ok') {      if ($outcome eq 'ok') {
           if ($$details{$num}{'datemode'} !~ /^(preserve|shift|delete)$/) {
               $$details{$num}{'datemode'} = 'shift';
               $$details{$num}{'dateshift'} = 365;
           }
         my $courseargs = {          my $courseargs = {
                ccuname => $$details{$num}{'owner'},                 ccuname => $$details{$num}{'owner'},
                ccdomain => $$details{$num}{'domain'},                 ccdomain => $$details{$num}{'domain'},
Line 465  sub build_course { Line 471  sub build_course {
                crsquota => $$details{$num}{'crsquota'},                 crsquota => $$details{$num}{'crsquota'},
                clonecourse => $$details{$num}{'clonecrs'},                 clonecourse => $$details{$num}{'clonecrs'},
                clonedomain => $$details{$num}{'clonedom'},                 clonedomain => $$details{$num}{'clonedom'},
                  datemode => $$details{$num}{'datemode'},
                  dateshift => $$details{$num}{'dateshift'},
                crsid => $$details{$num}{'optional_id'},                 crsid => $$details{$num}{'optional_id'},
                curruser => $$details{$num}{'owner'},                 curruser => $$details{$num}{'owner'},
                crssections => $sectionstr,                 crssections => $sectionstr,
Line 491  sub build_course { Line 499  sub build_course {
                openall => $$details{$num}{'openall'},                 openall => $$details{$num}{'openall'},
                firstres => $firstres                 firstres => $firstres
                };                 };
   
         my %host_servers = &Apache::lonnet::get_servers($cdom,'library');          my %host_servers = &Apache::lonnet::get_servers($cdom,'library');
         if (! exists($host_servers{$$details{$num}{'coursehome'}})) {          if (! exists($host_servers{$$details{$num}{'coursehome'}})) {
             $$logmsg .= &mt('Invalid home server for course').': '.$$details{$num}{'coursehome'};              $$logmsg .= &mt('Invalid home server for course').': '.$$details{$num}{'coursehome'};
             return;              return;
         }          }
           my ($success, $msg) = &Apache::loncommon::construct_course($courseargs,$logmsg,\$courseid,\$crsudom,\$crsunum,$udom,$uname,$context);
         &Apache::loncommon::construct_course($courseargs,$logmsg,\$courseid,\$crsudom,\$crsunum,$udom,$uname);   $$logmsg .= $msg;
           if (!$success) {
               return;
           }
     } else {      } else {
         return;          return;
     }      }
Line 507  sub build_course { Line 517  sub build_course {
 # Make owner a course coordinator  # Make owner a course coordinator
 #  #
     if (($owner_domain) && ($owner_uname)) {      if (($owner_domain) && ($owner_uname)) {
         &Apache::lonnet::assignrole($owner_domain,$owner_uname,$courseid,'cc');          &Apache::lonnet::assignrole($owner_domain,$owner_uname,$courseid,'cc','','','','',$context);
     }      }
   
 #  #
Line 543  sub build_course { Line 553  sub build_course {
                     '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,$context);
 # now add other roles and other sections.  # now add other roles and other sections.
                 if ($outcome eq 'ok') {                  if ($outcome eq 'ok') {
                     if (($firstrole ne 'st') && (@{$$details{$num}{'users'}{$userkey}{$firstrole}{'usec'}} > 1)) {                      if (($firstrole ne 'st') && (@{$$details{$num}{'users'}{$userkey}{$firstrole}{'usec'}} > 1)) {
Line 556  sub build_course { Line 566  sub build_course {
                             if ($usec ne '') {                              if ($usec ne '') {
                                 $url .= '/'.$usec;                                  $url .= '/'.$usec;
                             }                              }
                             $$output .= &Apache::loncommon::commit_standardrole($userdom,$username,$url,$curr_role,$start,$end,$crsudom,$crsunum,$usec);                              $$output .= &Apache::loncommon::commit_standardrole($userdom,$username,$url,$curr_role,$start,$end,$crsudom,$crsunum,$usec,$context);
                         }                          }
                     }                      }
                     if (@{$$details{$num}{'users'}{$userkey}{'roles'}} > 1) {                      if (@{$$details{$num}{'users'}{$userkey}{'roles'}} > 1) {
Line 570  sub build_course { Line 580  sub build_course {
                                 if ($usec ne '') {                                  if ($usec ne '') {
                                     $url .= '/'.$usec;                                      $url .= '/'.$usec;
                                 }                                  }
                                 $$output .= &Apache::loncommon::commit_studentrole(\$stulogmsg,$userdom,$username,$url,$curr_role,$start,$end,$crsudom,$crsunum,$usec);                                  $$output .= &Apache::loncommon::commit_studentrole(\$stulogmsg,$userdom,$username,$url,$curr_role,$start,$end,$crsudom,$crsunum,$usec,$context);
                             } else {                              } else {
                                 foreach my $usec (@{$$details{$num}{'users'}{$userkey}{$curr_role}{'usec'}}) {                                  foreach my $usec (@{$$details{$num}{'users'}{$userkey}{$curr_role}{'usec'}}) {
                                     $url = '/'.$crsudom.'/'.$crsunum;                                      $url = '/'.$crsudom.'/'.$crsunum;
                                     if ($usec ne '') {                                      if ($usec ne '') {
                                         $url .= '/'.$usec;                                          $url .= '/'.$usec;
                                     }                                      }
                                     $$output .= &Apache::loncommon::commit_standardrole($userdom,$username,$url,$curr_role,$start,$end,$crsudom,$crsunum,$usec);                                      $$output .= &Apache::loncommon::commit_standardrole($userdom,$username,$url,$curr_role,$start,$end,$crsudom,$crsunum,$usec,$context);
                                 }                                  }
                             }                              }
                         }                          }
Line 593  sub build_course { Line 603  sub build_course {
                         if ($usec ne '') {                          if ($usec ne '') {
                             $url .= '/'.$usec;                              $url .= '/'.$usec;
                         }                          }
                         $$output .= &Apache::loncommon::commit_studentrole(\$stulogmsg,$userdom,$username,$url,$curr_role,$start,$end,$crsudom,$crsunum,$usec);                          $$output .= &Apache::loncommon::commit_studentrole(\$stulogmsg,$userdom,$username,$url,$curr_role,$start,$end,$crsudom,$crsunum,$usec,$context);
                     } else {                      } else {
                         if (@{$$details{$num}{'users'}{$userkey}{$curr_role}{'usec'}} > 0) {                          if (@{$$details{$num}{'users'}{$userkey}{$curr_role}{'usec'}} > 0) {
                             foreach my $usec (@{$$details{$num}{'users'}{$userkey}{$curr_role}{'usec'}}) {                              foreach my $usec (@{$$details{$num}{'users'}{$userkey}{$curr_role}{'usec'}}) {
Line 601  sub build_course { Line 611  sub build_course {
                                 if ($usec ne '') {                                  if ($usec ne '') {
                                     $url .= '/'.$usec;                                      $url .= '/'.$usec;
                                 }                                  }
                                 my $stdresult = &Apache::loncommon::commit_standardrole($userdom,$username,$url,$curr_role,$start,$end,$crsudom,$crsunum,$usec);                                  my $stdresult = &Apache::loncommon::commit_standardrole($userdom,$username,$url,$curr_role,$start,$end,$crsudom,$crsunum,$usec,$context);
                                 $$output .= $stdresult;                                  $$output .= $stdresult;
                             }                              }
                         } else {                          } else {
                             $url = '/'.$crsudom.'/'.$crsunum;                              $url = '/'.$crsudom.'/'.$crsunum;
                             $$output .= &Apache::loncommon::commit_standardrole($userdom,$username,$url,$curr_role,$start,$end,$crsudom,$crsunum,'');                              $$output .= &Apache::loncommon::commit_standardrole($userdom,$username,$url,$curr_role,$start,$end,$crsudom,$crsunum,'',$context);
                         }                          }
                     }                      }
                 }                  }

Removed from v.1.21  
changed lines
  Added in v.1.27


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