Diff for /loncom/interface/loncreatecourse.pm between versions 1.134 and 1.137

version 1.134, 2009/11/18 19:15:44 version 1.137, 2010/04/13 21:19:15
Line 61  described at http://www.lon-capa.org. Line 61  described at http://www.lon-capa.org.
   
 =item creation_display_filter()  =item creation_display_filter()
   
 =item course_types()  
   
 =item context_names()  =item context_names()
   
 =item instcode_srchstr()  =item instcode_srchstr()
Line 694  sub create_course { Line 692  sub create_course {
 }  }
   
 sub print_intro_page {  sub print_intro_page {
     my $r = shift;      my ($r,$show_all_choices) = @_;
     my $start_page =      my $start_page =
         &Apache::loncommon::start_page('Create a New Course or Community');          &Apache::loncommon::start_page('Create a New Course or Community');
     my $crumbs = &Apache::lonhtmlcommon::breadcrumbs('Creation Options','Create_Course',undef,'Create_Courses');      my $crumbs = &Apache::lonhtmlcommon::breadcrumbs('Creation Options','Create_Course',undef,'Create_Courses');
     my $end_page =      my $end_page =
         &Apache::loncommon::end_page();          &Apache::loncommon::end_page();
     my $helplink=&Apache::loncommon::help_open_topic('Create_Course_Community',&mt('Help on Creating Courses and Communities'));      my $helplink=&Apache::loncommon::help_open_topic('Create_Course_Community',&mt('Help on Creating Courses and Communities'));
       my @choices = ({ internal_name     => 'courseone',
     my @choices = ({ internal_name => 'courseone',                       name              => &mt('Create a single course'),
                      name => &mt('Create a single course'),                       short_description => &mt('Create a new course by completing an online form.'),
                      short_description =>                     });
     &mt('Create a new course by completing an online form.'),      if ($show_all_choices) {
                  },          push(@choices,{ internal_name     => 'groupone',
                    { internal_name => 'groupone',                          name              => &mt('Create a single community'),
                      name => &mt('Create a single community'),                          short_description =>
                      short_description =>  
     &mt('Create a new collaborative community by completing an online form.'),      &mt('Create a new collaborative community by completing an online form.'),
                  },                        },
                    { internal_name => 'batchone',                        { internal_name     => 'batchone',
                      name => &mt('Create courses/communities by uploading an attributes file'),                          name              => &mt('Create courses/communities by uploading an attributes file'),
                      short_description =>                          short_description =>
     &mt('Upload an attributes file containing specifications for one or more courses or communities in XML format.'),      &mt('Upload an attributes file containing specifications for one or more courses or communities in XML format.'),
                      help => 'Batch_Creation',                          help => 'Batch_Creation',
                  },                        },
                    { internal_name => 'requestdisplay',                        { internal_name     => 'requestdisplay',
                      name => &mt('Approve or reject requests'),                          name              => &mt('Approve or reject requests'),
                      short_description =>                          short_description =>
     &mt('Display course and community creation requests submitted by authorized users, held pending approval by a Domain Coordinator.'),      &mt('Display course and community creation requests submitted by authorized users, held pending approval by a Domain Coordinator.'),
                    },                        },
                    { internal_name => 'creationlog',                        { internal_name     => 'pendingdisplay',
                      name => &mt('View creation log'),                          name              => &mt('Display official course requests'),
                      short_description =>                          short_description =>
       &mt('Display official course requests submitted by authorized users, held pending validation of instructor status.'),
                         },
                         { internal_name     => 'creationlog',
                           name              => &mt('View creation log'),
                           short_description =>
     &mt('Display information about when, how and by whom courses and communities were created in this domain.'),      &mt('Display information about when, how and by whom courses and communities were created in this domain.'),
                    },                        });
     );      } else {
           push(@choices,{ internal_name     => 'batchone',
                           name              => &mt('Create courses by uploading an attributes file'),
                           short_description =>
       &mt('Upload an attributes file containing specifications for one or more courses in XML format.'),
                           help => 'Batch_Creation',
                         });
       }
     my $options;      my $options;
     foreach my $choice (@choices) {      foreach my $choice (@choices) {
         $options .='    <h3><a href="/adm/createcourse?phase='.          $options .='    <h3><a href="/adm/createcourse?phase='.
Line 740  sub print_intro_page { Line 749  sub print_intro_page {
         $options .= "</h3>\n".'    '.('&nbsp;'x8).$choice->{'short_description'}.          $options .= "</h3>\n".'    '.('&nbsp;'x8).$choice->{'short_description'}.
             "\n";              "\n";
     }      }
   
     $r->print(<<ENDDOCUMENT);      $r->print(<<ENDDOCUMENT);
 $start_page  $start_page
 $crumbs  $crumbs
Line 814  sub courserequestbrowser_javascript { Line 822  sub courserequestbrowser_javascript {
 <script type="text/javascript">  <script type="text/javascript">
 // <![CDATA[  // <![CDATA[
 var steditbrowser;  var steditbrowser;
 function opencoursereqdisplay(cdom,cnum) {  function opencoursereqdisplay(cdom,cnum,queue) {
     var url = '/adm/requestcourse?action=display';      var url = '/adm/requestcourse?action=display';
     url += '&showdom='+cdom+'&cnum='+cnum;      url += '&showdom='+cdom+'&cnum='+cnum+'&queue='+queue;
     var title = 'Course_Request_Browser';      var title = 'Course_Request_Browser';
     var options = 'scrollbars=1,resizable=1,menubar=0';      var options = 'scrollbars=1,resizable=1,menubar=0';
     options += ',width=700,height=600';      options += ',width=700,height=600';
     var stdeditbrowser = open(url,title,options,'1');      var stdeditbrowser = open(url,title,options,'1');
     stdeditbrowser.focus();      stdeditbrowser.focus();
 }  }
   
 // ]]>  // ]]>
 </script>  </script>
 ENDREQBRW  ENDREQBRW
Line 850  sub print_creation_logs { Line 859  sub print_creation_logs {
     foreach my $item ('show','page','type','context') {      foreach my $item ('show','page','type','context') {
         $curr{$item} = $env{'form.'.$item};          $curr{$item} = $env{'form.'.$item};
     }      }
     my $createdafter = &Apache::lonhtmlcommon::get_date_from_form('created_after_date');  
     my $createdbefore = &Apache::lonhtmlcommon::get_date_from_form('created_before_date');  
     $curr{'created_after_date'} = &Apache::lonhtmlcommon::get_date_from_form('created_after_date');      $curr{'created_after_date'} = &Apache::lonhtmlcommon::get_date_from_form('created_after_date');
     $curr{'created_before_date'} = &Apache::lonhtmlcommon::get_date_from_form('created_before_date');      $curr{'created_before_date'} = &Apache::lonhtmlcommon::get_date_from_form('created_before_date');
     foreach my $key (keys(%defaults)) {      foreach my $key (keys(%defaults)) {
Line 859  sub print_creation_logs { Line 866  sub print_creation_logs {
             $curr{$key} = $defaults{$key};              $curr{$key} = $defaults{$key};
         }          }
     }      }
     my (%whodunit,$version);      my %whodunit;
     ($version) = ($r->dir_config('lonVersion') =~ /^([\d\.]+)\-/);      $r->print(&creation_display_filter($formname,\%curr));
     $r->print(&creation_display_filter($formname,\%curr,$version));  
     my $showntablehdr = 0;      my $showntablehdr = 0;
     my $tablehdr = &Apache::loncommon::start_data_table().      my $tablehdr = &Apache::loncommon::start_data_table().
                    &Apache::loncommon::start_data_table_header_row().                     &Apache::loncommon::start_data_table_header_row().
Line 926  sub print_creation_logs { Line 932  sub print_creation_logs {
                                       undef,undef,undef,$curr{'created_before_date'},                                        undef,undef,undef,$curr{'created_before_date'},
                                       $curr{'created_after_date'},$creationcontext);                                        $curr{'created_after_date'},$creationcontext);
     foreach my $cid (sort { $courses{$b}{'created'}<=>$courses{$a}{'created'} } (keys(%courses))) {      foreach my $cid (sort { $courses{$b}{'created'}<=>$courses{$a}{'created'} } (keys(%courses))) {
           if ($curr{'show'} ne &mt('all')) {
               if ($count >= $curr{'page'} * $curr{'show'}) {
                   $more_records = 1;
                   last;
               }
           }
         $count ++;          $count ++;
         next if ($count < $minshown);          next if ($count < $minshown);
         if (!$showntablehdr) {          if (!$showntablehdr) {
Line 1045  ENDSCRIPT Line 1057  ENDSCRIPT
 }  }
   
 sub creation_display_filter {  sub creation_display_filter {
     my ($formname,$curr,$version) = @_;      my ($formname,$curr) = @_;
     my $nolink = 1;      my $nolink = 1;
     my ($contexts,$contextnames) = &context_names();      my ($contexts,$contextnames) = &context_names();
     my $output = '<table><tr><td valign="top">'.      my $output = '<table><tr><td valign="top">'.
Line 1061  sub creation_display_filter { Line 1073  sub creation_display_filter {
         &Apache::lonhtmlcommon::date_setter($formname,'created_before_date',          &Apache::lonhtmlcommon::date_setter($formname,'created_before_date',
                                             $curr->{'created_before_date'},undef,                                              $curr->{'created_before_date'},undef,
                                             undef,undef,undef,undef,undef,undef,$nolink);                                              undef,undef,undef,undef,undef,undef,$nolink);
     $output .= '<td valign="top"><b>'.&mt('Window during which course was created:').'</b><br />'.      $output .= '<td valign="top"><b>'.&mt('Window during which course/community was created:').'</b><br />'.
                '<table><tr><td>'.&mt('After:').                 '<table><tr><td>'.&mt('After:').
                '</td><td>'.$startform.'</td></tr>'.                 '</td><td>'.$startform.'</td></tr>'.
                '<tr><td>'.&mt('Before:').'</td>'.                 '<tr><td>'.&mt('Before:').'</td>'.
                '<td>'.$endform.'</td></tr></table>'.                 '<td>'.$endform.'</td></tr></table>'.
                '</td>'.                 '</td>'.
                '<td>&nbsp;&nbsp;</td>';                 '<td>&nbsp;&nbsp;</td>';
     my ($types,$typenames) = &course_types();      my ($types,$typenames) = &Apache::loncommon::course_types();
     if (ref($types) eq 'ARRAY') {      if (ref($types) eq 'ARRAY') {
         if (@{$types} > 1) {          if (@{$types} > 1) {
             $output .= '<td valign="top"><b>'.              $output .= '<td valign="top"><b>'.
Line 1116  sub creation_display_filter { Line 1128  sub creation_display_filter {
     # Update Display button      # Update Display button
     $output .= '<p>'.      $output .= '<p>'.
                '<input type="submit" value="'.&mt('Update Display').'" />'.                 '<input type="submit" value="'.&mt('Update Display').'" />'.
                '</p>';                 '</p><hr />';
   
     # Server version info  
     $output .= '<p class="LC_info">'.  
                &mt('Only courses and communities created from servers running LON-CAPA [_1] or later are displayed.','2.9.0');  
     if ($version) {  
         $output .= ' '.&mt('This LON-CAPA server is version [_1]',$version);  
     }  
     $output .= '</p><hr />';  
     return $output;      return $output;
 }  }
   
 sub course_types {  
     my @types = qw(official unofficial community);  
     my %typename = (  
                          official   => 'Official course',  
                          unofficial => 'Unofficial course',  
                          community  => 'Community',  
                    );  
     return (\@types,\%typename);  
 }  
   
 sub context_names {  sub context_names {
     my @contexts = qw(auto web dc_create requestcourses);      my @contexts = qw(auto web dc_create requestcourses);
     my %contextnames =       my %contextnames = 
Line 1204  sub handler { Line 1198  sub handler {
        return OK;         return OK;
     }      }
   
       my $show_all_choices = 0;
       my $primary_rev = &Apache::lonnet::get_server_loncaparev($env{'request.role.domain'});
       if (($primary_rev ne 'refused') && ($primary_rev ne 'error') &&
           ($primary_rev ne 'unknown_cmd') && ($primary_rev ne 'no_such_host')) {
           $show_all_choices = 1;
       }
   
     if (&Apache::lonnet::allowed('ccc',$env{'request.role.domain'})) {      if (&Apache::lonnet::allowed('ccc',$env{'request.role.domain'})) {
        &Apache::loncommon::content_type($r,'text/html');         &Apache::loncommon::content_type($r,'text/html');
        $r->send_http_header;         $r->send_http_header;
Line 1216  sub handler { Line 1217  sub handler {
             text=>"Creation Options",              text=>"Creation Options",
             faq=>79,bug=>'Dom Coord Interface',});              faq=>79,bug=>'Dom Coord Interface',});
        if (($env{'form.phase'} eq 'coursetwo') ||         if (($env{'form.phase'} eq 'coursetwo') ||
            ($env{'form.phase'} eq 'grouptwo')) {             (($env{'form.phase'} eq 'grouptwo') && 
               ($show_all_choices))) { 
            &Apache::lonhtmlcommon::add_breadcrumb             &Apache::lonhtmlcommon::add_breadcrumb
                  ({href=>"/adm/createcourse?phase=$env{'form.prevphase'}",                   ({href=>"/adm/createcourse?phase=$env{'form.prevphase'}",
                    text=>&mt('[_1] Creation Settings',),                     text=>&mt('[_1] Creation Settings',),
Line 1227  sub handler { Line 1229  sub handler {
                    faq=>9,bug=>'Dom Coord Interface',});                     faq=>9,bug=>'Dom Coord Interface',});
            &create_course($r);             &create_course($r);
        } elsif (($env{'form.phase'} eq 'courseone') ||          } elsif (($env{'form.phase'} eq 'courseone') || 
                 ($env{'form.phase'} eq 'groupone')) {                  (($env{'form.phase'} eq 'groupone') && 
                   ($show_all_choices))) {
            &Apache::lonhtmlcommon::add_breadcrumb             &Apache::lonhtmlcommon::add_breadcrumb
                  ({href=>"/adm/createcourse?phase=$env{'form.phase'}",                   ({href=>"/adm/createcourse?phase=$env{'form.phase'}",
                    text=>&mt('[_1] Creation Settings',),                     text=>&mt('[_1] Creation Settings',),
Line 1249  sub handler { Line 1252  sub handler {
                    text=>"Creation Outcome",                     text=>"Creation Outcome",
                    faq=>9,bug=>'Dom Coord Interface',});                     faq=>9,bug=>'Dom Coord Interface',});
            &process_batchfile($r);             &process_batchfile($r);
        } elsif ($env{'form.phase'} eq 'requestdisplay') {         } elsif (($env{'form.phase'} eq 'requestdisplay') && ($show_all_choices)) {
            &Apache::lonhtmlcommon::add_breadcrumb             &Apache::lonhtmlcommon::add_breadcrumb
                  ({href=>"/adm/createcourse?phase=$env{'form.phase'}",                   ({href=>"/adm/createcourse?phase=$env{'form.phase'}",
                    text=>&mt('[_1] Display Request Queue',),                     text=>&mt('[_1] Display Request Queue',),
Line 1261  sub handler { Line 1264  sub handler {
                      &Apache::loncoursequeueadmin::display_queued_requests(                       &Apache::loncoursequeueadmin::display_queued_requests(
                          'domain',$env{'request.role.domain'}).'</div>'.                           'domain',$env{'request.role.domain'}).'</div>'.
                      &Apache::loncommon::end_page());                       &Apache::loncommon::end_page());
        } elsif ($env{'form.phase'} eq 'requestchange') {         } elsif (($env{'form.phase'} eq 'requestchange') && ($show_all_choices)) {
              if ($env{'form.queue'} eq 'pending') {
                  &Apache::lonhtmlcommon::add_breadcrumb
                      ({href=>"/adm/createcourse?phase=pendingdisplay",
                        text=>&mt('Display Pending Queue',),
                        faq=>9,bug=>'Dom Coord Interface',});
              } else {
                  &Apache::lonhtmlcommon::add_breadcrumb
                        ({href=>"/adm/createcourse?phase=requestdisplay",
                          text=>&mt('[_1] Display Request Queue',),
                          faq=>9,bug=>'Dom Coord Interface',});
              }
            &Apache::lonhtmlcommon::add_breadcrumb             &Apache::lonhtmlcommon::add_breadcrumb
                  ({href=>"/adm/createcourse?phase=requestdisplay",                 ({href=>"/adm/createcourse?phase=requestchange",
                    text=>&mt('[_1] Display Request Queue',),                   text=>&mt('[_1] Requests Updated',),
                    faq=>9,bug=>'Dom Coord Interface',},                   faq=>9,bug=>'Dom Coord Interface',},);
                  {href=>"/adm/createcourse?phase=requestchange",  
                    text=>&mt('[_1] Requests Updated',),  
                    faq=>9,bug=>'Dom Coord Interface',},);  
            my $start_page=&Apache::loncommon::start_page('Update Requests Result');             my $start_page=&Apache::loncommon::start_page('Update Requests Result');
            my $crumbs = &Apache::lonhtmlcommon::breadcrumbs('Requests Updated','Course_Request',undef,'Course_Request');             my $crumbs = &Apache::lonhtmlcommon::breadcrumbs('Requests Updated','Course_Request',undef,'Course_Request');
            $r->print($start_page.$crumbs."\n".'<div>'.             $r->print($start_page.$crumbs."\n".'<div>'.
                      &Apache::loncoursequeueadmin::update_request_queue(                       &Apache::loncoursequeueadmin::update_request_queue(
                      'domain',$env{'request.role.domain'}).'</div>'.                       'domain',$env{'request.role.domain'}).'</div>'.
                      &Apache::loncommon::end_page());                       &Apache::loncommon::end_page());
        } elsif ($env{'form.phase'} eq 'creationlog') {         } elsif (($env{'form.phase'} eq 'pendingdisplay') && ($show_all_choices)) {
              &Apache::lonhtmlcommon::add_breadcrumb
                    ({href=>"/adm/createcourse?phase=$env{'form.phase'}",
                      text=>&mt('Display Pending Queue',),
                      faq=>9,bug=>'Dom Coord Interface',});
              my $js = &courserequestbrowser_javascript();
              my $start_page=&Apache::loncommon::start_page('Display Pending Queue',$js);
              my $crumbs = &Apache::lonhtmlcommon::breadcrumbs('Display Pending Queue','Course_Request',undef,'Course_Request');
              $r->print($start_page.$crumbs."\n".'<div>'.
                        &Apache::loncoursequeueadmin::display_queued_requests(
                            'pending',$env{'request.role.domain'}).'</div>'.
                        &Apache::loncommon::end_page());
          } elsif (($env{'form.phase'} eq 'requestvalidation') && ($show_all_choices)) {
              my $js = &courserequestbrowser_javascript();
              &Apache::lonhtmlcommon::add_breadcrumb
                    ({href=>"/adm/createcourse?phase=pendingdisplay",
                      text=>&mt('Display Pending Queue'),},
                    {href=>"/adm/createcourse?phase=requestvalidation",
                      text=>&mt('Validation Attempted'),},);
              my $start_page=&Apache::loncommon::start_page('Requests Validation Result',$js);
              my $crumbs = &Apache::lonhtmlcommon::breadcrumbs('Validation Attempted','Course_Request',undef,'Course_Request');
              $r->print($start_page.$crumbs."\n".'<div>'.
                        &Apache::loncoursequeueadmin::process_official_reqs('domain',$env{'request.role.domain'}).'</div>'.
                        &Apache::loncommon::end_page());
          } elsif (($env{'form.phase'} eq 'creationlog') && ($show_all_choices)) {
            &Apache::lonhtmlcommon::add_breadcrumb             &Apache::lonhtmlcommon::add_breadcrumb
                  ({href=>"/adm/createcourse?phase=creationlog",                   ({href=>"/adm/createcourse?phase=creationlog",
                    text=>&mt('[_1] Display Creation History',),});                     text=>&mt('[_1] Display Creation History',),});
Line 1290  sub handler { Line 1325  sub handler {
            &print_creation_logs($r);             &print_creation_logs($r);
            $r->print('</div>'.&Apache::loncommon::end_page());             $r->print('</div>'.&Apache::loncommon::end_page());
        } else {         } else {
            &print_intro_page($r);             &print_intro_page($r,$show_all_choices);
        }         }
    } else {     } else {
       $env{'user.error.msg'}=        $env{'user.error.msg'}=

Removed from v.1.134  
changed lines
  Added in v.1.137


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