[prev in list] [next in list] [prev in thread] [next in thread] 

List:       lon-capa-cvs
Subject:    [LON-CAPA-cvs] cvs: loncom(version_2_11_X) /interface loncreatecourse.pm
From:       raeburn <raeburn () source ! lon-capa ! org>
Date:       2018-09-11 19:39:59
Message-ID: cvsraeburn1536694799 () cvsserver
[Download RAW message or body]

raeburn		Tue Sep 11 19:39:59 2018 EDT

  Modified files:              (Branch: version_2_11_X)
    /loncom/interface	loncreatecourse.pm 
  Log:
  - For 2.11
    Backport 1.168, 1.169
  
  
Index: loncom/interface/loncreatecourse.pm
diff -u loncom/interface/loncreatecourse.pm:1.158.2.3 \
                loncom/interface/loncreatecourse.pm:1.158.2.4
--- loncom/interface/loncreatecourse.pm:1.158.2.3	Sun Jan 22 19:46:46 2017
+++ loncom/interface/loncreatecourse.pm	Tue Sep 11 19:39:58 2018
@@ -1,7 +1,7 @@
 # The LearningOnline Network
 # Create a course
 #
-# $Id: loncreatecourse.pm,v 1.158.2.3 2017/01/22 19:46:46 raeburn Exp $
+# $Id: loncreatecourse.pm,v 1.158.2.4 2018/09/11 19:39:58 raeburn Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -82,7 +82,7 @@
 use Apache::lonuserutils;
 use Apache::lonclonecourse;
 use LONCAPA::batchcreatecourse;
-use LONCAPA;
+use LONCAPA qw(:DEFAULT :match);
 
 # ===================================================== Phase one: fill-in form
 
@@ -848,43 +848,60 @@
 
 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 $batchfilepath=&Apache::lonnet::userfileupload('coursecreatorxml',undef,
-                                                      'batchupload',undef,undef,
-                                                       undef,undef,$defdom);
-    my ($batchdir,$filename) = ($batchfilepath =~ m-^(.+)/pending/([^/]+)$-);
+    my $uname = $env{'user.name'};
+    my $udom = $env{'user.domain'};
+    my $dir = &LONCAPA::tempdir().'addcourse';
     my ($result,$logmsg);
-    if (-e "$batchfilepath") {
-        open(FILE,"<$batchfilepath");
-        my @buffer = <FILE>;
-        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;
+    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 = <FILE>;
                     close(FILE);
-                    if (-e "$batchdir/processed/$filename") {
-                        unlink("$batchdir/pending/$filename");
+                    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");
+                            }
+                        }
                     }
+                } else {
+                    $result = '<p class="LC_error">'.&mt('Could not open attributes \
file.').'<br />'.&mt('No courses created.').'</p>';  }
+            } else {
+                $result = '<p class="LC_error">'.&mt('No uploaded attributes file \
found.').'<br />'.&mt('No courses created.').'</p>';  }
+        } else {
+            $result = '<p class="LC_error">'.&mt('Invalid path to attributes \
file.').'<br />'.&mt('No courses created.').'</p>';  }
+    } else {
+        $result = '<p class="LC_error">'.&mt("Your username, domain, and/or your \
current role's domain are missing or contain invalid characters."). +                 \
'<br />'.&mt('No courses created.').'</p>';  }
-    $r->print($start_page.$crumbs.$logmsg.$result.'<br /><a \
                href="/adm/createcourse">'.
-              &mt('Creation options menu').'</a>'.$end_page);
- 
+    $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.'<br \
/><a href="/adm/createcourse">'. +              &mt('Creation options menu').'</a>'.
+              &Apache::loncommon::end_page());
 }
 
 sub courserequestbrowser_javascript {


_______________________________________________
LON-CAPA-cvs mailing list
LON-CAPA-cvs@mail.lon-capa.org
http://mail.lon-capa.org/mailman/listinfo/lon-capa-cvs


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic