--- loncom/interface/loncreatecourse.pm	2007/07/02 03:36:28	1.103
+++ loncom/interface/loncreatecourse.pm	2008/01/22 22:37:18	1.106
@@ -1,7 +1,7 @@
 # The LearningOnline Network
 # Create a course
 #
-# $Id: loncreatecourse.pm,v 1.103 2007/07/02 03:36:28 raeburn Exp $
+# $Id: loncreatecourse.pm,v 1.106 2008/01/22 22:37:18 www Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -35,7 +35,7 @@ use Apache::lonnet;
 use Apache::loncommon;
 use Apache::londocs;
 use Apache::lonlocal;
-use Apache::londropadd;
+use Apache::lonuserutils;
 use Apache::lonclonecourse;
 use LONCAPA::batchcreatecourse;
 use LONCAPA;
@@ -70,13 +70,13 @@ sub print_course_creation_page {
     if ($crstype eq 'Course') {
         my $starttime = time;
         my $endtime = time+(6*30*24*60*60); # 6 months from now, approx
-        $enroll_table = &Apache::londropadd::date_setting_table($starttime,
-                                                $endtime,'create_enrolldates');
-        $access_table = &Apache::londropadd::date_setting_table($starttime,
-                                               $endtime,'create_defaultdates');
+        $enroll_table = &Apache::lonuserutils::date_setting_table($starttime,
+                                              $endtime,'create_enrolldates');
+        $access_table = &Apache::lonuserutils::date_setting_table($starttime,
+                                             $endtime,'create_defaultdates');
         ($krbdef,$krbdefdom) =
         &Apache::loncommon::get_kerberos_defaults($defdom);
-        $javascript_validations=&Apache::londropadd::javascript_validations(
+        $javascript_validations=&Apache::lonuserutils::javascript_validations(
                                                     'createcourse',$krbdefdom);
         my %param = ( formname      => 'document.ccrs',
                       kerb_def_dom  => $krbdefdom,
@@ -128,6 +128,9 @@ function validate(formname) {
                     'cid'  => "Course ID",
                     'dmn'  => "Domain",
                     '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",
                     'oaas' => "Open all assessments",
                     'mssg' => "Messaging",
@@ -300,6 +303,10 @@ $lt{'stat'}
     $lt{'dmn'}: $cloneform
 </label>
 <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 />
 &nbsp;<br />
 $lt{'asov'}.
 </td></tr>
@@ -486,7 +493,10 @@ ENDDOCUMENT
     $lt{'dmn'}: $cloneform
 </label>
 <br />
-&nbsp;<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 />&nbsp;<br />
 $lt{'asov'}.
 </td></tr>
 </table>
@@ -616,6 +626,8 @@ sub create_course {
                crsquota => $env{'form.crsquota'},
                clonecourse => $env{'form.clonecourse'},
                clonedomain => $env{'form.clonedomain'},
+               datemode => $env{'form.datemode'},
+               dateshift => $env{'form.dateshift'},
                crsid => $env{'form.crsid'},
                curruser => $env{'user.name'}.':'.$env{'user.domain'},
                crssections => $env{'form.crssections'},
@@ -669,25 +681,31 @@ sub create_course {
         return;
     }
     my ($courseid,$crsudom,$crsunum);
-    $r->print(&Apache::loncommon::construct_course($args,\$logmsg,\$courseid,\$crsudom,\$crsunum,$env{'user.domain'},$env{'user.name'}));
-
-#
-# Make the requested user a course coordinator or group coordinator
-#
-    if (($ccdomain) && ($ccuname)) {
-        $r->print(&mt('Assigning role of [_1] Coordinator to [_2] at [_3]: ',
-                     $crstype,$ccuname,$ccdomain).
-                  &Apache::lonnet::assignrole($ccdomain,$ccuname,$courseid,
-                                              'cc').'<p>');
-    }
-    if ($env{'form.setkeys'}) {
-        $r->print(
- '<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>'.
-	      '<p><a href="/adm/createcourse?phase='.lc($crstype).'one">'.
+    my ($success,$output) = 
+	&Apache::loncommon::construct_course($args,\$logmsg,\$courseid,
+					     \$crsudom,\$crsunum,
+					     $env{'user.domain'},
+					     $env{'user.name'});
+    $r->print($output);
+    if ($success) {
+        #
+	# Make the requested user a course coordinator or group coordinator
+        #
+	if (($ccdomain) && ($ccuname)) {
+	    $r->print(&mt('Assigning role of [_1] Coordinator to [_2] at [_3]: ',
+			  $crstype,$ccuname,$ccdomain).
+		      &Apache::lonnet::assignrole($ccdomain,$ccuname,$courseid,
+						  'cc').'<p>');
+	}
+	if ($env{'form.setkeys'}) {
+	    $r->print(
+		      '<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>'.
 	      &Apache::loncommon::end_page());
 }