Diff for /loncom/interface/lonrequestcourse.pm between versions 1.41.2.10 and 1.41.2.11

version 1.41.2.10, 2010/12/02 02:21:35 version 1.41.2.11, 2010/12/05 17:27:00
Line 151  sub generate_page { Line 151  sub generate_page {
     $states{'log'} = ['filter','display'];      $states{'log'} = ['filter','display'];
     $states{'new'} = ['courseinfo','enrollment','personnel','review','process'];      $states{'new'} = ['courseinfo','enrollment','personnel','review','process'];
   
     if ($dom eq 'gcitest') {      if ($dom =~ /^\w+citest$/) {
         $states{'new'} = ['courseinfo','review','process'];          $states{'new'} = ['courseinfo','review','process'];
         if ($env{'form.concepttest'} eq 'editmyown') {          if ($env{'form.concepttest'} eq 'editmyown') {
             push(@{$states{'new'}},'chooseitems','uploadroster','enrolling');              push(@{$states{'new'}},'chooseitems','uploadroster','enrolling');
Line 192  sub generate_page { Line 192  sub generate_page {
                  enrolling     => 'Completed',                   enrolling     => 'Completed',
                  done          => 'Completed',                   done          => 'Completed',
                 );                  );
     if ($dom eq 'gcitest') {      if ($dom =~ /^\w+citest$/) {
         $trail{'crstype'} = 'Building a Test';          $trail{'crstype'} = 'Building a Test';
         $trail{'courseinfo'} = 'Test Information';          $trail{'courseinfo'} = 'Test Information';
     }      }
Line 414  sub get_breadcrumbs { Line 414  sub get_breadcrumbs {
     my $firstcrumb = 'Pick Action';      my $firstcrumb = 'Pick Action';
     my $crumbtitle = 'Course/Community Requests';      my $crumbtitle = 'Course/Community Requests';
     my $crumbhelp = 'Course_Requests';      my $crumbhelp = 'Course_Requests';
     if ($dom eq 'gcitest') {      if ($dom =~ /^\w+citest$/) {
         $firstcrumb = 'Building a Test';          $firstcrumb = 'Building a Test';
         $crumbtitle = 'Create Concept Test';          $crumbtitle = 'Create Concept Test';
         $crumbhelp = 'Concept_Test_Creation';          $crumbhelp = 'Concept_Test_Creation';
Line 595  sub form_elements { Line 595  sub form_elements {
          },           },
     );      );
     my %servers = &Apache::lonnet::get_servers($dom,'library');      my %servers = &Apache::lonnet::get_servers($dom,'library');
     if ($dom eq 'gcitest') {      if ($dom =~ /^\w+citest$/) {
         %{$elements{'new'}{'courseinfo'}} = (          %{$elements{'new'}{'courseinfo'}} = (
                                               cdescr      => 'text',                                                cdescr      => 'text',
                                               concepttest => 'radio',                                                concepttest => 'radio',
Line 613  sub form_elements { Line 613  sub form_elements {
     } else {      } else {
         $elements{'new'}{'courseinfo'}{'chome'} = 'hidden';          $elements{'new'}{'courseinfo'}{'chome'} = 'hidden';
     }      }
     if ($dom eq 'gcitest') {      if ($dom =~ /^\w+citest$/) {
         my %mergedhash = (%{$elements{'new'}{'courseinfo'}},%{$elements{'new'}{'enrollment'}});          my %mergedhash = (%{$elements{'new'}{'courseinfo'}},%{$elements{'new'}{'enrollment'}});
         %{$elements{'new'}{'courseinfo'}} = %mergedhash;          %{$elements{'new'}{'courseinfo'}} = %mergedhash;
     }      }
Line 739  sub print_main_menu { Line 739  sub print_main_menu {
     }      }
   
     my $js;      my $js;
     unless ($dom eq 'gcitest') {      unless ($dom =~ /^\w+citest$/) {
         $js = <<"END";          $js = <<"END";
   
 function nextPage(formname) {  function nextPage(formname) {
Line 830  END Line 830  END
         }          }
     }      }
   
     if ($dom eq 'gcitest') {      if ($dom =~ /^\w+citest$/) {
         my $formname = 'requestcrs';          my $formname = 'requestcrs';
         my $nexttext = &mt('Continue');          my $nexttext = &mt('Continue');
         $r->print(&header($pagetitle,$js.$jscript,$loaditems).$crumb.          $r->print(&header($pagetitle,$js.$jscript,$loaditems).$crumb.
Line 986  END Line 986  END
         } elsif ($state eq 'personnel') {          } elsif ($state eq 'personnel') {
             $js .= "\n".&section_check_javascript()."\n".&personnel_lcsec_js();              $js .= "\n".&section_check_javascript()."\n".&personnel_lcsec_js();
         } elsif (($state eq 'process') && ($env{'form.concepttest'} eq 'editmyown')) {          } elsif (($state eq 'process') && ($env{'form.concepttest'} eq 'editmyown')) {
             $js .= "\n".&Apache::londocsgci::builder_javascript()."\n";              $js .= "\n".&Apache::londocsgci::builder_javascript($dom)."\n";
         }          }
         my $title;          my $title;
         if ($env{'form.crstype'} eq 'community') {          if ($env{'form.crstype'} eq 'community') {
Line 1775  sub print_enrollment_menu { Line 1775  sub print_enrollment_menu {
         $output .= &Apache::lonhtmlcommon::row_headline('Access').          $output .= &Apache::lonhtmlcommon::row_headline('Access').
                    '<h3>'.$header.'</h3>'.                     '<h3>'.$header.'</h3>'.
                    &Apache::lonhtmlcommon::row_closure(1);                     &Apache::lonhtmlcommon::row_closure(1);
         if ($dom eq 'gcitest') {          if ($dom =~ /^\w+citest$/) {
             my $includeempty = 1;              my $includeempty = 1;
             my $timezone = &Apache::lonlocal::gettimezone();              my $timezone = &Apache::lonlocal::gettimezone();
             $output .= &Apache::lonhtmlcommon::row_title('Time zone').              $output .= &Apache::lonhtmlcommon::row_title('Time zone').
Line 1785  sub print_enrollment_menu { Line 1785  sub print_enrollment_menu {
         }          }
         $output .= $access_dates;          $output .= $access_dates;
     }      }
     if ($dom eq 'gcitest') {      if ($dom =~ /^\w+citest$/) {
         return $output;          return $output;
     } else {      } else {
         return '<div>'.&Apache::lonhtmlcommon::start_pick_box().$output.          return '<div>'.&Apache::lonhtmlcommon::start_pick_box().$output.
Line 1858  sub date_setting_table { Line 1858  sub date_setting_table {
     my $hide_timezone;      my $hide_timezone;
     if (&Apache::loncommon::needs_gci_custom()) {      if (&Apache::loncommon::needs_gci_custom()) {
         $no_hh_mm_ss = '';          $no_hh_mm_ss = '';
         if ($dom eq 'gcitest') {          if ($dom =~ /^\w+citest$/) {
             if ($prefix eq 'access') {              if ($prefix eq 'access') {
                 $hide_timezone = 1;                  $hide_timezone = 1;
             }              }
Line 2394  sub print_review { Line 2394  sub print_review {
     }      }
   
     my %ctxt = &clone_text();      my %ctxt = &clone_text();
     if ($dom eq 'gcitest') {      if ($dom =~ /^\w+citest$/) {
         $inst_headers .= '<th>'.&mt('Test Questions').'</th>';          $inst_headers .= '<th>'.&mt('Test Questions').'</th>';
         my $concepttest;          my $concepttest;
         if ($env{'form.concepttest'} eq 'defchosen') {          if ($env{'form.concepttest'} eq 'defchosen') {
Line 2409  sub print_review { Line 2409  sub print_review {
     if (&show_cloneable()) {      if (&show_cloneable()) {
         $inst_headers .= '<th>'.&mt('Copy From').'</th>';          $inst_headers .= '<th>'.&mt('Copy From').'</th>';
         if ((($env{'form.cloning'}) ||           if ((($env{'form.cloning'}) || 
              (($dom eq 'gcitest') && ($env{'form.concepttest'} eq 'cloning'))) &&               (($dom =~ /^\w+citest$/) && ($env{'form.concepttest'} eq 'cloning'))) &&
             ($env{'form.clonecrs'} =~ /^$match_name$/) &&               ($env{'form.clonecrs'} =~ /^$match_name$/) && 
             ($env{'form.clonedom'} =~ /^$match_domain$/)) {              ($env{'form.clonedom'} =~ /^$match_domain$/)) {
             my $canclone = &Apache::loncoursequeueadmin::can_clone_course($env{'user.name'},              my $canclone = &Apache::loncoursequeueadmin::can_clone_course($env{'user.name'},
Line 2419  sub print_review { Line 2419  sub print_review {
                 my %courseenv = &Apache::lonnet::userenvironment($env{'form.clonedom'},                  my %courseenv = &Apache::lonnet::userenvironment($env{'form.clonedom'},
                               $env{'form.clonecrs'},('description','internal.coursecode'));                                $env{'form.clonecrs'},('description','internal.coursecode'));
                 if (keys(%courseenv) > 0) {                  if (keys(%courseenv) > 0) {
                     if ($dom eq 'gcitest') {                      if ($dom =~ /^\w+citest$/) {
                         $inst_headers .= '<th>'.$ctxt{'ros'}.'</th>';                          $inst_headers .= '<th>'.$ctxt{'ros'}.'</th>';
                     } else {                      } else {
                         $inst_headers .= '<th>'.$ctxt{'dsh'}.'</th>';                          $inst_headers .= '<th>'.$ctxt{'dsh'}.'</th>';
Line 2429  sub print_review { Line 2429  sub print_review {
                     if ($cloneinst ne '') {                      if ($cloneinst ne '') {
                         $inst_values .= $cloneinst.' '.&mt('in').' '.$env{'form.clonedom'};                          $inst_values .= $cloneinst.' '.&mt('in').' '.$env{'form.clonedom'};
                     } else {                      } else {
                         unless ($dom eq 'gcitest') {                          unless ($dom =~ /^\w+citest$/) {
                             $inst_values .= &mt('from').' '.$env{'form.clonedom'};                              $inst_values .= &mt('from').' '.$env{'form.clonedom'};
                         }                          }
                     }                      }
                     $inst_values .= ('&nbsp;'x2).'</td><td>';                      $inst_values .= ('&nbsp;'x2).'</td><td>';
                     if ($dom eq 'gcitest') {                      if ($dom =~ /^\w+citest$/) {
                         if ($env{'form.cloneroster'}) {                          if ($env{'form.cloneroster'}) {
                             $inst_values .= &mt('Yes');                              $inst_values .= &mt('Yes');
                         } else {                          } else {
Line 2461  sub print_review { Line 2461  sub print_review {
         }          }
     }      }
     my $tz;      my $tz;
     if ($dom eq 'gcitest') {      if ($dom =~ /^\w+citest$/) {
         if (&Apache::lonlocal::gettimezone($env{'form.timezone'}) ne 'local') {          if (&Apache::lonlocal::gettimezone($env{'form.timezone'}) ne 'local') {
             $tz = $env{'form.timezone'};              $tz = $env{'form.timezone'};
         } else {          } else {
Line 2472  sub print_review { Line 2472  sub print_review {
     $enroll_headers .= '<th>'.&mt('Access Starts').'</th>'.      $enroll_headers .= '<th>'.&mt('Access Starts').'</th>'.
                        '<th>'.&mt('Access Ends').'</th>';                         '<th>'.&mt('Access Ends').'</th>';
     my ($accessstart,$accessend) = &dates_from_form('accessstart','accessend',$tz);      my ($accessstart,$accessend) = &dates_from_form('accessstart','accessend',$tz);
     if ($dom eq 'gcitest') {      if ($dom =~ /^\w+citest$/) {
         $enroll_values .= '<td>'.$tz.'</td>';           $enroll_values .= '<td>'.$tz.'</td>'; 
     }      }
     $enroll_values .= '<td>'.&Apache::lonlocal::locallocaltime($accessstart,$tz).'</td>';      $enroll_values .= '<td>'.&Apache::lonlocal::locallocaltime($accessstart,$tz).'</td>';
Line 2643  function toggleCloning() { Line 2643  function toggleCloning() {
 ENDJS  ENDJS
     my $title = &mt('Brief Course Description');      my $title = &mt('Brief Course Description');
     my $desctitle = &mt('Description');      my $desctitle = &mt('Description');
     if ($dom eq 'gcitest') {      if ($dom =~ /^\w+citest$/) {
         $title = &mt('Concept Test Course Information');          $title = &mt('Concept Test Course Information');
         $desctitle = &mt('Concept Test Title');          $desctitle = &mt('Concept Test Title');
     }      }
Line 2659  ENDJS Line 2659  ENDJS
                   &Apache::lonhtmlcommon::row_title($desctitle).                    &Apache::lonhtmlcommon::row_title($desctitle).
                   '<input type="text" size="60" name="cdescr" value="'.$description.'" />';                    '<input type="text" size="60" name="cdescr" value="'.$description.'" />';
     my $showclone;      my $showclone;
     if ($dom eq 'gcitest') {      if ($dom =~ /^\w+citest$/) {
         $showclone = &show_cloneable();          $showclone = &show_cloneable();
     } else {      } else {
         $showclone = 1;          $showclone = 1;
     }      }
     if ($dom eq 'gcitest') {      if ($dom =~ /^\w+citest$/) {
         $output .= &Apache::lonhtmlcommon::row_closure(1).          $output .= &Apache::lonhtmlcommon::row_closure(1).
                    &concepttest_form($showclone);                     &concepttest_form($showclone,$dom);
     }      }
     my ($home_server_pick,$numlib) =      my ($home_server_pick,$numlib) =
         &Apache::loncommon::home_server_form_item($dom,'chome',          &Apache::loncommon::home_server_form_item($dom,'chome',
Line 2677  ENDJS Line 2677  ENDJS
     }      }
     $output .= $home_server_pick.      $output .= $home_server_pick.
                &Apache::lonhtmlcommon::row_closure();                 &Apache::lonhtmlcommon::row_closure();
     if ($showclone && $dom ne 'gcitest') {      if ($showclone && $dom !~ /^\w+citest$/) {
         $output .= &Apache::lonhtmlcommon::row_headline().          $output .= &Apache::lonhtmlcommon::row_headline().
                    '<h3>'.&Apache::loncommon::help_open_topic('Course_Request_Clone').'&nbsp;'.$clonetitle.                     '<h3>'.&Apache::loncommon::help_open_topic('Course_Request_Clone').'&nbsp;'.$clonetitle.
                    '<label><input type="radio" name="cloning" value="1" '.                     '<label><input type="radio" name="cloning" value="1" '.
Line 2693  ENDJS Line 2693  ENDJS
                    &clone_form($dom,$formname,$crstype).                     &clone_form($dom,$formname,$crstype).
                    &Apache::lonhtmlcommon::end_pick_box().'</div>';                     &Apache::lonhtmlcommon::end_pick_box().'</div>';
     }      }
     if ($dom eq 'gcitest') {      if ($dom =~ /^\w+citest$/) {
         my ($instcode,@codetitles,%cat_titles,%cat_order,@code_order);          my ($instcode,@codetitles,%cat_titles,%cat_order,@code_order);
         my $invalidcrosslist = [];          my $invalidcrosslist = [];
         $output .= &print_enrollment_menu($formname,$state,$instcode,$dom,          $output .= &print_enrollment_menu($formname,$state,$instcode,$dom,
Line 2705  ENDJS Line 2705  ENDJS
 }  }
   
 sub concepttest_form {  sub concepttest_form {
     my ($showclone) = @_;      my ($showclone,$dom) = @_;
     my $output = &Apache::lonhtmlcommon::row_title(&mt('Questions included in Concept Test')).      my $output = &Apache::lonhtmlcommon::row_title(&mt('Questions included in Concept Test')).
                  '<label>'.                   '<label>'.
                  '<input type="radio" name="concepttest" value="editmyown" checked="checked" /> '.                   '<input type="radio" name="concepttest" value="editmyown" checked="checked" /> '.
Line 2720  sub concepttest_form { Line 2720  sub concepttest_form {
                     '<input type="radio" name="concepttest" value="cloning" /> '.                      '<input type="radio" name="concepttest" value="cloning" /> '.
                     &mt('Copied from existing Test: ').                      &mt('Copied from existing Test: ').
                     '</label>'.&select_oldtest().('&nbsp;' x2).                      '</label>'.&select_oldtest().('&nbsp;' x2).
                     '<input type="hidden" name="clonedom" value="gcitest" />'.                      '<input type="hidden" name="clonedom" value="'.$dom.'" />'.
                     '<label><input type="checkbox" value="1" name="cloneroster" />'.                      '<label><input type="checkbox" value="1" name="cloneroster" />'.
                     &mt('Copy roster').'</label>';                      &mt('Copy roster').'</label>';
     }      }
Line 2745  sub select_oldtest { Line 2745  sub select_oldtest {
     foreach my $item (@sorted_courses) {      foreach my $item (@sorted_courses) {
         foreach my $course (@{$Sortby{$item}}) {          foreach my $course (@{$Sortby{$item}}) {
             my ($cdom,$cnum) = split('_',$course);              my ($cdom,$cnum) = split('_',$course);
             if (($cdom eq 'gcitest') && (ref($courses{$course}) eq 'HASH')) {              if (($cdom =~ /^\w+citest$/) && (ref($courses{$course}) eq 'HASH')) {
                 my $cdesc = $courses{$course}{'description'};                  my $cdesc = $courses{$course}{'description'};
                 $output .= '<option value="'.$cnum.'">'.$cdesc.'</option>';                  $output .= '<option value="'.$cnum.'">'.$cdesc.'</option>';
             }              }
Line 3118  sub print_request_outcome { Line 3118  sub print_request_outcome {
     my $clonecrs = '';      my $clonecrs = '';
     my $clonedom = '';      my $clonedom = '';
     if ((($env{'form.cloning'}) ||       if ((($env{'form.cloning'}) || 
          (($dom eq 'gcitest') && ($env{'form.concepttest'} eq 'cloning'))) &&            (($dom =~ /^\w+citest$/) && ($env{'form.concepttest'} eq 'cloning'))) && 
         ($env{'form.clonecrs'} =~ /^($match_courseid)$/) &&           ($env{'form.clonecrs'} =~ /^($match_courseid)$/) && 
         ($env{'form.clonedom'} =~ /^($match_domain)$/)) {          ($env{'form.clonedom'} =~ /^($match_domain)$/)) {
         if ($dom eq 'gcitest') {          if ($dom =~ /^\w+citest$/) {
             $env{'form.clonedom'} = 'gcitest';              $env{'form.clonedom'} = $dom;
         }          }
         my $clonehome = &Apache::lonnet::homeserver($env{'form.clonecrs'},          my $clonehome = &Apache::lonnet::homeserver($env{'form.clonecrs'},
                                                     $env{'form.clonedom'});                                                      $env{'form.clonedom'});
Line 3162  sub print_request_outcome { Line 3162  sub print_request_outcome {
                     accessend      => $accessend,                      accessend      => $accessend,
                     personnel      => \%personnel,                      personnel      => \%personnel,
                   };                    };
     if ($dom eq 'gcitest') {      if ($dom =~ /^\w+citest$/) {
             my $template = &get_template($dom);
         if ($env{'form.concepttest'} eq 'editmyown') {          if ($env{'form.concepttest'} eq 'editmyown') {
             $details->{'firstres'} = 'nav';               $details->{'firstres'} = 'nav'; 
         } else {          } else {
             $details->{'firstres'} = 'blank';              $details->{'firstres'} = 'blank';
         }          }
         if ($env{'form.concepttest'} eq 'cloning') {          if ($env{'form.concepttest'} eq 'cloning') {
             if (($clonecrs) && ($clonedom eq 'gcitest')) {              if (($clonecrs) && ($clonedom =~ /^\w+citest$/)) {
                 $details->{'cloneroster'} = $env{'form.cloneroster'};                  $details->{'cloneroster'} = $env{'form.cloneroster'};
             } else {              } elsif ($template) {
                 $details->{'clonedom'} = 'gci';                  $details->{'clonedom'} = $dom;
                 $details->{'clonecrs'} = '8v226795a882b4bcagcil1';                  $details->{'clonecrs'} = $template;
             }              }
         } else {          } else {
             $details->{'clonedom'} = 'gci';              $details->{'clonedom'} =  $dom,
             $details->{'clonecrs'} = '8v226795a882b4bcagcil1';              $details->{'clonecrs'} =  $template,
         }          }
         $details->{'datemode'} = 'delete';          $details->{'datemode'} = 'delete';
     }      }
Line 3274  sub print_request_outcome { Line 3274  sub print_request_outcome {
                 } else {                  } else {
                     $output = '<p>'.&mt('Your course request has been processed and the course has been created.');                      $output = '<p>'.&mt('Your course request has been processed and the course has been created.');
                 }                  }
                 if ($dom eq 'gcitest') {                  if ($dom =~ /^\w+citest$/) {
                     my $caller = 'requestcrs';                      my $caller = 'requestcrs';
                     my $timezone;                      my $timezone;
                     if (&Apache::lonlocal::gettimezone($env{'form.timezone'}) ne 'local') {                      if (&Apache::lonlocal::gettimezone($env{'form.timezone'}) ne 'local') {
Line 3285  sub print_request_outcome { Line 3285  sub print_request_outcome {
                     &acquire_cc_role($dom,$cnum,'cc./'.$dom.'/'.$cnum);                      &acquire_cc_role($dom,$cnum,'cc./'.$dom.'/'.$cnum);
                     my %parmresult =                      my %parmresult =
                         &store_crsparms($dom,$cnum,$now,$accessstart,$accessend);                          &store_crsparms($dom,$cnum,$now,$accessstart,$accessend);
                     &Apache::londocsgci::setdefaults();                      &Apache::londocsgci::setdefaults($dom);
                     my %crsenvhash = (                      my %crsenvhash = (
                                        suppress_tries => 'yes',                                         suppress_tries => 'yes',
                                        timezone       => $timezone,                                         timezone       => $timezone,
Line 3293  sub print_request_outcome { Line 3293  sub print_request_outcome {
                     my $putresult =  &Apache::lonnet::put('environment',\%crsenvhash,$dom,$cnum);                      my $putresult =  &Apache::lonnet::put('environment',\%crsenvhash,$dom,$cnum);
                     if ($env{'form.concepttest'} eq 'cloning') {                      if ($env{'form.concepttest'} eq 'cloning') {
                         &Apache::lonuserstate::readmap($dom.'/'.$cnum);                          &Apache::lonuserstate::readmap($dom.'/'.$cnum);
                         if (($clonecrs) && ($clonedom eq 'gcitest')) {                          if (($clonecrs) && ($clonedom =~ /^\w+citest$/)) {
                             my $cloneid = $clonedom.'/'.$clonecrs;                               my $cloneid = $clonedom.'/'.$clonecrs; 
                             my %clonedesc = &Apache::lonnet::coursedescription($cloneid,{'one_time' => 1});                              my %clonedesc = &Apache::lonnet::coursedescription($cloneid,{'one_time' => 1});
                             my $oldcdesc = $clonedesc{'description'};                              my $oldcdesc = $clonedesc{'description'};
Line 4051  sub show_cloneable { Line 4051  sub show_cloneable {
     }      }
 }  }
   
   sub get_template {
       my ($cdom) = @_;
       my %template = (
                        gcitest  => '8v226795a882b4bcagcil1',
                        slcitest => '8v226795a882b4bcagcil1',
                      );
       return $template{$cdom};
   }
   
 1;  1;
   

Removed from v.1.41.2.10  
changed lines
  Added in v.1.41.2.11


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