Diff for /loncom/automation/batchcreatecourse.pm between versions 1.25 and 1.28

version 1.25, 2008/02/07 01:43:21 version 1.28, 2009/08/08 19:55:15
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 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 368  sub parse_coursereqs { Line 370  sub parse_coursereqs {
 # build_course()   # build_course() 
 #  #
 # inputs  # inputs
 #   domain  #   course domain
 #   course request number  #   course request number
 #   context - auto if called from command line, web if called from DC web interface  #   context - auto if called from command line, web if called from DC web interface
 #   ref to hash of course creation information  #   ref to hash of course creation information
Line 377  sub parse_coursereqs { Line 379  sub parse_coursereqs {
 #   ref to scalar used to accumulate messages sent to new users  #   ref to scalar used to accumulate messages sent to new users
 #   ref to scalar used to accumulate results of new user additions  #   ref to scalar used to accumulate results of new user additions
 #   ref to hash of enrollment counts for different roles  #   ref to hash of enrollment counts for different roles
 #   ref to scalar used to accumulate iformation about added roles  #   ref to scalar used to accumulate information about added roles
 #   ref to scalar used to accumulate   #   ref to scalar used to accumulate
   #   ref to scalar used to accumulate information about access keys
   #   domain of DC creating course
   #   username of DC creating course   
   #   optional course number, if unique course number already obtained (e.g., for
   #       course requests submitted via course request form. 
 #  #
 # outputs  # outputs
 #   LON-CAPA courseID for new (created) course  #   LON-CAPA courseID for new (created) course
Line 386  sub parse_coursereqs { Line 393  sub parse_coursereqs {
 #########################################################  #########################################################
   
 sub build_course {  sub build_course {
     my ($cdom,$num,$context,$details,$longroles,$logmsg,$newusermsg,$addresult,$enrollcount,$output,$keysmsg,$udom,$uname) = @_;      my ($cdom,$num,$context,$details,$longroles,$logmsg,$newusermsg,$addresult,$enrollcount,$output,$keysmsg,$udom,$uname,$cnum) = @_;
     my $owner_uname = $$details{$num}{'owner'};      my $owner_uname = $$details{$num}{'owner'};
     my $owner_domain = $$details{$num}{'domain'};      my $owner_domain = $$details{$num}{'domain'};
     my $owner = $owner_uname.':'.$owner_domain;      my $owner = $owner_uname.':'.$owner_domain;
Line 452  sub build_course { Line 459  sub build_course {
     }      }
   
     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 476  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 504  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);          my ($success, $msg) = &Apache::loncommon::construct_course($courseargs,$logmsg,\$courseid,\$crsudom,\$crsunum,$udom,$uname,$context,$cnum);
  $$logmsg .= $msg;   $$logmsg .= $msg;
         if (!$success) {          if (!$success) {
             return;              return;
Line 510  sub build_course { Line 522  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);
     }      }
   
 #  #

Removed from v.1.25  
changed lines
  Added in v.1.28


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