Diff for /loncom/interface/loncreatecourse.pm between versions 1.149 and 1.159

version 1.149, 2013/07/15 16:13:21 version 1.159, 2016/04/04 01:09:48
Line 91  sub print_course_creation_page { Line 91  sub print_course_creation_page {
     my $crstype = 'Community';      my $crstype = 'Community';
     if ($env{'form.phase'} eq 'courseone') {      if ($env{'form.phase'} eq 'courseone') {
         $crstype = 'Course';          $crstype = 'Course';
       } elsif ($env{'form.phase'} eq 'placementone') {
           $crstype = 'Placement';
     }      }
     my $defdom=$env{'request.role.domain'};      my $defdom=$env{'request.role.domain'};
     my %domdefaults = &Apache::lonnet::get_domain_defaults($defdom);      my %domdefaults = &Apache::lonnet::get_domain_defaults($defdom);
Line 130  sub print_course_creation_page { Line 132  sub print_course_creation_page {
         $krbform = &Apache::loncommon::authform_kerberos(%param);          $krbform = &Apache::loncommon::authform_kerberos(%param);
         $intform = &Apache::loncommon::authform_internal(%param);          $intform = &Apache::loncommon::authform_internal(%param);
         $locform = &Apache::loncommon::authform_local(%param);          $locform = &Apache::loncommon::authform_local(%param);
     } else {      } elsif ($crstype eq 'Community') {
         my $title_alert = &mt('A Community title is required');          my $title_alert = &mt('A Community title is required');
         my $coord_alert = &mt('The username of the Coordinator is required');          my $coord_alert = &mt('The username of the Coordinator is required');
           &js_escape(\$title_alert);
           &js_escape(\$coord_alert);
           $javascript_validations = qq|
   function validate(formname) {
       if (formname.title == '') {
           alert("$title_alert");
           return;
       }
       if (formname.ccuname == '') {
           alert("$coord_alert");
       }
       formname.submit();
   }
           |;
       } else {
           my $title_alert = &mt('A Placement Test title is required');
           my $coord_alert = &mt('The username of the Course Coordinator is required');
           &js_escape(\$title_alert);
           &js_escape(\$coord_alert);
         $javascript_validations = qq|          $javascript_validations = qq|
 function validate(formname) {  function validate(formname) {
     if (formname.title == '') {      if (formname.title == '') {
Line 145  function validate(formname) { Line 166  function validate(formname) {
     formname.submit();      formname.submit();
 }  }
         |;          |;
           
     }      }
     my %lt=&Apache::lonlocal::texthash(      my %lt=&Apache::lonlocal::texthash(
     'cinf' => "Course Information",      'cinf' => "Course Information",
Line 155  function validate(formname) { Line 177  function validate(formname) {
                     'iinf' => "Institutional Information",                      'iinf' => "Institutional Information",
                     'stat' => "The following entries will be used to identify the course according to the naming scheme adopted by your institution. Your choices will be used to map an internal LON-CAPA course ID to the corresponding course section ID(s) used by the office responsible for providing official class lists for courses at your institution. This mapping is required if you choose to employ automatic population of class lists.",                      'stat' => "The following entries will be used to identify the course according to the naming scheme adopted by your institution. Your choices will be used to map an internal LON-CAPA course ID to the corresponding course section ID(s) used by the office responsible for providing official class lists for courses at your institution. This mapping is required if you choose to employ automatic population of class lists.",
                     'ccod' => "Course Code",                      'ccod' => "Course Code",
                     'toin' => "to interface with institutional data, e.g., fs03glg231 for Fall 2003 Geology 231",  
                     'snid' => "Section Numbers and corresponding LON-CAPA section IDs",                      'snid' => "Section Numbers and corresponding LON-CAPA section IDs",
                     'csli' => "a comma separated list of institutional section numbers, each separated by a colon from the (optional) corresponding section 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 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) sectionID to be used in LON-CAPA, e.g., fs03ent231001:ent1,fs03bot231001:bot1,fs03zol231002:zol2",                      '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) section ID to be used in LON-CAPA, e.g., fs03ent231001:ent1,fs03bot231001:bot1,fs03zol231002:zol2",
                     'ccre' => "Course credits",                      'ccre' => "Course credits",
                       'crcd' => "Create six character course identifier to share with students",
                     'cred' => "the number of institutional credits students will earn by completing this course",                      'cred' => "the number of institutional credits students will earn by completing this course",
                     'crco' => "Course Content",                      'crco' => "Course Content",
                     'cncr' => "Completely new course",                      'cncr' => "Completely new course",
Line 206  function validate(formname) { Line 228  function validate(formname) {
                     'psam' => "Authentication mechanism",                      'psam' => "Authentication mechanism",
                     'pcda' => "Default authentication method for new users added to this domain by the automated enrollment process",                      'pcda' => "Default authentication method for new users added to this 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?",  
                     'ndcl' => "Notification to domain 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',      'rshm' => 'Resource Space Home',
                     'cgrs' => "Course Group Settings",                      'cgrs' => "Course Group Settings",
Line 216  function validate(formname) { Line 236  function validate(formname) {
                     'opcm' => 'Open Community',                      'opcm' => 'Open Community',
        );         );
     $lt{'kaut'} = &mt('Key authority ([_1]id:domain[_2]) if other than course','<tt>','</tt>');      $lt{'kaut'} = &mt('Key authority ([_1]id:domain[_2]) if other than course','<tt>','</tt>');
       $lt{'toin'} = &mt('to interface with institutional data, e.g., [_1]fs13glg231[_2] for [_3]Fall 2013 Geology 231[_4]','<tt>','</tt>','<i>','</i>');
       $lt{'nccl'} = &mt('Notification to [_1]course coordinator[_2] via LON-CAPA message when enrollment changes occur during the automated update?','<b>','</b>');
       $lt{'ndcl'} = &mt('Notification to [_1]domain coordinator[_2] via LON-CAPA message when enrollment changes occur during the automated update?','<b>','</b>');
   
     if ($crstype eq 'Community') {      if ($crstype eq 'Community') {
         $lt{'cinf'} = &mt('Community Information');          $lt{'cinf'} = &mt('Community Information');
Line 241  function validate(formname) { Line 264  function validate(formname) {
         $lt{'cc'}  = &mt('(will be assigned Coordinator role)');          $lt{'cc'}  = &mt('(will be assigned Coordinator role)');
         $lt{'cgrs'} = &mt('Community Group Settings');          $lt{'cgrs'} = &mt('Community Group Settings');
         $lt{'cgrq'} = &mt('Set a quota for the total disk space available for storage of community group portfolio files');          $lt{'cgrq'} = &mt('Set a quota for the total disk space available for storage of community group portfolio files');
       } elsif ($crstype eq 'Placement') {
           $lt{'cinf'} = &mt('Placement Test Information');
           $lt{'ctit'} = &mt('Placement Test Title');
           $lt{'chsr'} = &mt('Placement Test Home Server');
           $lt{'cidn'} = &mt('Placement Test ID/Number');
           $lt{'crco'} = &mt('Placement Test Content');
           $lt{'cncr'} = &mt('Completely new placement test');
           $lt{'cecr'} = &mt('Clone an existing placement test');
           $lt{'sacr'} = &mt('Do NOT generate as standard placement test');
           $lt{'stco'} = &mt('standard placement tests only');
           $lt{'navi'} = &mt('Placement Test Contents');
           $lt{'cid'}  = &mt('Placement Test ID');
     }      }
     my $js = <<END;      my $js = <<END;
 <script type="text/javascript">  <script type="text/javascript">
Line 269  END Line 304  END
     my %titles = &Apache::lonlocal::texthash(      my %titles = &Apache::lonlocal::texthash(
                   courseone => 'Create a New Course',                    courseone => 'Create a New Course',
                   groupone => 'Create a New Community',                    groupone => 'Create a New Community',
                     placementone=> 'Create a New Placement Test',
     );        );  
     my $start_page =       my $start_page = 
         &Apache::loncommon::start_page($titles{$env{'form.phase'}},$js);          &Apache::loncommon::start_page($titles{$env{'form.phase'}},$js);
Line 317  END Line 353  END
         $r->print(&Apache::lonhtmlcommon::row_headline()          $r->print(&Apache::lonhtmlcommon::row_headline()
                  .'<h3>'.$lt{'iinf'}.'</h3>'                   .'<h3>'.$lt{'iinf'}.'</h3>'
                  .$lt{'stat'}.' '                   .$lt{'stat'}.' '
                  .&mt('Default credits can also be specified, if different from the domain defaults (official courses: [_1]; unofficial courses: [_2]).',                   .&mt('Default credits can also be specified, if different from the domain defaults (official courses: [_1]; unofficial courses: [_2]; textbook courses: [_3]).',
                       $domdefaults{'officialcredits'},$domdefaults{'unofficialcredits'})                        $domdefaults{'officialcredits'},$domdefaults{'unofficialcredits'},$domdefaults{'textbookcredits'})
                  .&Apache::lonhtmlcommon::row_closure()                   .&Apache::lonhtmlcommon::row_closure()
   
                  .&Apache::lonhtmlcommon::row_title($lt{'ccod'})                   .&Apache::lonhtmlcommon::row_title($lt{'ccod'})
Line 336  END Line 372  END
                  .'<br />('.$lt{'cscs'}.')'                   .'<br />('.$lt{'cscs'}.')'
                  .&Apache::lonhtmlcommon::row_closure()                   .&Apache::lonhtmlcommon::row_closure()
         );          );
         if ($domdefaults{'officialcredits'} || $domdefaults{'unofficialcredits'}) {          if ($domdefaults{'officialcredits'} || $domdefaults{'unofficialcredits'} || $domdefaults{'textbookcredits'}) {
             $r->print(&Apache::lonhtmlcommon::row_title($lt{'ccre'})              $r->print(&Apache::lonhtmlcommon::row_title($lt{'ccre'})
                      .'<input type="text" size="3" name="defaultcredits" />'                       .'<input type="text" size="3" name="defaultcredits" />'
                      .'<br />('.$lt{'cred'}.')'                       .'<br />('.$lt{'cred'}.')'
                      .&Apache::lonhtmlcommon::row_closure()                       .&Apache::lonhtmlcommon::row_closure()
             );              );
         }          }
           $r->print(&Apache::lonhtmlcommon::row_title($lt{'crcd'})
                        .'<span class="LC_nobreak">'
                        .'<input type="radio" name="uniquecode" value="1" />'.&mt('Yes').('&nbsp;'x2)
                        .'<input type="radio" name="uniquecode" value="0" checked="checked" />'.&mt('No')
                        .&Apache::lonhtmlcommon::row_closure()
                    );
       }
       my $blankchk;
       if ($crstype eq 'Placement') {
           $blankchk = ' checked="checked"';
     }      }
     # Table: New Course / Clone Course      # Table: New Course / Clone Course
     $r->print(&Apache::lonhtmlcommon::row_headline()      $r->print(&Apache::lonhtmlcommon::row_headline()
Line 368  END Line 414  END
                  .&Apache::lonhtmlcommon::row_closure()                   .&Apache::lonhtmlcommon::row_closure()
                  .&Apache::lonhtmlcommon::row_title($lt{'fres'})                   .&Apache::lonhtmlcommon::row_title($lt{'fres'})
                  .'<label>'                   .'<label>'
                  .'<input type="radio" name="firstres" value="blank" />'.$lt{'blnk'}                   .'<input type="radio" name="firstres" value="blank"'.$blankchk.' />'.$lt{'blnk'}
                  .'</label>'                   .'</label>');
                  .'&nbsp;');  
     if ($crstype eq 'Community') {      if ($crstype eq 'Community') {
         $r->print('<label>'          $r->print('&nbsp;<label>'
                  .'<input type="radio" name="firstres" value="nav" checked="checked" />'.$lt{'navi'}                   .'<input type="radio" name="firstres" value="nav" checked="checked" />'.$lt{'navi'}
                  .'</label>');                   .'</label>');
     } else {      } elsif ($crstype eq 'Course') {
         $r->print('<label>'          $r->print('&nbsp;<label>'
                  .'<input type="radio" name="firstres" value="syl" checked="checked" />'.$lt{'sllb'}                   .'<input type="radio" name="firstres" value="syl" checked="checked" />'.$lt{'sllb'}
                  .'</label>'                   .'</label>'
                  .'&nbsp;'                   .'&nbsp;'
Line 558  END Line 603  END
 <input type="submit" value="'.$lt{'opcm'}.'" />  <input type="submit" value="'.$lt{'opcm'}.'" />
 </p>'  </p>'
         );          );
       } elsif ($crstype eq 'Placement') {
           $r->print('
   <p>
   <input type="hidden" name="prevphase" value="placementone" />
   <input type="hidden" name="phase" value="placementtwo" />
   <input type="submit" value="'.$lt{'opcm'}.'" />
   </p>'
           );
     }      }
     $r->print('</form>'.      $r->print('</form>'.
               $end_page);                $end_page);
Line 578  sub create_course { Line 631  sub create_course {
         $crstype='Course';          $crstype='Course';
         $enrollstart=&Apache::lonhtmlcommon::get_date_from_form('startenroll');          $enrollstart=&Apache::lonhtmlcommon::get_date_from_form('startenroll');
         $enrollend=&Apache::lonhtmlcommon::get_date_from_form('endenroll');          $enrollend=&Apache::lonhtmlcommon::get_date_from_form('endenroll');
       } elsif ($env{'form.phase'} eq 'placementtwo') {
           $crstype='Placement';
     }      }
     $startaccess = &Apache::lonhtmlcommon::get_date_from_form('startaccess');      $startaccess = &Apache::lonhtmlcommon::get_date_from_form('startaccess');
     $endaccess   = &Apache::lonhtmlcommon::get_date_from_form('endaccess');      $endaccess   = &Apache::lonhtmlcommon::get_date_from_form('endaccess');
Line 649  sub create_course { Line 704  sub create_course {
                };                 };
   
     if (($crstype eq 'Course') &&       if (($crstype eq 'Course') && 
         ($domdefaults{'officialcredits'} || $domdefaults{'unofficialcredits'})) {          ($domdefaults{'officialcredits'} || $domdefaults{'unofficialcredits'} || $domdefaults{'textbookcredits'})) {
         $args->{'defaultcredits'} = $env{'form.defaultcredits'};          $args->{'defaultcredits'} = $env{'form.defaultcredits'};
     }      }
   
       if ($env{'form.uniquecode'}) {
            $args->{'uniquecode'} = 1;
       }
   
     #      #
     # Verify data      # Verify data
     #      #
Line 681  sub create_course { Line 740  sub create_course {
                      ,$env{'form.course_home'}.&Apache::loncommon::end_page()));                       ,$env{'form.course_home'}.&Apache::loncommon::end_page()));
         return;          return;
     }      }
     my ($courseid,$crsudom,$crsunum);      my ($courseid,$crsudom,$crsunum,$code);
     my ($success,$output) =       my ($success,$output) = 
  &Apache::loncommon::construct_course($args,\$logmsg,\$courseid,   &Apache::loncommon::construct_course($args,\$logmsg,\$courseid,
      \$crsudom,\$crsunum,       \$crsudom,\$crsunum,
      $env{'user.domain'},       $env{'user.domain'},
      $env{'user.name'},'dc_create');       $env{'user.name'},'dc_create',undef,undef,\$code);
     $r->print($output);      $r->print($output);
     if ($success) {      if ($success) {
         #          #
Line 706  sub create_course { Line 765  sub create_course {
     $r->print(      $r->print(
       '<p><a href="/adm/managekeys?cid='.$crsudom.'_'.$crsunum.'">'.&mt('Manage Access Keys').'</a></p>');        '<p><a href="/adm/managekeys?cid='.$crsudom.'_'.$crsunum.'">'.&mt('Manage Access Keys').'</a></p>');
  }   }
           if ($code) {
               $r->print(
                         '<p>'.&mt('Course identifier to share with students: [_1]',$code).'</p>'
                        );
           }
         # Flush the course logs so reverse user roles immediately updated          # Flush the course logs so reverse user roles immediately updated
  $r->register_cleanup(\&Apache::lonnet::flushcourselogs);   $r->register_cleanup(\&Apache::lonnet::flushcourselogs);
  $r->print('<p>'.&mt('Roles will be active at next login').'.</p>');   $r->print('<p>'.&mt('Roles will be active at next login').'.</p>');
Line 716  sub create_course { Line 780  sub create_course {
 }  }
   
 sub print_intro_page {  sub print_intro_page {
     my ($r,$show_all_choices) = @_;      my ($r,$show_all_choices,$cancreate) = @_;
     my $start_page =      my $start_page =
         &Apache::loncommon::start_page('Create a New Course or Community');          &Apache::loncommon::start_page('Create a New Course, Community or Placement Test');
     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();
Line 740  sub print_intro_page { Line 804  sub print_intro_page {
           {            {
                linktext => 'Create a single community',                 linktext => 'Create a single community',
                url => '/adm/createcourse?phase=groupone',                 url => '/adm/createcourse?phase=groupone',
                permission => $show_all_choices,                 permission => $cancreate->{'Community'},
                #help => '',                 #help => '',
                icon => 'crsnew.png',                 icon => 'crsnew.png',
                linktitle => 'Create a new collaborative community by completing an online form.'                 linktitle => 'Create a new collaborative community by completing an online form.'
           },            },
           {            {
                linktext => 'Create courses/communities by uploading an attributes file',                 linktext => 'Create a single placement test',
                  url => '/adm/createcourse?phase=placementone',
                  permission => $cancreate->{'Placement'},
                  #help => '',
                  icon => 'crsnew.png',
                  linktitle => 'Create a new placement test by completing an online form.'
             },
             {
                  linktext => 'Create courses/communities/placement tests by uploading an attributes file',
                url => '/adm/createcourse?phase=batchone',                 url => '/adm/createcourse?phase=batchone',
                permission => 1,                 permission => 1,
                help => 'Batch_Creation',                 help => 'Batch_Creation',
                icon => 'uplcrs.png',                 icon => 'uplcrs.png',
                linktitle => 'Upload an attributes file containing specifications for one or more courses or communities in XML format.'                 linktitle => 'Upload an attributes file containing specifications for one or more courses, communities or placement tests in XML format.'
           },            },
        ]         ]
        },         },
Line 763  sub print_intro_page { Line 835  sub print_intro_page {
                permission => $show_all_choices,                 permission => $show_all_choices,
                #help => '',                 #help => '',
                icon => 'rcrs.png',                 icon => 'rcrs.png',
                linktitle => 'Display course and community creation requests submitted by authorized users, held pending approval by a Domain Coordinator.'                 linktitle => 'Display course, community creation and placement test requests submitted by authorized users, held pending approval by a Domain Coordinator.'
            },             },
            {             {
                linktext => 'View pending official course requests',                 linktext => 'View pending official course requests',
Line 784  sub print_intro_page { Line 856  sub print_intro_page {
                permission => $show_all_choices,                 permission => $show_all_choices,
                #help => '',                 #help => '',
                icon => 'document-properties.png',                 icon => 'document-properties.png',
                linktitle => 'Display information about when, how and by whom courses and communities were created in this domain.'                 linktitle => 'Display information about when, how and by whom courses, communities and placement tests were created in this domain.'
            },             },
        ]         ]
        },         },
Line 801  sub print_intro_page { Line 873  sub print_intro_page {
 sub upload_batchfile {  sub upload_batchfile {
     my $r = shift;      my $r = shift;
     my $start_page =      my $start_page =
         &Apache::loncommon::start_page('Create a New Course or Community');          &Apache::loncommon::start_page('Create a New Course, Community, or Placement Test');
     my $crumbs = &Apache::lonhtmlcommon::breadcrumbs('Upload Course/Community Attributes File','Create_Course',undef,'Create_Courses');      my $crumbs = &Apache::lonhtmlcommon::breadcrumbs('Upload Course/Community/Placement Test Attributes File','Create_Course',undef,'Create_Courses');
     my $end_page =      my $end_page =
         &Apache::loncommon::end_page();          &Apache::loncommon::end_page();
     $r->print($start_page.$crumbs);      $r->print($start_page.$crumbs);
     $r->print('<h3>'.&mt('Upload a courses or communities attributes file').'</h3>');      $r->print('<h3>'.&mt('Upload a courses, communities or placement tests attributes file').'</h3>');
     $r->print('<form name="batchcreate" method="post" '.      $r->print('<form name="batchcreate" method="post" '.
                 'enctype="multipart/form-data" action="/adm/createcourse">'.                  'enctype="multipart/form-data" action="/adm/createcourse">'.
               '<input type="file" name="coursecreatorxml" />'.                '<input type="file" name="coursecreatorxml" />'.
               '<input type="hidden" name="phase" value="batchtwo" /><br /><br />'.                '<input type="hidden" name="phase" value="batchtwo" /><br /><br />'.
               '<input type="submit" name="batchsubmit" '.                '<input type="submit" name="batchsubmit" '.
               'value="'.&mt('Create Courses/Communities').'" /></form>');                'value="'.&mt('Create Courses/Communities/Placement Tests').'" /></form>');
     $r->print($end_page);      $r->print($end_page);
     return;      return;
 }  }
Line 820  sub upload_batchfile { Line 892  sub upload_batchfile {
 sub process_batchfile {  sub process_batchfile {
     my $r = shift;      my $r = shift;
     my $start_page =      my $start_page =
         &Apache::loncommon::start_page('Create a New Course or Community');          &Apache::loncommon::start_page('Create a New Course, Community or Placement Test');
     my $crumbs = &Apache::lonhtmlcommon::breadcrumbs('Creation Outcome','Create_Course',undef,'Create_Courses');      my $crumbs = &Apache::lonhtmlcommon::breadcrumbs('Creation Outcome','Create_Course',undef,'Create_Courses');
     my $end_page =      my $end_page =
         &Apache::loncommon::end_page();          &Apache::loncommon::end_page();
Line 939  sub print_creation_logs { Line 1011  sub print_creation_logs {
         $crstype = '.';          $crstype = '.';
     } elsif ($curr{'type'} eq 'community') {      } elsif ($curr{'type'} eq 'community') {
         $crstype = 'Community';          $crstype = 'Community';
       } elsif ($curr{'type'} eq 'placement') {
           $crstype = 'Placement';
     }      }
   
     my ($instcodefilter,$regexpok);      my ($instcodefilter,$regexpok);
Line 1029  sub print_creation_logs { Line 1103  sub print_creation_logs {
         my $showtype;          my $showtype;
         if ($courses{$cid}{type} eq 'Community') {          if ($courses{$cid}{type} eq 'Community') {
             $showtype = &mt('community');              $showtype = &mt('community');
           } elsif ($courses{$cid}{type} eq 'Placement') {
               $showtype = &mt('placement test');
         } else {          } else {
             my $instcode = $courses{$cid}{inst_code};              my $instcode = $courses{$cid}{inst_code};
             if ($instcode ne '')  {              if ($instcode ne '')  {
Line 1142  sub creation_display_filter { Line 1218  sub creation_display_filter {
                         $typename = $typenames->{$type};                          $typename = $typenames->{$type};
                     }                      }
                 }                  }
                 $output .= '<option value="'.$type.'"'.$selstr.'>'.$typename.'</option>'."\n";                  $output .= '<option value="'.$type.'"'.$selstr.'>'.&mt($typename).'</option>'."\n";
             }              }
             $output .= '</select></td>';              $output .= '</select></td>';
         }          }
Line 1241  sub handler { Line 1317  sub handler {
   
     my $show_all_choices = 0;      my $show_all_choices = 0;
     my $primary_rev = &Apache::lonnet::get_server_loncaparev($env{'request.role.domain'});      my $primary_rev = &Apache::lonnet::get_server_loncaparev($env{'request.role.domain'});
       my %cancreate = (
                            Community => 0,
                            Placement => 0,
                       );
   
     if (($primary_rev ne 'refused') && ($primary_rev ne 'error') &&      if (($primary_rev ne 'refused') && ($primary_rev ne 'error') &&
         ($primary_rev ne 'unknown_cmd') && ($primary_rev ne 'no_such_host')) {          ($primary_rev ne 'unknown_cmd') && ($primary_rev ne 'no_such_host')) {
         $show_all_choices = 1;          $show_all_choices = 1;
           my ($primary_major,$primary_minor) = split(/\./,$primary_rev);
           foreach my $key (keys(%cancreate)) {
               my ($needsmajor,$needsminor) = 
                   split(/\./,$Apache::lonnet::needsrelease{'course:crstype:'.$key});
               unless (($needsmajor > $primary_major) ||
                       (($needsmajor == $primary_major) && ($needsminor > $primary_minor))) {
                   $cancreate{$key} = 1;
               }
           }
     }      }
   print STDERR "cacreate Community $cancreate{'Community'} cancreate Placement $cancreate{'Placement'}\n";
   
     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');
Line 1259  sub handler { Line 1350  sub handler {
             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))) {               ($cancreate{'Community'})) ||
              (($env{'form.phase'} eq 'placementtwo') &&
               ($cancreate{'Placement'}))) { 
            &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 1271  sub handler { Line 1364  sub handler {
            &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))) {                  ($cancreate{'Community'})) ||
                   (($env{'form.phase'} eq 'placementone') &&
                    ($cancreate{'Placement'}))) {
            &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 1300  sub handler { Line 1395  sub handler {
                    faq=>9,bug=>'Dom Coord Interface',});                     faq=>9,bug=>'Dom Coord Interface',});
            my $js = &courserequestbrowser_javascript();             my $js = &courserequestbrowser_javascript();
            my $start_page=&Apache::loncommon::start_page('Display Requests',$js);             my $start_page=&Apache::loncommon::start_page('Display Requests',$js);
            my $crumbs = &Apache::lonhtmlcommon::breadcrumbs('Display Requests','Course_Request',undef,'Course_Request');             my $crumbs = &Apache::lonhtmlcommon::breadcrumbs('Display Requests','Course_Requests',undef,'Course_Requests');
            $r->print($start_page.$crumbs."\n".'<div>'.             $r->print($start_page.$crumbs."\n".'<div>'.
                      &Apache::loncoursequeueadmin::display_queued_requests(                       &Apache::loncoursequeueadmin::display_queued_requests(
                          'domain',$env{'request.role.domain'}).'</div>'.                           'domain',$env{'request.role.domain'}).'</div>'.
Line 1322  sub handler { Line 1417  sub handler {
                  text=>&mt('[_1] Requests Updated',),                   text=>&mt('[_1] Requests Updated',),
                  faq=>9,bug=>'Dom Coord Interface',},);                   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_Requests',undef,'Course_Requests');
            $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>'.
Line 1334  sub handler { Line 1429  sub handler {
                    faq=>9,bug=>'Dom Coord Interface',});                     faq=>9,bug=>'Dom Coord Interface',});
            my $js = &courserequestbrowser_javascript();             my $js = &courserequestbrowser_javascript();
            my $start_page=&Apache::loncommon::start_page('Display Pending Queue',$js);             my $start_page=&Apache::loncommon::start_page('Display Pending Queue',$js);
            my $crumbs = &Apache::lonhtmlcommon::breadcrumbs('Display Pending Queue','Course_Request',undef,'Course_Request');             my $crumbs = &Apache::lonhtmlcommon::breadcrumbs('Display Pending Queue','Course_Requests',undef,'Course_Requests');
            $r->print($start_page.$crumbs."\n".'<div>'.             $r->print($start_page.$crumbs."\n".'<div>'.
                      &Apache::loncoursequeueadmin::display_queued_requests(                       &Apache::loncoursequeueadmin::display_queued_requests(
                          'pending',$env{'request.role.domain'}).'</div>'.                           'pending',$env{'request.role.domain'}).'</div>'.
Line 1347  sub handler { Line 1442  sub handler {
                  {href=>"/adm/createcourse?phase=requestvalidation",                   {href=>"/adm/createcourse?phase=requestvalidation",
                    text=>&mt('Validation Attempted'),},);                     text=>&mt('Validation Attempted'),},);
            my $start_page=&Apache::loncommon::start_page('Requests Validation Result',$js);             my $start_page=&Apache::loncommon::start_page('Requests Validation Result',$js);
            my $crumbs = &Apache::lonhtmlcommon::breadcrumbs('Validation Attempted','Course_Request',undef,'Course_Request');             my $crumbs = &Apache::lonhtmlcommon::breadcrumbs('Validation Attempted','Course_Requests',undef,'Course_Requests');
            $r->print($start_page.$crumbs."\n".'<div>'.             $r->print($start_page.$crumbs."\n".'<div>'.
                      &Apache::loncoursequeueadmin::process_official_reqs('domain',$env{'request.role.domain'}).'</div>'.                       &Apache::loncoursequeueadmin::process_official_reqs('domain',$env{'request.role.domain'}).'</div>'.
                      &Apache::loncommon::end_page());                       &Apache::loncommon::end_page());
Line 1361  sub handler { Line 1456  sub handler {
                     '// ]]>'."\n".                      '// ]]>'."\n".
                     '</script>';                      '</script>';
            my $start_page=&Apache::loncommon::start_page('Course/Community Creation Logs',$js);             my $start_page=&Apache::loncommon::start_page('Course/Community Creation Logs',$js);
            my $crumbs = &Apache::lonhtmlcommon::breadcrumbs('Created Courses/Communities','Creation_Log',undef,'Creation_Log');             my $crumbs = &Apache::lonhtmlcommon::breadcrumbs('Created Courses/Communities','Course_Creation_Log',undef,'Course_Creation_Log');
            $r->print($start_page.$crumbs."\n".'<div>');             $r->print($start_page.$crumbs."\n".'<div>');
            &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,$show_all_choices);             &print_intro_page($r,$show_all_choices,\%cancreate);
        }         }
    } else {     } else {
       $env{'user.error.msg'}=        $env{'user.error.msg'}=

Removed from v.1.149  
changed lines
  Added in v.1.159


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