--- loncom/automation/batchcreatecourse.pm 2005/04/07 03:58:02 1.4 +++ loncom/automation/batchcreatecourse.pm 2005/06/01 19:20:32 1.5 @@ -1,5 +1,5 @@ # -# $Id: batchcreatecourse.pm,v 1.4 2005/04/07 03:58:02 albertel Exp $ +# $Id: batchcreatecourse.pm,v 1.5 2005/06/01 19:20:32 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -211,7 +211,7 @@ sub create_courses { &parse_coursereqs($newcoursedir.'/'.$request, \%details); foreach my $num (sort keys %details) { my $courseid = &build_course($dom,$num,$context,\%details,\%longroles,\$logmsg,\$newusermsg,\$addresult,\%enrollcount,\$output,\$keysmsg); - $$courseids{$courseid} = $enrollcount; + $$courseids{$courseid} = $details{$num}{'class'}; } } } @@ -292,7 +292,7 @@ sub parse_coursereqs { } elsif ("@state" eq "class owner authtype") { $$details{$num}{'ownerauthtype'} = $text; } elsif ("@state" eq "class owner autharg") { - $$details{$num}{'ownerautharg'} = $text; + $$details{$num}{'ownerauthparam'} = $text; } elsif ("@state" eq "class authentication method") { $$details{$num}{'authtype'} = $text; } elsif ("@state" eq "class authentication param") { @@ -350,9 +350,6 @@ sub parse_coursereqs { $p->parse_file($coursefile); $p->eof; - if (-e "$coursefile") { -# unlink $coursefile; - } return; } @@ -406,19 +403,21 @@ sub build_course { $firstres = 'syl'; } 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'}}) { - $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 = ( inst_code => $$details{$num}{'coursecode'}, description => $$details{$num}{'title'} ); 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'}, 'emailenc' => $$details{$num}{'emailenc'}, 'dom' => $$details{$num}{'domain'}, @@ -435,8 +434,8 @@ sub build_course { 'cid' => '', 'context' => 'createowner', 'linefeed' => $linefeed, - 'role' => 'cc' - ); + 'role' => 'cc', + }; $outcome = &LONCAPA::Enrollment::create_newuser($ownerargs,$logmsg,$newusermsg,$enrollcount,$addresult,$longroles,$courseinfo); } else { $outcome = 'ok'; @@ -510,8 +509,9 @@ sub build_course { if (&Apache::lonnet::homeserver($username,$userdom) eq 'no_host') { # Add user if no account my $firstrole = $$details{$num}{'users'}{$userkey}{'roles'}[0]; my $firssec = $$details{$num}{'users'}{$userkey}{$firstrole}{'usec'}[0]; - my $userargs = ('auth' => $$details{$num}{'users'}{$userkey}{'authtype'}, - 'authparam' => $$details{$num}{'users'}{$userkey}{'authparam'}, + my $userargs = { + 'auth' => $$details{$num}{'users'}{$userkey}{'authtype'}, + 'authparam' => $$details{$num}{'users'}{$userkey}{'autharg'}, 'emailenc' => $$details{$num}{'users'}{$userkey}{'emailenc'}, 'dom' => $userdom, 'uname' => $username, @@ -528,7 +528,7 @@ sub build_course { 'context' => 'createcourse', 'linefeed' => $linefeed, 'role' => $$details{$num}{'users'}{$userkey}{'roles'}[0], - ); + }; $outcome = &LONCAPA::Enrollment::create_newuser($userargs,$logmsg,$newusermsg,$enrollcount,$addresult,$longroles,$courseinfo); # now add other roles and other sections. if ($outcome eq 'ok') { @@ -587,13 +587,11 @@ sub build_course { if ($usec ne '') { $url .= '/'.$usec; } - $$output .= &Apache::loncreateuser::commit_standardrole($userdom,$username,$url,$curr_role,$start,$end,$crsudom,$crsunum,$usec); - $url = '/'.$crsudom.'/'.$crsunum; - if ($usec ne '') { - $url .= '/'.$usec; - } + my $stdresult = &Apache::loncreateuser::commit_standardrole($userdom,$username,$url,$curr_role,$start,$end,$crsudom,$crsunum,$usec); + $$output .= $stdresult; } } else { + $url = '/'.$crsudom.'/'.$crsunum; $$output .= &Apache::loncreateuser::commit_standardrole($userdom,$username,$url,$curr_role,$start,$end,$crsudom,$crsunum,''); } } @@ -624,7 +622,7 @@ sub build_course { sub process_date { my $timestr = shift; my $timestamp = ''; - if ($timestr eq "No end date") { + if ($timestr !~ /:/) { $timestamp = ''; } else { my @entries = split/:/,$timestr; @@ -633,7 +631,9 @@ sub process_date { $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]); } return $timestamp;