--- loncom/interface/lonmodifycourse.pm	2003/12/29 14:38:44	1.4
+++ loncom/interface/lonmodifycourse.pm	2004/07/15 18:58:20	1.11
@@ -100,7 +100,11 @@ ENDBLOCK
             unless ($code =~m/^___\d+$/) {  $showcode = $code; }
             if ($item =~ m/^($dom)_(\w+)$/) {
                 $crs = $2;
-                $description = $courseIDs{$item};
+                if ($courseIDs{$item} =~ /^([^:]*):/) {
+                    $description = &Apache::lonnet::unescape($1);
+                } else {   
+                    $description = &Apache::lonnet::unescape($courseIDs{$item});
+                }
 # Get course owner
                 my %settings = &Apache::lonnet::get('environment',['internal.courseowner'],$dom,$crs);
                 if ( defined($settings{'internal.courseowner'}) ) {
@@ -197,9 +201,17 @@ all settings except course code, course
 	        } else {
 	            $enrollvar{$1} = localtime($settings{$item});
 	        }
-            } else {
+            } elsif ($1 eq "courseowner" || $1 eq "authtype" || $1 eq "autharg" || $1 eq "sectionnums" || $1 eq "coursecode" || $1 eq "crosslistings") {
 	        $enrollvar{$1} = $settings{$item};
             }
+        } elsif ($item =~ m/^default_enrollment_(start|end)_date$/) {
+            if ( ($1 eq 'end') && ($settings{$item} == 0) ) {
+                $enrollvar{$item} = $lt{'noen'};
+            } elsif ( ($1 eq 'start') && ($settings{$item} eq '') ) {
+                $enrollvar{$item} = 'When enrolled';
+            } else {
+                $enrollvar{$item} = localtime($settings{$item});
+            }
         }
     }
 
@@ -222,7 +234,7 @@ all settings except course code, course
         }
     }
     unless ( (grep/^$enrollvar{'courseowner'}$/,@local_ccs) || ($enrollvar{'courseowner'} eq '') )  {
-        push @local_ccs, $enrollvar{'coursecode'};
+        push @local_ccs, $enrollvar{'courseowner'};
         $pname{$enrollvar{'courseowner'}} =  &Apache::loncommon::plainname($enrollvar{'courseowner'},$dom);
         $active_cc = &LONCAPA::Enrollment::check_user_status($dom,$enrollvar{'coursecode'},$dom,$course,'cc');
         if ($active_cc eq 'ok') {
@@ -279,7 +291,7 @@ all settings except course code, course
 		 <td>$$typeref{$key}</td>
 		 <td>$enrollvar{$key}</td>
 		</tr>";
-       $iter ++;
+        $iter ++;
     }
     $disp_table .= "</table>
                    </td>
@@ -418,13 +430,13 @@ $disp_table
 <br/>
 ENDDOCUMENT
     &print_footer($r);
+    return;
 }
 
 sub modify_course {
     my ($r,$tasklongref,$typeref) = @_;
     my $dom = $ENV{'user.domain'};
     my $crs = $ENV{'form.course'};
-
     unless ( &check_course($dom,$crs) eq 'ok' ) {
         &print_header($r,$tasklongref);
         my $reply = "<br/>".&mt("The LON-CAPA course selected was not a valid course for this domain");
@@ -476,7 +488,6 @@ sub modify_course {
         $newattr{'authtype'} = $ENV{'form.login'};
         $newattr{'authtype'} .= $ENV{'form.krbver'};
         $newattr{'autharg'} = $ENV{'form.krbarg'};
-        $newattr{'autharg'} =~ tr/a-z/A-Z/; 
     } elsif ($ENV{'form.login'} eq 'int') {
         $newattr{'authtype'} ='internal';
         if ((defined($ENV{'form.intarg'})) && ($ENV{'form.intarg'})) {
@@ -509,6 +520,8 @@ sub modify_course {
         $newattr{'coursecode'}=$ENV{'form.coursecode'};
         unless ( $newattr{'coursecode'} eq $currattr{'coursecode'} ) {
             $changecode = 1;
+            my $courseid_entry = &Apache::lonnet::escape($dom.'_'.$crs).'='.&Apache::lonnet::escape($description).'='.&Apache::lonnet::escape($ENV{'form.coursecode'});
+            &Apache::lonnet::courseidput($dom,$courseid_entry,&Apache::lonnet::homeserver($crs,$dom));
         }
     }
 
@@ -548,10 +561,10 @@ sub modify_course {
                         if ($changecode) {
 	                    foreach my $sec (@sections) {
 		                if ($sec =~ m/^(.+):/) {
-		                    my $course_id = $newattr{'coursecode'}.$1;
-			            my $course_check = &localenroll::validate_courseID($course_id);
-			            if ($course_check eq 'ok') {  
-                                        my $outcome = &localenroll::new_course($course_id,$newattr{'courseowner'});
+		                    my $inst_course_id = $newattr{'coursecode'}.$1;
+                                    my $course_check = &Apache::lonnet::auto_validate_courseID($crs,$dom,$inst_course_id);
+			            if ($course_check eq 'ok') {
+                                        my $outcome = &Apache::lonnet::auto_new_course($crs,$dom,$inst_course_id,$newattr{'courseowner'});
 			                unless ($outcome eq 'ok') { 
 				            $warning .= &mt("If automatic enrollment is enabled for LON-CAPA course: ").$description.&mt(", automated enrollment may fail for ").$newattr{'coursecode'}.&mt(" - section $1 for the following reason: $outcome.<br/>");
 			                }
@@ -565,8 +578,8 @@ sub modify_course {
 	                } elsif ($changeowner) {
                             foreach my $sec (@sections) {
                                 if ($sec =~ m/^(.+):/) {
-                                    my $course_id = $newattr{'coursecode'}.$1;
-                                    my $outcome = &localenroll::new_course($course_id,$newattr{'courseowner'});
+                                    my $inst_course_id = $newattr{'coursecode'}.$1;
+                                    my $outcome = &Apache::lonnet::auto_new_course($crs,$dom,$inst_course_id,$newattr{'courseowner'});
                                     unless ($outcome eq 'ok') {
                                         $warning .= &mt("If automatic enrollment is enabled for LON-CAPA course: ").$description.&mt(", automated enrollment may fail for ").$newattr{'coursecode'}.&mt(" - section $1 for the following reason: $outcome.<br/>");
                                     }
@@ -581,7 +594,7 @@ sub modify_course {
 	            if ( (@xlists > 0) && ($changeowner) ) {
 	                foreach my $xlist (@xlists) {
 		            if ($xlist =~ m/^(.+):/) {
-                                my $outcome = &localenroll::new_course($1,$newattr{'courseowner'});
+                                my $outcome = &Apache::lonnet::auto_new_course($crs,$dom,$1,$newattr{'courseowner'});
 		                unless ($outcome eq 'ok') {
 			            $warning .= &mt("If automatic enrollment is enabled for LON-CAPA course: ").$description.&mt(", automated enrollment may fail for crosslisted class: ").$1.&mt(" for the following reason: $outcome.<br/>");
 		                }
@@ -593,7 +606,7 @@ sub modify_course {
         }
     } else {
         foreach my $attr (@params) {
-            $nochgresponse .= "<li>$$typeref{$attr} ".&mt("still set to \"").$currattr{$attr}."\".</li>";
+            $nochgresponse .= "<li>$$typeref{$attr} ".&mt("still set to")." \"".$currattr{$attr}."\".</li>";
         }
     }
 
@@ -671,32 +684,30 @@ $bodytag
  </tr>
 </table>
 ENDTHIS
+    return;
 }
 
 sub print_footer {
-  my $r = shift;
-  $r->print(<<ENDBASE);
+    my $r = shift;
+    $r->print(<<ENDBASE);
 <br/>
 </body>
 </html>
 ENDBASE
+    return;
 }
 
 sub check_course {
     my ($dom,$course) = @_;
     my %courseIDs = &Apache::lonnet::courseiddump($dom,'.',1);
-    my @courses = ();
     foreach my $key (sort keys %courseIDs) {
         if ($key =~ m/^($dom)_(\w+)$/) {
-            push @courses, $2;
+            if ($2 eq $course) {
+                return 'ok';
+            }
         }
     }
-    if (grep/^$course$/,@courses) {
-        return 'ok';
-    }
-    else {
-        return 'invalid course';
-    }
+    return 'invalid course';
 }
 
 
@@ -719,8 +730,10 @@ sub handler {
                        'autharg'  => 'Default authentication parameter',
                        'autoadds' => 'Automated adds',
                        'autodrops' => 'Automated drops',
-                       'autostart' => 'Date of first enrollment',
-                       'autoend' => 'Date of last enrollment',
+                       'autostart' => 'Date of first automated enrollment',
+                       'autoend' => 'Date of last automated enrollment',
+                       'default_enrollment_start_date' => 'Date of first student access',
+                       'default_enrollment_end_date' => 'Date of last student access',
                        'coursecode' => 'Official course code',
                        'courseowner' => "Username of course owner (\@$dom)",
                        'notifylist' => 'Course Coordinators to be notified of enrollment changes',