Diff for /loncom/interface/loncreatecourse.pm between versions 1.62 and 1.65

version 1.62, 2004/07/01 21:54:24 version 1.65, 2004/08/17 21:26:06
Line 1 Line 1
 #meserver The LearningOnline Network  # The LearningOnline Network
 # Create a course  # Create a course
 #  #
 # $Id$  # $Id$
Line 53  sub crsdirlist { Line 53  sub crsdirlist {
 sub innercrsdirlist {  sub innercrsdirlist {
     my ($courseid,$which,$path)=@_;      my ($courseid,$which,$path)=@_;
     my $dirptr=16384;      my $dirptr=16384;
     unless ($which) { $which=''; }      unless ($which) { $which=''; } else { $which.='/'; }
     unless ($path)  { $path=''; }      unless ($path)  { $path=''; } else { $path.='/'; }
     my %crsdata=&Apache::lonnet::coursedescription($courseid);      my %crsdata=&Apache::lonnet::coursedescription($courseid);
     my @listing=&Apache::lonnet::dirlist      my @listing=&Apache::lonnet::dirlist
  ($which,$crsdata{'domain'},$crsdata{'num'},   ($which,$crsdata{'domain'},$crsdata{'num'},
Line 64  sub innercrsdirlist { Line 64  sub innercrsdirlist {
     my @unpackline = split (/\&/,$_);      my @unpackline = split (/\&/,$_);
     if ($unpackline[3]&$dirptr) {      if ($unpackline[3]&$dirptr) {
 # is a directory, recurse  # is a directory, recurse
  &innercrsdirlist($courseid,$which.'/'.$unpackline[0],   &innercrsdirlist($courseid,$which.$unpackline[0],
             $path.'/'.$unpackline[0]);              $path.$unpackline[0]);
     } else {       } else { 
 # is a file, put into output  # is a file, put into output
  push (@output,$path.'/'.$unpackline[0]);   push (@output,$path.$unpackline[0]);
     }      }
  }   }
     }      }
Line 278  sub print_course_creation_page { Line 278  sub print_course_creation_page {
                     'snid' => "Section Numbers and corresponding LON-CAPA section/group IDs",                      '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",                      '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",                      '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",                      'crco' => "Course Content",
                     'cncr' => "Completely new course",                      'cncr' => "Completely new course",
                     'cecr' => "Clone an existing course",                       'cecr' => "Clone an existing course", 
Line 590  ENDENHEAD Line 590  ENDENHEAD
 #  #
 # Set environment (will override cloned, if existing)  # Set environment (will override cloned, if existing)
 #  #
     my @affiliates = ();  # Used to accumulate sections and crosslistings      my @sections = ();
       my @xlists = ();
     if ($ENV{'form.crsid'}) {      if ($ENV{'form.crsid'}) {
         $cenv{'courseid'}=$ENV{'form.crsid'};          $cenv{'courseid'}=$ENV{'form.crsid'};
     }      }
     if ($ENV{'form.crscode'}) {      if ($ENV{'form.crscode'}) {
         $cenv{'internal.coursecode'}=$ENV{'form.crscode'};          $cenv{'internal.coursecode'}=$ENV{'form.crscode'};
     }      }
       if ($ccuname) {
           $cenv{'internal.courseowner'} = $ccuname;
       } else {
           $cenv{'internal.courseowner'} = $ENV{'user.name'};
       }
   
       my @badclasses = (); # Used to accumulate sections/crosslistings that did not pass classlist access check for course owner.
     if ($ENV{'form.crssections'}) {      if ($ENV{'form.crssections'}) {
         $cenv{'internal.sectionnums'}=$ENV{'form.crssections'};          $cenv{'internal.sectionnums'} = '';
         my @sections = ();          if ($ENV{'form.crssections'} =~ m/,/) {
         if ($cenv{'internal.sectionnums'} =~ m/,/) {              @sections = split/,/,$ENV{'form.crssections'};
             @sections = split/,/,$cenv{'internal.sectionnums'};  
         } else {          } else {
             $sections[0] = $cenv{'internal.sectionnums'};              $sections[0] = $ENV{'form.crssections'};
         }          }
         if (@sections > 0) {          if (@sections > 0) {
             foreach (@sections) {              foreach my $item (@sections) {
                 my ($sec,$gp) = split/:/,$_;                   my ($sec,$gp) = split/:/,$item;
                 push @affiliates,$ENV{'form.crscode'}.$sec;                  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 {
                       push @badclasses, $class;
                   }
             }              }
               $cenv{'internal.sectionnums'} =~ s/,$//;
         }          }
     }      }
 # do not hide course coordinator from staff listing,   # do not hide course coordinator from staff listing, 
 # even if privileged  # even if privileged
     $cenv{'nothideprivileged'}=$ccuname.':'.$ccdomain;      $cenv{'nothideprivileged'}=$ccuname.':'.$ccdomain;
     if ($ENV{'form.crsxlist'}) {      if ($ENV{'form.crsxlist'}) {
        $cenv{'internal.crosslistings'}=$ENV{'form.crsxlist'};          $cenv{'internal.crosslistings'}='';
        my @xlists = ();          if ($ENV{'form.crsxlist'} =~ m/,/) {
         if ($cenv{'internal.crosslistings'} =~ m/,/) {              @xlists = split/,/,$ENV{'form.crsxlist'};
             @xlists = split/,/,$cenv{'internal.crosslistings'};  
         } else {          } else {
             $xlists[0] = $cenv{'internal.crosslistings'};              $xlists[0] = $ENV{'form.crsxlist'};
         }          }
         if (@xlists > 0) {          if (@xlists > 0) {
             foreach (@xlists) {              foreach my $item (@xlists) {
                 my ($xl,$gp) = split/:/,$_;                  my ($xl,$gp) = split/:/,$item;
                 push @affiliates,$xl;                  my $addcheck =  &Apache::lonnet::auto_new_course($crsunum,$crsudom,$xl,$cenv{'internal.courseowner'});
                   if ($addcheck eq 'ok') {
                       $cenv{'internal.crosslistings'} .= $item.',';
                   } else {
                       push @badclasses, $xl;
                   }
             }              }
               $cenv{'internal.crosslistings'} =~ s/,$//;
         }          }
     }      }
     if ($ENV{'form.autoadds'}) {      if ($ENV{'form.autoadds'}) {
Line 638  ENDENHEAD Line 657  ENDENHEAD
     }      }
     if ($ENV{'form.notify'}) {      if ($ENV{'form.notify'}) {
       if ($ccuname) {        if ($ccuname) {
         $cenv{'internal.notifylist'} = $ccuname;          $cenv{'internal.notifylist'} = $ccuname.'@'.$ccdomain;
       }        }
     }      }
     if ($ccuname) {      if (@badclasses > 0) {
         $cenv{'internal.courseowner'} = $ccuname;          my %lt=&Apache::lonlocal::texthash(
     } else {                  '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',
         $cenv{'internal.courseowner'} = $ENV{'user.name'};                  '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'
     if (@affiliates > 0) {          );
         my @badclasses = ();          $r->print('<font color="red">'.$lt{'tclb'}.' ('.$cenv{'internal.courseowner'}.') - '.$lt{'dnhr'}.' ('.$lt{'adby'}.').<br /><ul>'."\n");
         foreach my $class (@affiliates) {          foreach (@badclasses) {
             my $addcheck = &Apache::lonnet::auto_new_course($crsunum,$crsudom,$class,$cenv{'internal.courseowner'});              $r->print("<li>$_</li>\n");
             unless ($addcheck eq 'ok') {  
                 push @badclasses, $class;   
             }  
         }  
         if (@badclasses > 0) {  
             $r->print('<font color="red">'.  
                       "The courses listed below were 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 ($cenv{'internal.courseowner'}) - does not have rights to access enrollment in these classes (as determined by your instititution's policies on access to official classlists).<br/><ul>\n");  
             foreach (@badclasses) {  
                 $r->print("<li>$_</li>\n");  
             }  
             $r->print ("</ul><br/><br/></font>\n");  
         }          }
           $r->print ("</ul><br /><br /></font>\n");
     }      }
     my $enrollstart = &Apache::lonhtmlcommon::get_date_from_form('startenroll');      my $enrollstart = &Apache::lonhtmlcommon::get_date_from_form('startenroll');
     my $enrollend   = &Apache::lonhtmlcommon::get_date_from_form('endenroll');      my $enrollend   = &Apache::lonhtmlcommon::get_date_from_form('endenroll');

Removed from v.1.62  
changed lines
  Added in v.1.65


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>