version 1.102, 2007/06/29 14:32:43
|
version 1.108, 2008/06/24 15:51:25
|
Line 35 use Apache::lonnet;
|
Line 35 use Apache::lonnet;
|
use Apache::loncommon; |
use Apache::loncommon; |
use Apache::londocs; |
use Apache::londocs; |
use Apache::lonlocal; |
use Apache::lonlocal; |
use Apache::londropadd; |
use Apache::lonuserutils; |
use Apache::lonclonecourse; |
use Apache::lonclonecourse; |
use LONCAPA::batchcreatecourse; |
use LONCAPA::batchcreatecourse; |
use LONCAPA; |
use LONCAPA; |
Line 70 sub print_course_creation_page {
|
Line 70 sub print_course_creation_page {
|
if ($crstype eq 'Course') { |
if ($crstype eq 'Course') { |
my $starttime = time; |
my $starttime = time; |
my $endtime = time+(6*30*24*60*60); # 6 months from now, approx |
my $endtime = time+(6*30*24*60*60); # 6 months from now, approx |
$enroll_table = &Apache::londropadd::date_setting_table($starttime, |
$enroll_table = &Apache::lonuserutils::date_setting_table($starttime, |
$endtime,'create_enrolldates'); |
$endtime,'create_enrolldates'); |
$access_table = &Apache::londropadd::date_setting_table($starttime, |
$access_table = &Apache::lonuserutils::date_setting_table($starttime, |
$endtime,'create_defaultdates'); |
$endtime,'create_defaultdates'); |
($krbdef,$krbdefdom) = |
($krbdef,$krbdefdom) = |
&Apache::loncommon::get_kerberos_defaults($defdom); |
&Apache::loncommon::get_kerberos_defaults($defdom); |
$javascript_validations=&Apache::londropadd::javascript_validations( |
$javascript_validations=&Apache::lonuserutils::javascript_validations( |
'createcourse',$krbdefdom); |
'createcourse',$krbdefdom); |
my %param = ( formname => 'document.ccrs', |
my %param = ( formname => 'document.ccrs', |
kerb_def_dom => $krbdefdom, |
kerb_def_dom => $krbdefdom, |
Line 128 function validate(formname) {
|
Line 128 function validate(formname) {
|
'cid' => "Course ID", |
'cid' => "Course ID", |
'dmn' => "Domain", |
'dmn' => "Domain", |
'asov' => "Additional settings, if specified below, will override cloned settings", |
'asov' => "Additional settings, if specified below, will override cloned settings", |
|
'ncd' => "Do not clone date parameters", |
|
'prd' => 'Clone date parameters as-is', |
|
'shd' => 'Shift date parameters by number of days', |
'assp' => "Assessment Parameters", |
'assp' => "Assessment Parameters", |
'oaas' => "Open all assessments", |
'oaas' => "Open all assessments", |
'mssg' => "Messaging", |
'mssg' => "Messaging", |
Line 300 $lt{'stat'}
|
Line 303 $lt{'stat'}
|
$lt{'dmn'}: $cloneform |
$lt{'dmn'}: $cloneform |
</label> |
</label> |
<br /> |
<br /> |
|
<label><input type="radio" name="datemode" value="delete" /> $lt{'ncd'}</label><br /> |
|
<label><input type="radio" name="datemode" value="preserve" /> $lt{'prd'}</label><br /> |
|
<label><input type="radio" name="datemode" value="shift" checked="checked" /> $lt{'shd'}</label> |
|
<input type="text" size="5" name="dateshift" value="365" /><br /> |
<br /> |
<br /> |
$lt{'asov'}. |
$lt{'asov'}. |
</td></tr> |
</td></tr> |
Line 486 ENDDOCUMENT
|
Line 493 ENDDOCUMENT
|
$lt{'dmn'}: $cloneform |
$lt{'dmn'}: $cloneform |
</label> |
</label> |
<br /> |
<br /> |
<br /> |
<label><input type="radio" name="datemode" value="delete" /> $lt{'ncd'}</label><br /> |
|
<label><input type="radio" name="datemode" value="preserve" /> $lt{'prd'}</label><br /> |
|
<label><input type="radio" name="datemode" value="shift" checked="checked" /> $lt{'shd'}</label> |
|
<input type="text" size="5" name="dateshift" value="365" /><br /> <br /> |
$lt{'asov'}. |
$lt{'asov'}. |
</td></tr> |
</td></tr> |
</table> |
</table> |
Line 581 sub create_course {
|
Line 591 sub create_course {
|
|
|
my $autharg; |
my $autharg; |
my $authtype; |
my $authtype; |
my ($clonecourse,$clonedomain,$clonemsg); |
|
|
|
if (($env{'form.clonecourse'} ne '') && ($env{'form.clonedomain'} ne '')) { |
|
my $clonehome=&Apache::lonnet::homeserver($env{'form.clonecourse'},$env{'form.clonedomain'}); |
|
if ($clonehome eq 'no_host') { |
|
$clonemsg = &mt('The new course was not cloned from an existing course because the requested course from which to create the clone does not appear to be a valid course.'); |
|
} else { |
|
my %clonedesc = &Apache::lonnet::coursedescription($env{'form.clonedomain'}.'_'.$env{'form.clonecourse'},{'one_time' => 1}); |
|
if ($env{'request.role.domain'} eq $env{'form.clonedomain'}) { |
|
$clonecourse = $env{'form.clonecourse'}; |
|
$clonedomain = $env{'form.clonedomain'}; |
|
} else { |
|
my %clonehash = &Apache::lonnet::get('environment',['cloners'], |
|
$env{'form.clonedomain'},$env{'form.clonecourse'}); |
|
my @cloners = split(/,/,$clonehash{'cloners'}); |
|
my %roleshash = |
|
&Apache::lonnet::get_my_roles($ccuname,$ccdomain,'userroles', |
|
['active'],['cc'],[$env{'form.clonedomain'}]); |
|
if (($roleshash{$env{'form.clonecourse'}.':'.$env{'form.clonedomain'}.':cc'}) || (grep(/^\Q$ccuname\E:\Q$ccdomain\E$/,@cloners))) { |
|
$clonecourse = $env{'form.clonecourse'}; |
|
$clonedomain = $env{'form.clonedomain'}; |
|
} else { |
|
$clonemsg = &mt('The new course was not cloned from an existing course because the course owner ([_1]) does not have cloning rights in the existing course ([_2]).',$ccuname.':'.$ccdomain,$clonedesc{'description'}); |
|
} |
|
} |
|
} |
|
} |
|
|
|
if ($env{'form.login'} eq 'krb') { |
if ($env{'form.login'} eq 'krb') { |
$authtype = 'krb'; |
$authtype = 'krb'; |
Line 641 sub create_course {
|
Line 624 sub create_course {
|
nonstandard => $env{'form.nonstandard'}, |
nonstandard => $env{'form.nonstandard'}, |
crscode => $env{'form.crscode'}, |
crscode => $env{'form.crscode'}, |
crsquota => $env{'form.crsquota'}, |
crsquota => $env{'form.crsquota'}, |
clonecourse => $clonecourse, |
clonecourse => $env{'form.clonecourse'}, |
clonedomain => $clonedomain, |
clonedomain => $env{'form.clonedomain'}, |
|
datemode => $env{'form.datemode'}, |
|
dateshift => $env{'form.dateshift'}, |
crsid => $env{'form.crsid'}, |
crsid => $env{'form.crsid'}, |
curruser => $env{'user.name'}.':'.$env{'user.domain'}, |
curruser => $env{'user.name'}.':'.$env{'user.domain'}, |
crssections => $env{'form.crssections'}, |
crssections => $env{'form.crssections'}, |
Line 676 sub create_course {
|
Line 661 sub create_course {
|
# Check the veracity of the course coordinator |
# Check the veracity of the course coordinator |
if (&Apache::lonnet::homeserver($ccuname,$ccdomain) eq 'no_host') { |
if (&Apache::lonnet::homeserver($ccuname,$ccdomain) eq 'no_host') { |
$r->print('<form action="/adm/createuser" method="post" name="crtuser">'); |
$r->print('<form action="/adm/createuser" method="post" name="crtuser">'); |
$r->print(&mt('No such user').' '.$ccuname.' '.&mt('at').' '.$ccdomain.'.<br />'); |
$r->print('<div class="LC_warning">' |
$r->print(&mt("Please click Back on your browser and select another user, or ")); |
.&mt('No such user [_1] at domain [_2].','<tt>'.$ccuname.'</tt>','<tt>'.$ccdomain.'</tt>') |
$r->print(' |
.'</div>'); |
<input type="hidden" name="phase" value="get_user_info" /> |
$r->print(&mt('Please click Back on your browser and select another user, or [_1]Create User[_2]' |
<input type="hidden" name="ccuname" value="'.$ccuname.'" /> |
, '<input type="hidden" name="phase" value="get_user_info" />' |
<input type="hidden" name="ccdomain" value="'.$ccdomain.'" /> |
.'<input type="hidden" name="ccuname" value="'.$ccuname.'" />' |
<input name="userrole" type="submit" value="'. |
.'<input type="hidden" name="ccdomain" value="'.$ccdomain.'" />' |
&mt('Create User').'" /> |
.'<input name="userrole" type="submit" value="' |
</form>'.&Apache::loncommon::end_page()); |
, '" />' |
|
) |
|
.'</form>'.&Apache::loncommon::end_page() |
|
); |
return; |
return; |
} |
} |
# Check the proposed home server for the course |
# Check the proposed home server for the course |
my %host_servers = |
my %host_servers = |
&Apache::lonnet::get_servers($env{'request.role.domain'},'library'); |
&Apache::lonnet::get_servers($env{'request.role.domain'},'library'); |
if (! exists($host_servers{$env{'form.course_home'}})) { |
if (! exists($host_servers{$env{'form.course_home'}})) { |
$r->print(&mt('Invalid home server for course').': '. |
$r->print(&mt('Invalid home server for course: [_1]' |
$env{'form.course_home'}.&Apache::loncommon::end_page()); |
,$env{'form.course_home'}.&Apache::loncommon::end_page())); |
return; |
return; |
} |
} |
if ($clonemsg ne '') { |
|
$r->print('<p>'.$clonemsg.'</p>'); |
|
} |
|
my ($courseid,$crsudom,$crsunum); |
my ($courseid,$crsudom,$crsunum); |
$r->print(&Apache::loncommon::construct_course($args,\$logmsg,\$courseid,\$crsudom,\$crsunum,$env{'user.domain'},$env{'user.name'})); |
my ($success,$output) = |
|
&Apache::loncommon::construct_course($args,\$logmsg,\$courseid, |
# |
\$crsudom,\$crsunum, |
# Make the requested user a course coordinator or group coordinator |
$env{'user.domain'}, |
# |
$env{'user.name'}); |
if (($ccdomain) && ($ccuname)) { |
$r->print($output); |
$r->print(&mt('Assigning role of [_1] Coordinator to [_2] at [_3]:', |
if ($success) { |
$crstype,$ccuname,$ccdomain). |
# |
&Apache::lonnet::assignrole($ccdomain,$ccuname,$courseid, |
# Make the requested user a course coordinator or group coordinator |
'cc').'<p>'); |
# |
} |
if (($ccdomain) && ($ccuname)) { |
if ($env{'form.setkeys'}) { |
$r->print(&mt('Assigning role of [_1] Coordinator to [_2] at [_3]: ', |
$r->print( |
$crstype,$ccuname,$ccdomain). |
'<p><a href="/adm/managekeys?cid='.$crsudom.'_'.$crsunum.'">'.&mt('Manage Access Keys').'</a></p>'); |
&Apache::lonnet::assignrole($ccdomain,$ccuname,$courseid, |
} |
'cc','','','','','createcourse').'<p>'); |
# Flush the course logs so reverse user roles immediately updated |
} |
&Apache::lonnet::flushcourselogs(); |
if ($env{'form.setkeys'}) { |
$r->print('<p>'.&mt('Roles will be active at next login').'.</p>'. |
$r->print( |
'<p><a href="/adm/createcourse?phase='.lc($crstype).'one">'. |
'<p><a href="/adm/managekeys?cid='.$crsudom.'_'.$crsunum.'">'.&mt('Manage Access Keys').'</a></p>'); |
|
} |
|
# Flush the course logs so reverse user roles immediately updated |
|
&Apache::lonnet::flushcourselogs(); |
|
$r->print('<p>'.&mt('Roles will be active at next login').'.</p>'); |
|
} |
|
$r->print('<p><a href="/adm/createcourse?phase='.lc($crstype).'one">'. |
&mt('Create Another [_1]',$crstype).'</a></p>'. |
&mt('Create Another [_1]',$crstype).'</a></p>'. |
&Apache::loncommon::end_page()); |
&Apache::loncommon::end_page()); |
} |
} |
Line 737 sub print_intro_page {
|
Line 728 sub print_intro_page {
|
&mt('Create a new course by completing an online form.'), |
&mt('Create a new course by completing an online form.'), |
}, |
}, |
{ internal_name => 'groupone', |
{ internal_name => 'groupone', |
name => &mt('Create a single collaborative group space '), |
name => &mt('Create a single collaborative group space'), |
short_description => |
short_description => |
&mt('Create a new group space for non-course use by completing an online form .'), |
&mt('Create a new group space for non-course use by completing an online form.'), |
}, |
}, |
{ internal_name => 'batchone', |
{ internal_name => 'batchone', |
name => &mt('Create courses/groups by uploading an attributes file'), |
name => &mt('Create courses/groups by uploading an attributes file'), |
short_description => |
short_description => |
&mt('Upload an attributes file containing specifications for one or more courses or groups in XML format'), |
&mt('Upload an attributes file containing specifications for one or more courses or groups in XML format.'), |
help => 'Batch_Creation', |
help => 'Batch_Creation', |
}, |
}, |
); |
); |
Line 823 sub process_batchfile {
|
Line 814 sub process_batchfile {
|
} |
} |
} |
} |
} |
} |
$r->print($start_page.$crumbs.$result.$end_page); |
$r->print($start_page.$crumbs.$logmsg.$result.'<br /><a href="/adm/createcourse">'. |
|
&mt('Creation options menu').'</a>'.$end_page); |
|
|
} |
} |
|
|