--- loncom/interface/loncreatecourse.pm 2017/11/16 16:22:58 1.158.2.3.2.1 +++ loncom/interface/loncreatecourse.pm 2020/05/22 21:52:14 1.158.2.3.4.1 @@ -1,7 +1,7 @@ # The LearningOnline Network # Create a course # -# $Id: loncreatecourse.pm,v 1.158.2.3.2.1 2017/11/16 16:22:58 raeburn Exp $ +# $Id: loncreatecourse.pm,v 1.158.2.3.4.1 2020/05/22 21:52:14 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -99,7 +99,7 @@ sub print_course_creation_page { foreach my $server (sort(keys(%host_servers))) { $course_home .= qq{}; } @@ -116,6 +116,8 @@ sub print_course_creation_page { my $endtime = time+(6*30*24*60*60); # 6 months from now, approx my $access_table = &Apache::lonuserutils::date_setting_table($starttime, $endtime,'create_defaultdates'); + my $openallfrom = + &Apache::lonhtmlcommon::date_setter('ccrs','openallfrom',$starttime); if ($crstype eq 'Course') { $enroll_table = &Apache::lonuserutils::date_setting_table($starttime, $endtime,'create_enrolldates'); @@ -185,6 +187,7 @@ function validate(formname) { 'shd' => 'Shift date parameters by number of days', 'assp' => "Assessment Parameters", 'oaas' => "Open all assessments", + 'sta' => "starting from:", 'mssg' => "Messaging", 'scpf' => "Set course policy feedback to Course Coordinator", 'scfc' => "Set resource content feedback to Course Coordinator", @@ -249,6 +252,8 @@ function validate(formname) { } my $js = < +// $coursebrowserjs END @@ -285,7 +292,7 @@ END 'Create_Courses'); $r->print($start_page.$crumbs); - $r->print('
' + $r->print('
' .&Apache::lonhtmlcommon::start_pick_box() .&Apache::lonhtmlcommon::row_headline() @@ -352,6 +359,7 @@ END .'' .''.&mt('Yes').(' 'x2) .''.&mt('No') + .'' .&Apache::lonhtmlcommon::row_closure() ); } @@ -399,7 +407,7 @@ END .&Apache::lonhtmlcommon::row_closure(1) .&Apache::lonhtmlcommon::end_pick_box() - .' ' + .' ' # Clone Course: .'' @@ -449,7 +457,10 @@ END .&Apache::lonhtmlcommon::row_closure() .&Apache::lonhtmlcommon::row_title($lt{'oaas'}) - .'' + .'' + .''.(' 'x2) + .''.', ' + .$lt{'sta'}.' '.$openallfrom.'' .&Apache::lonhtmlcommon::row_closure() .&Apache::lonhtmlcommon::row_headline() @@ -563,7 +574,8 @@ END

-' + +

' ); } elsif ($crstype eq 'Community') { $r->print(' @@ -585,7 +597,7 @@ sub create_course { my $ccuname =&LONCAPA::clean_username($env{'form.ccuname'}); my $ccdomain=&LONCAPA::clean_domain($env{'form.ccdomain'}); my $crstype = 'Community'; - my ($enrollstart,$enrollend,$startaccess,$endaccess); + my ($enrollstart,$enrollend,$startaccess,$endaccess,$openallfrom); my %domdefaults = &Apache::lonnet::get_domain_defaults($env{'request.role.domain'}); @@ -596,6 +608,7 @@ sub create_course { } $startaccess = &Apache::lonhtmlcommon::get_date_from_form('startaccess'); $endaccess = &Apache::lonhtmlcommon::get_date_from_form('endaccess'); + $openallfrom = &Apache::lonhtmlcommon::get_date_from_form('openallfrom'); my $autharg; my $authtype; @@ -661,6 +674,7 @@ sub create_course { disresdis => $env{'form.disresdis'}, disablechat => $env{'form.disablechat'}, openall => $env{'form.openall'}, + openallfrom => $openallfrom, firstres => $env{'form.firstres'} }; @@ -848,60 +862,43 @@ sub upload_batchfile { sub process_batchfile { my $r = shift; + my $start_page = + &Apache::loncommon::start_page('Create a New Course or Community'); + my $crumbs = &Apache::lonhtmlcommon::breadcrumbs('Creation Outcome','Create_Course',undef,'Create_Courses'); + my $end_page = + &Apache::loncommon::end_page(); my $defdom=$env{'request.role.domain'}; - my $uname = $env{'user.name'}; - my $udom = $env{'user.domain'}; - my $dir = &LONCAPA::tempdir().'addcourse'; + my $batchfilepath=&Apache::lonnet::userfileupload('coursecreatorxml',undef, + 'batchupload',undef,undef, + undef,undef,$defdom); + my ($batchdir,$filename) = ($batchfilepath =~ m-^(.+)/pending/([^/]+)$-); my ($result,$logmsg); - if (($defdom =~ /^$match_domain$/) && ($uname =~ /^$match_username$/) && ($udom =~/^$match_domain$/)) { - my $batchfilepath=&Apache::lonnet::userfileupload('coursecreatorxml',undef, - 'batchupload',undef,undef, - undef,undef,$defdom); - if ($batchfilepath =~ m{^(\Q$dir/$defdom/web/$uname\_$udom\E)/pending/([^/]+)$}) { - my ($batchdir,$filename) = ($1,$2); - if (-e "$batchfilepath") { - if (open(FILE,"<",$batchfilepath)) { - my @buffer = ; + if (-e "$batchfilepath") { + open(FILE,"<$batchfilepath"); + my @buffer = ; + close(FILE); + if ((defined($filename)) && (defined($batchdir))) { + my @requests = ($filename); + my %courseids = (); + ($result,$logmsg) = &LONCAPA::batchcreatecourse::create_courses( + \@requests,\%courseids,'web',$defdom, + $env{'user.name'},$env{'user.domain'}); + if ($result) { + if (!-e "$batchdir/processed") { + mkdir("$batchdir/processed", 0755); + open(FILE,">$batchdir/processed/$filename"); + print FILE @buffer; close(FILE); - if ((defined($filename)) && (defined($batchdir))) { - my @requests = ($filename); - my %courseids = (); - ($result,$logmsg) = &LONCAPA::batchcreatecourse::create_courses( - \@requests,\%courseids,'web',$defdom, - $uname,$udom); - if (keys(%courseids) > 0) { - if (!-e "$batchdir/processed") { - mkdir("$batchdir/processed", 0755); - } - if (-d "$batchdir/processed") { - if (open(FILE,">","$batchdir/processed/$filename")) { - print FILE @buffer; - close(FILE); - } - } - if (-e "$batchdir/processed/$filename") { - unlink("$batchdir/pending/$filename"); - } - } + if (-e "$batchdir/processed/$filename") { + unlink("$batchdir/pending/$filename"); } - } else { - $result = '

'.&mt('Could not open attributes file.').'
'.&mt('No courses created.').'

'; } - } else { - $result = '

'.&mt('No uploaded attributes file found.').'
'.&mt('No courses created.').'

'; } - } else { - $result = '

'.&mt('Invalid path to attributes file.').'
'.&mt('No courses created.').'

'; } - } else { - $result = '

'.&mt("Your username, domain, and/or your current role's domain are missing or contain invalid characters."). - '
'.&mt('No courses created.').'

'; } - $r->print(&Apache::loncommon::start_page('Create a New Course, Community or Placement Test'). - &Apache::lonhtmlcommon::breadcrumbs('Creation Outcome','Create_Course',undef,'Create_Courses'). - $logmsg.$result.'
'. - &mt('Creation options menu').''. - &Apache::loncommon::end_page()); + $r->print($start_page.$crumbs.$logmsg.$result.'
'. + &mt('Creation options menu').''.$end_page); + } sub courserequestbrowser_javascript {