version 1.32, 2009/10/31 17:54:51
|
version 1.38, 2013/03/01 04:49:15
|
Line 56 use strict;
|
Line 56 use strict;
|
# <title>Underwater Basket Weaving</title> |
# <title>Underwater Basket Weaving</title> |
# <crstype>Course</crstype> |
# <crstype>Course</crstype> |
# <coursecode>ss05ubw101</coursecode> |
# <coursecode>ss05ubw101</coursecode> |
|
# <defaultcredits>3</defaultcredits> |
# <coursehome>msul1</coursehome> |
# <coursehome>msul1</coursehome> |
# <coursedomain>msu</coursedomain> |
# <coursedomain>msu</coursedomain> |
# <reshome>/res/msu/</reshome> |
# <reshome>/res/msu/</reshome> |
Line 122 use strict;
|
Line 123 use strict;
|
# <lastname>Spartan</lastname>x |
# <lastname>Spartan</lastname>x |
# <middlename></middlename> |
# <middlename></middlename> |
# <studentID></studentID> |
# <studentID></studentID> |
|
# <credits></credits> |
# <roles></roles> |
# <roles></roles> |
# </user> |
# </user> |
# <user> |
# <user> |
Line 159 use strict;
|
Line 161 use strict;
|
# firstres can be nav, syl, or blank for "Navigate Contents", Syllabus, or |
# firstres can be nav, syl, or blank for "Navigate Contents", Syllabus, or |
# no entry respectively. |
# no entry respectively. |
# |
# |
# crstype can be Course or Group |
# crstype can be Course or Community |
# |
# |
# crsquota is the total disk space permitted for course group portfolio files |
# crsquota is the total disk space permitted for course group portfolio files |
# in all course groups. |
# in all course groups. |
Line 205 sub create_courses {
|
Line 207 sub create_courses {
|
} |
} |
my ($logmsg,$keysmsg,$newusermsg,$addresult); |
my ($logmsg,$keysmsg,$newusermsg,$addresult); |
my %enrollcount = (); |
my %enrollcount = (); |
my $newcoursedir = $$perlvarref{'lonDaemons'}.'/tmp/addcourse/'.$dom.'/'.$context; |
my $newcoursedir = LONCAPA::tempdir().'/addcourse/'.$dom.'/'.$context; |
if ($context eq 'auto') { |
if ($context eq 'auto') { |
$newcoursedir .= '/pending'; |
$newcoursedir .= '/pending'; |
} else { |
} else { |
Line 253 sub parse_coursereqs {
|
Line 255 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','datemode','dateshift','showphotos','setpolicy','setcontent','setkeys','keyauth','disresdis','disablechat','openall','notify_owner','notify_dc','crstype','crsquota'); |
my @items = ('title','optional_id','coursecode','defaultcredits','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 @possroles = qw(st ad ep ta in cc co); |
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 273 sub parse_coursereqs {
|
Line 276 sub parse_coursereqs {
|
} |
} |
if ("@state" eq "class users user roles role") { |
if ("@state" eq "class users user roles role") { |
$role = $attr->{id}; |
$role = $attr->{id}; |
if ($role =~ /^(st|ad|ep|ta|in|cc)$/) { |
if (grep(/^\Q$role\E$/,@possroles)) { |
push(@{$$details{$num}{'users'}{$userkey}{'roles'}}, $role); |
push(@{$$details{$num}{'users'}{$userkey}{'roles'}}, $role); |
%{$$details{$num}{'users'}{$userkey}{$role}} = (); |
%{$$details{$num}{'users'}{$userkey}{$role}} = (); |
@{$$details{$num}{'users'}{$userkey}{$role}{'usec'}} = (); |
@{$$details{$num}{'users'}{$userkey}{$role}{'usec'}} = (); |
Line 319 sub parse_coursereqs {
|
Line 322 sub parse_coursereqs {
|
@{$$details{$num}{'users'}{$userkey}{'roles'}} = (); |
@{$$details{$num}{'users'}{$userkey}{'roles'}} = (); |
} elsif ("@state" eq "class users user email") { |
} elsif ("@state" eq "class users user email") { |
$$details{$num}{'users'}{$userkey}{'emailaddr'} = $text; |
$$details{$num}{'users'}{$userkey}{'emailaddr'} = $text; |
$$details{$num}{'users'}{$userkey}{'emailenc'} = &Apache::lonnet::escape($text); |
$$details{$num}{'users'}{$userkey}{'emailenc'} = &LONCAPA::escape($text); |
} elsif ("@state" eq "class users user roles role start") { |
} elsif ("@state" eq "class users user roles role start") { |
if ($role =~ /^(st|ad|ep|ta|in|cc)$/) { |
if (grep(/^\Q$role\E$/,@possroles)) { |
$$details{$num}{'users'}{$userkey}{$role}{'start'} = &process_date($text); |
$$details{$num}{'users'}{$userkey}{$role}{'start'} = &process_date($text); |
} |
} |
} elsif ("@state" eq "class users user roles role end") { |
} elsif ("@state" eq "class users user roles role end") { |
if ($role =~ /^(st|ad|ep|ta|in|cc)$/) { |
if (grep(/^\Q$role\E$/,@possroles)) { |
$$details{$num}{'users'}{$userkey}{$role}{'end'} = &process_date($text); |
$$details{$num}{'users'}{$userkey}{$role}{'end'} = &process_date($text); |
} |
} |
} elsif ("@state" eq "class users user roles role usec") { |
} elsif ("@state" eq "class users user roles role usec") { |
if ($role =~ /^(st|ad|ep|ta|in|cc)$/) { |
if (grep(/^\Q$role\E$/,@possroles)) { |
unless ($text eq '') { |
unless ($text eq '') { |
push(@{$$details{$num}{'users'}{$userkey}{$role}{'usec'}},$text); |
push(@{$$details{$num}{'users'}{$userkey}{$role}{'usec'}},$text); |
} |
} |
Line 433 sub build_course {
|
Line 436 sub build_course {
|
} |
} |
my $firstres = $details->{'firstres'}; |
my $firstres = $details->{'firstres'}; |
if ($firstres eq '') { |
if ($firstres eq '') { |
$firstres = 'syl'; |
if ($crstype eq 'Community') { |
|
$firstres = 'nav'; |
|
} else { |
|
$firstres = 'syl'; |
|
} |
} |
} |
foreach my $secid (sort(keys(%{$details->{'sections'}}))) { |
foreach my $secid (sort(keys(%{$details->{'sections'}}))) { |
$sectionstr .= $details->{'sections'}{$secid}{'inst'}.':'.$details->{'sections'}{$secid}{'loncapa'}.','; |
$sectionstr .= $details->{'sections'}{$secid}{'inst'}.':'.$details->{'sections'}{$secid}{'loncapa'}.','; |
Line 489 sub build_course {
|
Line 496 sub build_course {
|
course_home => $details->{'coursehome'}, |
course_home => $details->{'coursehome'}, |
nonstandard => $details->{'nonstandard'}, |
nonstandard => $details->{'nonstandard'}, |
crscode => $details->{'coursecode'}, |
crscode => $details->{'coursecode'}, |
|
defaultcredits => $details->{'defaultcredits'}, |
crsquota => $details->{'crsquota'}, |
crsquota => $details->{'crsquota'}, |
clonecourse => $details->{'clonecrs'}, |
clonecourse => $details->{'clonecrs'}, |
clonedomain => $details->{'clonedom'}, |
clonedomain => $details->{'clonedom'}, |
Line 606 sub build_course {
|
Line 614 sub build_course {
|
'cdom' => $crsudom, |
'cdom' => $crsudom, |
'context' => 'createcourse', |
'context' => 'createcourse', |
'linefeed' => $linefeed, |
'linefeed' => $linefeed, |
'role' => $details->{'users'}{$userkey}{'roles'}[0], |
'role' => $details->{'users'}{$userkey}{'roles'}[0], |
}; |
}; |
|
if ($userargs->{'role'} eq 'st') { |
|
if (exists($details->{'users'}{$userkey}{'credits'})) { |
|
$userargs->{'credits'} = $details->{'users'}{$userkey}{'credits'}; |
|
$userargs->{'credits'} =~ s/[^\d\.]//g; |
|
} |
|
} |
$outcome = &LONCAPA::Enrollment::create_newuser($userargs,$logmsg,$newusermsg,$enrollcount,$addresult,$longroles,\%courseinfo,$context); |
$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') { |
Line 638 sub build_course {
|
Line 652 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,$context); |
my $credits; |
|
if (exists($details->{'users'}{$userkey}{'credits'})) { |
|
$credits = $details->{'users'}{$userkey}{'credits'}; |
|
$credits =~ s/[^\d\.]//g; |
|
} |
|
$$output .= &Apache::loncommon::commit_studentrole(\$stulogmsg,$userdom,$username,$url,$curr_role,$start,$end,$crsudom,$crsunum,$usec,$context,$credits); |
} elsif ($curr_role eq $ccrole) { |
} elsif ($curr_role eq $ccrole) { |
$url = '/'.$crsudom.'/'.$crsunum; |
$url = '/'.$crsudom.'/'.$crsunum; |
my $usec = ''; |
my $usec = ''; |
Line 679 sub build_course {
|
Line 698 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,$context); |
my $credits; |
|
if (exists($details->{'users'}{$userkey}{'credits'})) { |
|
$credits = $details->{'users'}{$userkey}{'credits'}; |
|
$credits =~ s/[^\d\.]//g; |
|
} |
|
$$output .= &Apache::loncommon::commit_studentrole(\$stulogmsg,$userdom,$username,$url,$curr_role,$start,$end,$crsudom,$crsunum,$usec,$context,$credits); |
} elsif ((grep(/^\Q$curr_role\E$/,@courseroles)) || |
} elsif ((grep(/^\Q$curr_role\E$/,@courseroles)) || |
($curr_role =~ m{^cr/$match_domain/$match_username/[^/]+$})) { |
($curr_role =~ m{^cr/$match_domain/$match_username/[^/]+$})) { |
if (@{$details->{'users'}{$userkey}{$curr_role}{'usec'}} > 0) { |
if (@{$details->{'users'}{$userkey}{$curr_role}{'usec'}} > 0) { |