Diff for /loncom/interface/loncreatecourse.pm between versions 1.50 and 1.60

version 1.50, 2004/02/13 15:24:00 version 1.60, 2004/06/17 18:31:24
Line 1 Line 1
 # The LearningOnline Network  #meserver The LearningOnline Network
 # Create a course  # Create a course
 #  #
 # $Id$  # $Id$
Line 42  use localenroll; Line 42  use localenroll;
   
 # ================================================ Get course directory listing  # ================================================ Get course directory listing
   
   #FIXME - doesn't support directories under /userfiles/ BUG#2999
 sub crsdirlist {  sub crsdirlist {
     my ($courseid,$which)=@_;      my ($courseid,$which)=@_;
     unless ($which) { $which=''; }      unless ($which) { $which=''; }
Line 51  sub crsdirlist { Line 52  sub crsdirlist {
  &Apache::loncommon::propath($crsdata{'domain'},$crsdata{'num'}));   &Apache::loncommon::propath($crsdata{'domain'},$crsdata{'num'}));
     my @output=();      my @output=();
     foreach (@listing) {      foreach (@listing) {
    #FIXME if list is a DIR need to recurse
  unless ($_=~/^\./) {   unless ($_=~/^\./) {
     push (@output,(split(/\&/,$_))[0]);      push (@output,(split(/\&/,$_))[0]);
  }   }
Line 236  sub print_course_creation_page { Line 238  sub print_course_creation_page {
     my $coursebrowserjs=&Apache::loncommon::coursebrowser_javascript();      my $coursebrowserjs=&Apache::loncommon::coursebrowser_javascript();
     my $starttime = time;      my $starttime = time;
     my $endtime = time+(6*30*24*60*60); # 6 months from now, approx      my $endtime = time+(6*30*24*60*60); # 6 months from now, approx
     my $date_table = &Apache::londropadd::date_setting_table($starttime,$endtime,'createcourse');      my $enroll_table = &Apache::londropadd::date_setting_table($starttime,$endtime,'create_enrolldates');
       my $access_table = &Apache::londropadd::date_setting_table($starttime,$endtime,'create_defaultdates');
     my ($krbdef,$krbdefdom) =      my ($krbdef,$krbdefdom) =
     &Apache::loncommon::get_kerberos_defaults($defdom);      &Apache::loncommon::get_kerberos_defaults($defdom);
     my $javascript_validations=&Apache::londropadd::javascript_validations('createcourse',$krbdefdom);      my $javascript_validations=&Apache::londropadd::javascript_validations('createcourse',$krbdefdom);
Line 286  sub print_course_creation_page { Line 289  sub print_course_creation_page {
                     'dsuc' => "Disable student use of chatrooms",                      'dsuc' => "Disable student use of chatrooms",
                     'acco' => "Access Control",                      'acco' => "Access Control",
                     'snak' => "Students need access key to enter course",                      'snak' => "Students need access key to enter course",
       'kaut' => 
       'Key authority (<tt>id@domain</tt>) if other than course',
                     'cc'   => "Course Coordinator",                      'cc'   => "Course Coordinator",
                     'user' => "Username",                      'user' => "Username",
                     'ierc' => "Immediately expire own role as Course Coordinator",                      'ierc' => "Immediately expire own role as Course Coordinator",
Line 296  sub print_course_creation_page { Line 301  sub print_course_creation_page {
                     'no'   => "No",                      'no'   => "No",
                     'audr' => "Automated drops",                      'audr' => "Automated drops",
                     'dacu' => "Duration of automated classlist updates",                      'dacu' => "Duration of automated classlist updates",
                       'dacc' => "Default start and end dates for student access",
                     'psam' => "Please select the authentication mechanism",                      'psam' => "Please select the authentication mechanism",
                     'pcda' => "Please choose the default authentication method to be used by new users added to this LON-CAPA domain by the automated enrollment process",                      'pcda' => "Please choose the default authentication method to be used by new users added to this LON-CAPA domain by the automated enrollment process",
                     'nech' => "Notification of enrollment changes",                      'nech' => "Notification of enrollment changes",
                     'nccl' => "Notification to course coordinator via LON-CAPA message when enrollment changes occur during the automated update?",                      'nccl' => "Notification to course coordinator via LON-CAPA message when enrollment changes occur during the automated update?",
                     'irsp' => "Include retrieval of student photographs?",                      'irsp' => "Include retrieval of student photographs?",
       'rshm' => 'Resource Space Home',
                     'opco' => "Open Course"                      'opco' => "Open Course"
        );         );
     $r->print(<<ENDDOCUMENT);      $r->print(<<ENDDOCUMENT);
Line 396  $lt{'asov'}. Line 403  $lt{'asov'}.
 <p>  <p>
 <b>$lt{'scpf'}: </b>  <b>$lt{'scpf'}: </b>
 <input type="checkbox" name="setpolicy" checked>  <input type="checkbox" name="setpolicy" checked>
 </p><p>  <br />
 <b>$lt{'scfc'}: </b>  <b>$lt{'scfc'}: </b>
 <input type="checkbox" name="setcontent" checked>  <input type="checkbox" name="setcontent" checked>
 </p>  </p>
Line 410  $lt{'asov'}. Line 417  $lt{'asov'}.
 <h2>$lt{'acco'}</h2>  <h2>$lt{'acco'}</h2>
 <p>  <p>
 <b>$lt{'snak'}: </b>  <b>$lt{'snak'}: </b>
 <input type="checkbox" name="setkeys" />  <input type="checkbox" name="setkeys" /><br />
   <b>$lt{'kaut'}: </b>
   <input type="text" size="30" name="keyauth" />
   </p>
   <h2>$lt{'rshm'}</h2>
   <p>
   <b>$lt{'rshm'}: </b>
   <input type="text" name="reshome" size="30" value="/res/$defdom/" />
 </p>  </p>
 <h2>$lt{'cc'}</h2>  
 <p>  <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>  
 </p><p>  
 <h2>$lt{'aens'}</h2>  <h2>$lt{'aens'}</h2>
 $lt{'aesc'}  $lt{'aesc'}
 </p>  </p>
Line 432  $lt{'aesc'} Line 438  $lt{'aesc'}
 <input type="radio" name="autodrops" value="1" />$lt{'yes'} <input type="radio" name="autodrops" value="0" checked="true" />$lt{'no'}  <input type="radio" name="autodrops" value="1" />$lt{'yes'} <input type="radio" name="autodrops" value="0" checked="true" />$lt{'no'}
 </p><p>  </p><p>
 <b>$lt{'dacu'}</b>  <b>$lt{'dacu'}</b>
 $date_table  $enroll_table
 </p><p>  </p><p>
   <b>$lt{'dacc'}</b>
   $access_table
   <p></p>
 <b>$lt{'psam'}.</b><br />  <b>$lt{'psam'}.</b><br />
 $lt{'pcda'}.  $lt{'pcda'}.
 </p><p>  </p><p>
Line 449  $lt{'nccl'}<br/> Line 458  $lt{'nccl'}<br/>
 value="0" checked="true" />$lt{'no'}  value="0" checked="true" />$lt{'no'}
 </p><p>  </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'}  <b>$lt{'irsp'}</b> <input type="radio" name="showphotos" value="1" />$lt{'yes'} <input type="radio" name="showphotos" value="0" checked="true" />$lt{'no'}
   </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>  </p><p>
   <b>$lt{'ierc'}:</b>
   <input type="checkbox" name="expireown" checked>
   </p>
   <p>
 <input type="hidden" name="phase" value="two" />  <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>  </p>
Line 464  ENDDOCUMENT Line 484  ENDDOCUMENT
 sub create_course {  sub create_course {
     my $r=shift;      my $r=shift;
     my $topurl='/res/'.&Apache::lonnet::declutter($ENV{'form.topmap'});      my $topurl='/res/'.&Apache::lonnet::declutter($ENV{'form.topmap'});
       my $this_server = $Apache::lonnet::perlvar{'lonHostID'};
     my $ccuname=$ENV{'form.ccuname'};      my $ccuname=$ENV{'form.ccuname'};
     my $ccdomain=$ENV{'form.ccdomain'};      my $ccdomain=$ENV{'form.ccdomain'};
     $ccuname=~s/\W//g;      $ccuname=~s/\W//g;
Line 483  ENDENHEAD Line 504  ENDENHEAD
     #      #
     # Check the veracity of the course coordinator      # Check the veracity of the course coordinator
     if (&Apache::lonnet::homeserver($ccuname,$ccdomain) eq 'no_host') {      if (&Apache::lonnet::homeserver($ccuname,$ccdomain) eq 'no_host') {
         $r->print(&mt('No such user').' '.$ccuname.' '.&mt('at').' '.$ccdomain.'</body></html>');   $r->print('<form action="/adm/createuser" method="post" name="crtuser">');
           $r->print(&mt('No such user').' '.$ccuname.' '.&mt('at').' '.$ccdomain.'.<br />');
    $r->print(&mt("Please click Back on your browser and select another user, or "));
    $r->print('
       <input type="hidden" name="phase" value="get_user_info" />
               <input type="hidden" name="ccuname" value="'.$ccuname.'" />
               <input type="hidden" name="ccdomain" value="'.$ccdomain.'" />
               <input name="userrole" type="submit" value="'.
     &mt('Create User').'" />
    </form></body></html>');
  return;   return;
     }      }
     # Check the proposed home server for the course      # Check the proposed home server for the course
Line 537  ENDENHEAD Line 567  ENDENHEAD
     $cenv{'description'}=$oldcenv{'description'};      $cenv{'description'}=$oldcenv{'description'};
 # Mark as cloned  # Mark as cloned
     $cenv{'clonedfrom'}=$cloneid;      $cenv{'clonedfrom'}=$cloneid;
       delete($cenv{'default_enrollment_start_date'});
       delete($cenv{'default_enrollment_end_date'});
  }   }
     }      }
 #  #
Line 601  ENDENHEAD Line 633  ENDENHEAD
     if (@affiliates > 0) {      if (@affiliates > 0) {
         my @badclasses = ();          my @badclasses = ();
         foreach my $class (@affiliates) {          foreach my $class (@affiliates) {
             my $addcheck =  &localenroll::new_course($class,$cenv{'internal.courseowner'});              my $addcheck = &Apache::lonnet::auto_new_course($crsunum,$crsudom,$class,$cenv{'internal.courseowner'});
             unless ($addcheck eq 'ok') {              unless ($addcheck eq 'ok') {
                 push @badclasses, $class;                   push @badclasses, $class; 
             }              }
Line 615  ENDENHEAD Line 647  ENDENHEAD
             $r->print ("</ul><br/><br/></font>\n");              $r->print ("</ul><br/><br/></font>\n");
         }          }
     }      }
     my $startdate = &Apache::lonhtmlcommon::get_date_from_form('startdate');      my $enrollstart = &Apache::lonhtmlcommon::get_date_from_form('startenroll');
     my $enddate   = &Apache::lonhtmlcommon::get_date_from_form('enddate');      my $enrollend   = &Apache::lonhtmlcommon::get_date_from_form('endenroll');
       my $startaccess = &Apache::lonhtmlcommon::get_date_from_form('startaccess');
       my $endaccess = &Apache::lonhtmlcommon::get_date_from_form('endaccess');
     if ($ENV{'form.no_end_date'}) {      if ($ENV{'form.no_end_date'}) {
       $enddate = 0;        $endaccess = 0;
     }      }
     $cenv{'internal.autostart'}=$startdate;      $cenv{'internal.autostart'}=$enrollstart;
     $cenv{'internal.autoend'}=$enddate;      $cenv{'internal.autoend'}=$enrollend;
       $cenv{'default_enrollment_start_date'}=$startaccess;
       $cenv{'default_enrollment_end_date'}=$endaccess;
     if ($ENV{'form.showphotos'}) {      if ($ENV{'form.showphotos'}) {
       $cenv{'internal.showphotos'}=$ENV{'form.showphotos'};        $cenv{'internal.showphotos'}=$ENV{'form.showphotos'};
     }      }
Line 654  ENDENHEAD Line 690  ENDENHEAD
            $cenv{'question.email'}=$ccuname.':'.$ccdomain;             $cenv{'question.email'}=$ccuname.':'.$ccdomain;
        }         }
     }      }
       if ($ENV{'form.reshome'}) {
    $cenv{'reshome'}=$ENV{'form.reshome'}.'/';
    $cenv{'reshome'}=~s/\/+$/\//;
       }
   #
   # course has keyed access
   #
     if ($ENV{'form.setkeys'}) {      if ($ENV{'form.setkeys'}) {
        $cenv{'keyaccess'}='yes';         $cenv{'keyaccess'}='yes';
     }      }
   # if specified, key authority is not course, but user
   # only active if keyaccess is yes
       if ($ENV{'form.keyauth'}) {
    $ENV{'form.keyauth'}=~s/[^\w\@]//g;
    if ($ENV{'form.keyauth'}) {
       $cenv{'keyauth'}=$ENV{'form.keyauth'};
    }
       }
   
     if ($ENV{'form.disresdis'}) {      if ($ENV{'form.disresdis'}) {
         $cenv{'pch.roles.denied'}='st';          $cenv{'pch.roles.denied'}='st';
     }      }
Line 671  ENDENHEAD Line 723  ENDENHEAD
     # Use new Randomseed      # Use new Randomseed
     #      #
     $cenv{'rndseed'}=&Apache::lonnet::latest_rnd_algorithm_id();;      $cenv{'rndseed'}=&Apache::lonnet::latest_rnd_algorithm_id();;
       $cenv{'receiptalg'}=&Apache::lonnet::latest_receipt_algorithm_id();;
       #
       # The encryption code and receipt prefix for this course
       #
       $cenv{'internal.encseed'}=$Apache::lonnet::perlvar{'lonReceipt'}.$$.time.int(rand(9999));
       $cenv{'internal.encpref'}=100+int(9*rand(99));
     #      #
     # By default, use standard grading      # By default, use standard grading
     $cenv{'grading'} = 'standard';      $cenv{'grading'} = 'standard';

Removed from v.1.50  
changed lines
  Added in v.1.60


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