--- loncom/interface/loncreatecourse.pm	2004/07/12 17:55:35	1.64
+++ loncom/interface/loncreatecourse.pm	2004/12/07 01:31:17	1.73
@@ -1,7 +1,7 @@
-#meserver The LearningOnline Network
+# The LearningOnline Network
 # Create a course
 #
-# $Id: loncreatecourse.pm,v 1.64 2004/07/12 17:55:35 raeburn Exp $
+# $Id: loncreatecourse.pm,v 1.73 2004/12/07 01:31:17 raeburn Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -38,7 +38,6 @@ use Apache::londocs;
 use Apache::lonlocal;
 use Apache::londropadd;
 use lib '/home/httpd/lib/perl';
-use localenroll;
 
 # ================================================ Get course directory listing
 
@@ -123,7 +122,9 @@ sub copyfile {
                      &readfile($origcrsid,$which),
 	    (
        '/uploaded/'.$origcrsdata{'domain'}.'/'.$origcrsdata{'num'}.'/'
-    => '/uploaded/'. $newcrsdata{'domain'}.'/'. $newcrsdata{'num'}.'/'
+    => '/uploaded/'. $newcrsdata{'domain'}.'/'. $newcrsdata{'num'}.'/',
+       '/public/'.$origcrsdata{'domain'}.'/'.$origcrsdata{'num'}.'/'
+    => '/public/'. $newcrsdata{'domain'}.'/'. $newcrsdata{'num'}.'/'
             )));
     }
 }
@@ -137,6 +138,9 @@ sub copydb {
     my %newcrsdata= &Apache::lonnet::coursedescription($newcrsid);
     my %data=&Apache::lonnet::dump
 	($which,$origcrsdata{'domain'},$origcrsdata{'num'});
+    foreach my $key (keys(%data)) {
+	if ($key=~/^internal./) { delete($data{$key}); }
+    }
     return &Apache::lonnet::put
 	($which,\%data,$newcrsdata{'domain'},$newcrsdata{'num'});
 }
@@ -202,7 +206,9 @@ sub copyresourcedb {
 sub copyuserfiles {
     my ($origcrsid,$newcrsid)=@_;
     foreach (&crsdirlist($origcrsid,'userfiles')) {
-	&copyfile($origcrsid,$newcrsid,$_);
+	if ($_ !~m|^scantron_|) {
+	    &copyfile($origcrsid,$newcrsid,$_);
+	}
     }
 }
 # ========================================================== Copy all userfiles
@@ -250,7 +256,7 @@ sub print_course_creation_page {
 	($ENV{'request.role.domain'},'clonedomain').
 		     &Apache::loncommon::selectcourse_link
 		     ('ccrs','clonecourse','clonedomain');
-    my $coursebrowserjs=&Apache::loncommon::coursebrowser_javascript();
+    my $coursebrowserjs=&Apache::loncommon::coursebrowser_javascript($ENV{'request.role.domain'});
     my $starttime = time;
     my $endtime = time+(6*30*24*60*60); # 6 months from now, approx
     my $enroll_table = &Apache::londropadd::date_setting_table($starttime,$endtime,'create_enrolldates');
@@ -278,7 +284,7 @@ sub print_course_creation_page {
                     'snid' => "Section Numbers and corresponding LON-CAPA section/group IDs",
                     'csli' => "a comma separated list of institutional section numbers, each separated by a colon from the (optional) corresponding section/group ID to be used in LON-CAPA e.g., 001:1,002:2",
                     'crcs' => "Crosslisted courses",
-                    'cscs' => "a comma separated list of course sections crosslisted with the current course, with each entry including the institutional course section name followed by a colon and then the (optional) groupID to be used in LON-CAPA, e.g., fs03ent231001:ent1,fs03bot231001:bot1,fs03zol231002:bot2", 
+                    'cscs' => "a comma separated list of course sections crosslisted with the current course, with each entry including the institutional course section name followed by a colon and then the (optional) groupID to be used in LON-CAPA, e.g., fs03ent231001:ent1,fs03bot231001:bot1,fs03zol231002:zol2",
                     'crco' => "Course Content",
                     'cncr' => "Completely new course",
                     'cecr' => "Clone an existing course", 
@@ -356,28 +362,41 @@ $helplink
 <form action="/adm/createcourse" method="post" name="ccrs">
 <h2>$lt{'cinf'}</h2>
 <p>
-<b>$lt{'ctit'}:</b>
-<input type="text" size="50" name="title">
+<label><b>$lt{'ctit'}:</b>
+<input type="text" size="50" name="title" /></label>
 </p><p>
-<b>$lt{'chsr'}:</b>$course_home
-</p><p>
-<b>$lt{'cidn'} ($lt{'opt'})</b>
-<input type="text" size="30" name="crsid">
+<label>
+    <b>$lt{'chsr'}:</b>$course_home
+</label>
+</p><p>
+<label>
+    <b>$lt{'cidn'} ($lt{'opt'})</b>
+    <input type="text" size="30" name="crsid" />
+</label>
 </p><p>
 <h2>$lt{'iinf'}</h2>
 <p>
 $lt{'stat'}
 </p><p>
-<b>$lt{'ccod'}</b>
-<input type="text" size="30" name="crscode" /><br/>
+<label>
+    <b>$lt{'ccod'}</b>
+    <input type="text" size="30" name="crscode" />
+</label>
+<br/>
 ($lt{'toin'})
 </p><p>
-<b>$lt{'snid'}</b>
- <input type="text" size="30" name="crssections" /><br/>
+<label>
+    <b>$lt{'snid'}</b>
+    <input type="text" size="30" name="crssections" />
+</label>
+<br/>
 ($lt{'csli'})
 </p><p>
-<b>$lt{'crcs'}</b>
-<input type="text" size="30" name="crsxlist" /><br/>
+<label>
+    <b>$lt{'crcs'}</b>
+    <input type="text" size="30" name="crsxlist" />
+</label>
+<br/>
 ($lt{'cscs'})
 </p>
 <h2>$lt{'crco'}</h2>
@@ -385,61 +404,92 @@ $lt{'stat'}
 <tr><th>$lt{'cncr'}</th><th>$lt{'cecr'}</th></tr>
 <tr><td>
 <p>
-<b>$lt{'map'}:</b>
-<input type="text" size="50" name="topmap">
+<label>
+    <b>$lt{'map'}:</b>
+    <input type="text" size="50" name="topmap" />
+</label>
 <a href="javascript:openbrowser('ccrs','topmap')">$lt{'smap'}</a>
 </p><p>
-<b>$lt{'sacr'}</b><br /> 
+<label for="nonstd"><b>$lt{'sacr'}</b></label>
+<br />
 ($lt{'ocik'}):
-<input type="checkbox" name="nonstandard">
-</p>
-<p>
+<input id="nonstd" type="checkbox" name="nonstandard" />
+</p><p>
 <b>$lt{'fres'}</b><br />($lt{'stco'}):
-<input type="radio" name="firstres" value="blank">$lt{'blnk'}
+<label>
+    <input type="radio" name="firstres" value="blank" />$lt{'blnk'}
+</label>
 &nbsp;
-<input type="radio" name="firstres" value="syl" checked>$lt{'sllb'}
+<label>
+    <input type="radio" name="firstres" value="syl" checked />$lt{'sllb'}
+</label>
 &nbsp;
-<input type="radio" name="firstres" value="nav">$lt{'navi'}
+<label>
+    <input type="radio" name="firstres" value="nav" />$lt{'navi'}
+</label>
 </p>
 </td><td>
-$lt{'cid'}: <input input type="text" size="25" name="clonecourse" value="" />
+<label>
+    $lt{'cid'}: <input type="text" size="25" name="clonecourse" value="" />
+</label>
 <br />
-$lt{'dmn'}: 
-$cloneform<br />&nbsp;<br />
+<label>
+    $lt{'dmn'}: $cloneform
+</label>
+<br />
+&nbsp;<br />
 $lt{'asov'}.
 </td></tr>
 </table>
 <h2>$lt{'assp'}</h2>
 <p>
-<b>$lt{'oaas'}: </b>
-<input type="checkbox" name="openall" />
+<label>
+    <b>$lt{'oaas'}: </b>
+    <input type="checkbox" name="openall" />
+</label>
 </p>
 <h2>$lt{'mssg'}</h2>
 <p>
-<b>$lt{'scpf'}: </b>
-<input type="checkbox" name="setpolicy" checked>
+<label>
+    <b>$lt{'scpf'}: </b>
+    <input type="checkbox" name="setpolicy" checked />
+</label>
 <br />
-<b>$lt{'scfc'}: </b>
-<input type="checkbox" name="setcontent" checked>
+<label>
+    <b>$lt{'scfc'}: </b>
+    <input type="checkbox" name="setcontent" checked />
+</label>
 </p>
 <h2>$lt{'cmmn'}</h2>
 <p>
-<b>$lt{'dsrd'}: </b>
-<input type="checkbox" name="disresdis" /> <br />
-<b>$lt{'dsuc'}: </b>
-<input type="checkbox" name="disablechat" />
+<label>
+    <b>$lt{'dsrd'}: </b>
+    <input type="checkbox" name="disresdis" />
+</label>
+<br />
+<label>
+    <b>$lt{'dsuc'}: </b>
+    <input type="checkbox" name="disablechat" />
+</label>
 </p>
 <h2>$lt{'acco'}</h2>
 <p>
-<b>$lt{'snak'}: </b>
-<input type="checkbox" name="setkeys" /><br />
-<b>$lt{'kaut'}: </b>
-<input type="text" size="30" name="keyauth" />
+<label>
+    <b>$lt{'snak'}: </b>
+    <input type="checkbox" name="setkeys" />
+</label>
+<br />
+<label>
+    <b>$lt{'kaut'}: </b>
+    <input type="text" size="30" name="keyauth" />
+</label>
 </p>
 <h2>$lt{'rshm'}</h2>
 <p>
-<b>$lt{'rshm'}: </b>
-<input type="text" name="reshome" size="30" value="/res/$defdom/" />
+<label>
+    <b>$lt{'rshm'}: </b>
+    <input type="text" name="reshome" size="30" value="/res/$defdom/" />
+</label>
 </p>
 <p>
 <h2>$lt{'aens'}</h2>
@@ -447,10 +497,13 @@ $lt{'aesc'}
 </p>
 <p>
 <b>$lt{'aadd'}</b>
-<input type="radio" name="autoadds" value="1" />$lt{'yes'} <input type="radio" name="autoadds" value="0" checked="true" />$lt{'no'}
+<label><input type="radio" name="autoadds" value="1" />$lt{'yes'}</label> 
+<label><input type="radio" name="autoadds" value="0" checked="true" />$lt{'no'}
+</label>
 </p><p>
 <b>$lt{'audr'}</b>
-<input type="radio" name="autodrops" value="1" />$lt{'yes'} <input type="radio" name="autodrops" value="0" checked="true" />$lt{'no'}
+<label><input type="radio" name="autodrops" value="1" />$lt{'yes'}</label> 
+<label><input type="radio" name="autodrops" value="0" checked="true" />$lt{'no'}</label>
 </p><p>
 <b>$lt{'dacu'}</b>
 $enroll_table
@@ -469,24 +522,40 @@ $locform
 </p><p>
 <b>$lt{'nech'}</b><br />
 $lt{'nccl'}<br/>
-<input type="radio" name="notify" value="1" />$lt{'yes'} <input type="radio" name="notify"
-value="0" checked="true" />$lt{'no'}
-</p><p>
-<b>$lt{'irsp'}</b> <input type="radio" name="showphotos" value="1" />$lt{'yes'} <input type="radio" name="showphotos" value="0" checked="true" />$lt{'no'}
+<label>
+    <input type="radio" name="notify" value="1" />$lt{'yes'}
+</label> 
+<label>
+    <input type="radio" name="notify" value="0" checked="true" />$lt{'no'}
+</label>
+</p><p>
+<b>$lt{'irsp'}</b>
+<label>
+    <input type="radio" name="showphotos" value="1" />$lt{'yes'}
+</label> 
+<label>
+    <input type="radio" name="showphotos" value="0" checked="true" />$lt{'no'}
+</label>
 </p>
 <hr />
 <h2>$lt{'cc'}</h2>
 <p>
-<b>$lt{'user'}:</b> <input type="text" size="15" name="ccuname" />
-</p><p>
-<b>$lt{'dmn'}:</b> $domform
-</p><p>
-<b>$lt{'ierc'}:</b>
-<input type="checkbox" name="expireown" checked>
+<label>
+    <b>$lt{'user'}:</b> <input type="text" size="15" name="ccuname" />
+</label>
+</p><p>
+<label>
+    <b>$lt{'dmn'}:</b> $domform
+</label>
+</p><p>
+<label>
+    <b>$lt{'ierc'}:</b>
+    <input type="checkbox" name="expireown" checked />
+</label>
 </p>
 <p>
 <input type="hidden" name="phase" value="two" />
-<input type="button" onClick="verify_message(this.form)" value="$lt{'opco'}">
+<input type="button" onClick="verify_message(this.form)" value="$lt{'opco'}" />
 </p>
 </form>
 </body>
@@ -547,7 +616,8 @@ ENDENHEAD
                                                $cdescr,$curl,
                                                $ENV{'form.course_home'},
                                                $ENV{'form.nonstandard'},
-                                               $ENV{'form.crscode'});
+                                               $ENV{'form.crscode'},
+                                               $ENV{'form.ccuname'});
 
     # Note: The testing routines depend on this being output; see 
     # Utils::Course. This needs to at least be output as a comment
@@ -581,6 +651,10 @@ ENDENHEAD
 	    $cenv{'url'}=$oldcenv{'url'};
 # Restore title
 	    $cenv{'description'}=$oldcenv{'description'};
+# restore grading mode
+	    if (defined($oldcenv{'grading'})) {
+		$cenv{'grading'}=$oldcenv{'grading'};
+	    }
 # Mark as cloned
 	    $cenv{'clonedfrom'}=$cloneid;
 	    delete($cenv{'default_enrollment_start_date'});
@@ -617,9 +691,8 @@ ENDENHEAD
                 my ($sec,$gp) = split/:/,$item;
                 my $class = $ENV{'form.crscode'}.$sec;
                 my $addcheck = &Apache::lonnet::auto_new_course($crsunum,$crsudom,$class,$cenv{'internal.courseowner'});
-                if ($addcheck eq 'ok') {
-                    $cenv{'internal.sectionnums'} .= $item.',';
-                } else {
+                $cenv{'internal.sectionnums'} .= $item.',';
+                unless ($addcheck eq 'ok') {
                     push @badclasses, $class;
                 }
             }
@@ -640,9 +713,8 @@ ENDENHEAD
             foreach my $item (@xlists) {
                 my ($xl,$gp) = split/:/,$item;
                 my $addcheck =  &Apache::lonnet::auto_new_course($crsunum,$crsudom,$xl,$cenv{'internal.courseowner'});
-                if ($addcheck eq 'ok') {
-                    $cenv{'internal.crosslistings'} .= $item.',';
-                } else {
+                $cenv{'internal.crosslistings'} .= $item.',';
+                unless ($addcheck eq 'ok') {
                     push @badclasses, $xl;
                 }
             }
@@ -657,12 +729,12 @@ ENDENHEAD
     }
     if ($ENV{'form.notify'}) {
       if ($ccuname) {
-        $cenv{'internal.notifylist'} = $ccuname;
+        $cenv{'internal.notifylist'} = $ccuname.'@'.$ccdomain;
       }
     }
     if (@badclasses > 0) {
         my %lt=&Apache::lonlocal::texthash(
-                'tclb' => 'The courses listed below have not been included as sections or crosslistings affiliated with your new LON-CAPA course. If automated course roster updates are enabled for this class, these particular sections/crosslistings will not contribute towards enrollment, because the user identified as the course owner for this LON-CAPA course',
+                'tclb' => 'The courses listed below were included as sections or crosslistings affiliated with your new LON-CAPA course.  However, if automated course roster updates are enabled for this class, these particular sections/crosslistings will not contribute towards enrollment, because the user identified as the course owner for this LON-CAPA course',
                 'dnhr' => 'does not have rights to access enrollment in these classes',
                 'adby' => 'as determined by the policies of your institution on access to official classlists'
         );
@@ -756,7 +828,7 @@ ENDENHEAD
     $cenv{'internal.encpref'}=100+int(9*rand(99));
     #
     # By default, use standard grading
-    $cenv{'grading'} = 'standard';
+    if (!defined($cenv{'grading'})) { $cenv{'grading'} = 'standard'; }
 
     $r->print('<br />'.&mt('Setting environment').': '.                 
           &Apache::lonnet::put('environment',\%cenv,$crsudom,$crsunum).'<br>');