Diff for /loncom/interface/Attic/londropadd.pm between versions 1.114 and 1.122

version 1.114, 2004/06/17 18:31:24 version 1.122, 2004/12/02 19:00:38
Line 136  sub domain_form { Line 136  sub domain_form {
 ###############################################################  ###############################################################
 #  Menu Phase One  #  Menu Phase One
 sub print_main_menu {  sub print_main_menu {
     my $r=shift;      my ($r,$enrl_permission,$view_permission)=@_;
     my %Text = &Apache::lonlocal::texthash      #
         ('upload'    => 'Upload a class list',  
          'enrollone' => 'Enroll a single student',  
          'modify'    => 'Modify student data',  
          'view'      => 'View Class List',  
          'drop'      => 'Drop Students',  
          'populate'  => 'Automated Enrollment Manager');  
     my %help=();  
     foreach ('Course_Drop_Student','Course_Add_Student',  
      'Course_Modify_Student_Data','Course_View_Class_List',  
      'Course_Create_Class_List') {  
  $help{$_}=&Apache::loncommon::help_open_topic($_);  
     }  
   
     $r->print(<<END);  
 <p>  
 <font size="+1">  
 <a href="/adm/dropadd?action=upload">$Text{'upload'}</a>  
 </font>$help{'Course_Create_Class_List'}  
 </p><p>  
 <font size="+1">  
     <a href="/adm/dropadd?action=enrollstudent">$Text{'enrollone'}</a>  
     </font>$help{'Course_Add_Student'}  
 </p><p>  
 <font size="+1">  
     <a href="/adm/dropadd?action=modifystudent">$Text{'modify'}</a>  
     </font>$help{'Course_Modify_Student_Data'}  
 </p><p>  
 <font size="+1">  
     <a href="/adm/dropadd?action=classlist">$Text{'view'}</a>  
     </font>$help{'Course_View_Class_List'}  
 </p><p>  
 <font size="+1">  
     <a href="/adm/dropadd?action=drop">$Text{'drop'}</a>  
     </font>$help{'Course_Drop_Student'}  
 </p><p>  
 END  
     my ($cdom,$cnum) = split/_/,$ENV{'request.course.id'};      my ($cdom,$cnum) = split/_/,$ENV{'request.course.id'};
     if (&Apache::lonnet::auto_run($cnum,$cdom) ) {      my @menu = 
         $r->print(<<END);          ( 
 <font size="+1">            { text => 'Upload a class list', 
     <a href="/adm/populate">$Text{'populate'}</a>              help => 'Course_Create_Class_List',
 </font>              action => 'upload',
 END              permission => $enrl_permission,
               },
             { text => 'Enroll a single student', 
               help => 'Course_Add_Student',
               action => 'enrollstudent',
               permission => $enrl_permission,
               },
             { text => 'Modify student data', 
               help => 'Course_Modify_Student_Data',
               action => 'modifystudent',
               permission => $enrl_permission,
               },
             { text => 'View Class List', 
               help => 'Course_View_Class_List',
               action => 'classlist',
               permission => $view_permission,
               },
             { text => 'Drop Students', 
               help => 'Course_Drop_Student',
               action => 'drop',
               permission => $enrl_permission,
               },
             { text => 'Automated Enrollment Manager', 
               permission => &Apache::lonnet::auto_run($cnum,$cdom),
               url  => '/adm/populate',
               },
             );
       my $menu_html = '';
       foreach my $menu_item (@menu) {
           next if (! $menu_item->{'permission'});
           $menu_html.='<p>';
           $menu_html.='<font size="+1">';
           if (exists($menu_item->{'url'})) {
               $menu_html.=qq{<a href="$menu_item->{'url'}">};
           } else {
               $menu_html.=
                   qq{<a href="/adm/dropadd?action=$menu_item->{'action'}">};
           }
           $menu_html.= &mt($menu_item->{'text'}).'</a></font>';
           if (exists($menu_item->{'help'})) {
               $menu_html.=
                   &Apache::loncommon::help_open_topic($menu_item->{'help'});
           }
           $menu_html.='</p>'.$/;
     }      }
       $r->print($menu_html);
       return;
 }  }
   
 ###############################################################  ###############################################################
Line 309  END Line 318  END
         return;          return;
     }      }
     // alert('current.radiovalue = '+current.radiovalue);      // alert('current.radiovalue = '+current.radiovalue);
     if (current.radiovalue == null || current.radiovalue == 'nochange') {      if (current.radiovalue == null || current.radiovalue == '' || current.radiovalue == 'nochange') {
         // They did not check any of the login radiobuttons.          // They did not check any of the login radiobuttons.
         alert('$alert{'authen'}');          alert('$alert{'authen'}');
         return;          return;
Line 914  sub get_student_username_domain_form { Line 923  sub get_student_username_domain_form {
     <input type="submit" name="Begin Enrollment" value="$lt{'been'}" />      <input type="submit" name="Begin Enrollment" value="$lt{'been'}" />
     </td></tr>      </td></tr>
 </table>  </table>
   <script type="text/javascript">
   // the if prevents the script error if the browser can not handle this
   if ( document.studentform.cuname ) { document.studentform.cuname.focus(); }
   </script>
 END  END
     return;      return;
 }  }
Line 924  sub print_enroll_single_student_form { Line 937  sub print_enroll_single_student_form {
     #      #
     my $username = $ENV{'form.cuname'};      my $username = $ENV{'form.cuname'};
     my $domain   = $ENV{'form.cudomain'};      my $domain   = $ENV{'form.cudomain'};
       $username=~s/[\W|_]//gs;
       $domain=~s/[\W|_]//gs;
     my $home = &Apache::lonnet::homeserver($username,$domain);      my $home = &Apache::lonnet::homeserver($username,$domain);
     # $new_user flags whether we are creating a new user or using an old one      # $new_user flags whether we are creating a new user or using an old one
     my $new_user = 1;      my $new_user = 1;
Line 1231  END Line 1246  END
                                            'sec'    => "section",                                             'sec'    => "section",
                                            'start'  => "start date",                                             'start'  => "start date",
                                            'end'    => "end date",                                             'end'    => "end date",
                                            'type'   => "enroll type",                                             'type'   => "enroll type/action"
                                            'chan'   => "change"  
    );     );
         unless ($mode eq 'autoenroll') {          unless ($mode eq 'autoenroll') {
             $r->print(<<END);              $r->print(<<END);
Line 1240  END Line 1254  END
 <input type="hidden" name="sdom"   value="" />  <input type="hidden" name="sdom"   value="" />
 END  END
         }          }
         $r->print(<<END);          $r->print("
 <p>  <p>
 <table border=2>  <table border=2>
 <tr><th>Count  <tr>
     </th><th>          ");
           if ($mode eq 'autoenroll') {
               $r->print("
    <th><a href=\"javascript:document.studentform.sortby.value='type';document.studentform.submit();\">$lt{'type'}</a></th>
               ");
           } else {
               $r->print("
   <th>Count</th>
               ");
           }
           $r->print(<<END);
       <th>
        <a href="javascript:document.studentform.sortby.value='username';document.studentform.submit();">$lt{'usrn'}</a>         <a href="javascript:document.studentform.sortby.value='username';document.studentform.submit();">$lt{'usrn'}</a>
     </th><th>      </th><th>
        <a href="javascript:document.studentform.sortby.value='domain';document.studentform.submit();">$lt{'dom'}</a>         <a href="javascript:document.studentform.sortby.value='domain';document.studentform.submit();">$lt{'dom'}</a>
Line 1259  END Line 1284  END
     </th><th>      </th><th>
        <a href="javascript:document.studentform.sortby.value='end';document.studentform.submit();">$lt{'end'}</a>         <a href="javascript:document.studentform.sortby.value='end';document.studentform.submit();">$lt{'end'}</a>
     </th>      </th>
     </tr>
 END  END
         if ($mode eq 'autoenroll') {  
             $r->print("   <th>  
        <a href=\"javascript:document.studentform.sortby.value='type';document.studentform.submit();\">$lt{'type'}</a>  
     </th><th>  
          $lt{'chan'}?</th>");  
         }  
         $r->print("  
    </tr>  
         ");  
     } elsif ($mode eq 'csv') {      } elsif ($mode eq 'csv') {
  #   #
  # Open a file   # Open a file
Line 1337  END Line 1354  END
         lc($classlist->{$a}->[$third]) cmp lc($classlist->{$b}->[$third])          lc($classlist->{$a}->[$third]) cmp lc($classlist->{$b}->[$third])
         } (keys(%$classlist));          } (keys(%$classlist));
     my $studentcount = 0;      my $studentcount = 0;
       my $autocount = 0;
       my $manualcount = 0;
       my $unlockcount = 0;
       my $lockcount = 0;
     foreach my $student (@Sorted_Students) {      foreach my $student (@Sorted_Students) {
         my $sdata = $classlist->{$student};          my $sdata = $classlist->{$student};
         my $username = $sdata->[$index{'username'}];          my $username = $sdata->[$index{'username'}];
Line 1347  END Line 1368  END
         my $status   = $sdata->[$index{'status'}];          my $status   = $sdata->[$index{'status'}];
         my $start    = $sdata->[$index{'start'}];          my $start    = $sdata->[$index{'start'}];
         my $end      = $sdata->[$index{'end'}];          my $end      = $sdata->[$index{'end'}];
         my $type     = $sdata->[$index{'type'}];           my $type     = $sdata->[$index{'type'}];
         next if (($statusmode ne 'Any') && ($status ne $statusmode));          next if (($statusmode ne 'Any') && ($status ne $statusmode));
         if ($mode eq 'view' || $mode eq 'html' || $mode eq 'autoenroll') {          if ($mode eq 'view' || $mode eq 'html' || $mode eq 'autoenroll') {
             if (! defined($start) || $start == 0) {              if (! defined($start) || $start == 0) {
Line 1360  END Line 1381  END
             } else {              } else {
                 $end = &Apache::lonlocal::locallocaltime($end);                  $end = &Apache::lonlocal::locallocaltime($end);
             }              }
             $r->print("<tr>\n    <td>".(++$studentcount)."</td><td>\n    ");              $r->print("<tr>\n    ");
               if ($mode eq 'autoenroll') {
                   my $lockedtype = $sdata->[$index{'lockedtype'}];
                   $studentcount++;
                   my $cellentry;
                   if ($type eq 'auto') {
                       $cellentry = '<b>'.&mt('auto').'</b>&nbsp;<input type="checkbox" name="chgauto" value="'.$username.':'.$domain.'" />&nbsp;Change';
                       $autocount ++;
                   } else {
                       $cellentry = '<table border="0" cellspacing="0"><tr><td rowspan="2"><b>'.&mt('manual').'</b></td><td><nobr><input type="checkbox" name="chgmanual" value="'.$username.':'.$domain.'" />&nbsp;Change</nobr></td></tr><tr><td><nobr>';
                       $manualcount ++;
                       if ($lockedtype) {
                           $cellentry .= '<input type="checkbox" name="unlockchg" value="'.$username.':'.$domain.'" />&nbsp;'.&mt('Unlock');
                           $unlockcount ++;
                       } else {
                           $cellentry .= '<input type="checkbox" name="lockchg" value="'.$username.':'.$domain.'" />&nbsp;'.&mt('Lock');
                           $lockcount ++;
                       }
                       $cellentry .= '</nobr></td></tr></table>';
                   }
                   $r->print("<td>$cellentry<td>\n    ");
               } else {
                   $r->print("<td>".(++$studentcount)."</td><td>\n    ");
               }
             if ($linkto eq 'nothing') {              if ($linkto eq 'nothing') {
                 $r->print($username);                  $r->print($username);
             } elsif ($linkto eq 'aboutme') {              } elsif ($linkto eq 'aboutme') {
Line 1384  END Line 1428  END
     <td>$section</td>      <td>$section</td>
     <td>$start</td>      <td>$start</td>
     <td>$end</td>      <td>$end</td>
      </tr>
 END  END
             if ($mode eq 'autoenroll') {  
                 my $longtype = &mt('manual').'&nbsp';  
                 if ($type eq 'auto') {  
                     $longtype = &mt('auto').'&nbsp';  
                 }  
                 $r->print("<td><b>$longtype</b></td><td><input type=\"checkbox\" name=\"switch:$username:$domain\" /></td>");  
             }  
             $r->print("  
 </tr>  
             ");  
         } elsif ($mode eq 'csv') {          } elsif ($mode eq 'csv') {
             next if (! defined($CSVfile));              next if (! defined($CSVfile));
             # no need to bother with $linkto              # no need to bother with $linkto
Line 1443  END Line 1478  END
         $r->rflush();          $r->rflush();
     }      }
     if ($mode eq 'autoenroll') {      if ($mode eq 'autoenroll') {
         return $studentcount;          return ($studentcount,$autocount,$manualcount,$lockcount,$unlockcount);
     }      }
       return;
 }  }
   
   
Line 2241  sub handler { Line 2277  sub handler {
           text=>"Enrollment Manager",            text=>"Enrollment Manager",
           faq=>9,bug=>'Instructor Interface',});            faq=>9,bug=>'Instructor Interface',});
     #  Needs to be in a course      #  Needs to be in a course
     if (! (($ENV{'request.course.fn'}) &&      if (! ($ENV{'request.course.fn'})) {
           (&Apache::lonnet::allowed('cst',$ENV{'request.course.id'})))) {          # Not in a course
         # Not in a course, or not allowed to modify parms  
         $ENV{'user.error.msg'}=          $ENV{'user.error.msg'}=
             "/adm/dropadd:cst:0:0:Cannot drop or add students";              "/adm/dropadd:cst:0:0:Cannot drop or add students";
         return HTTP_NOT_ACCEPTABLE;           return HTTP_NOT_ACCEPTABLE; 
     }      }
     #      #
       my $view_permission = 
           &Apache::lonnet::allowed('vcl',$ENV{'request.course.id'});
       my $enrl_permission = 
           &Apache::lonnet::allowed('cst',$ENV{'request.course.id'});
       if (! $view_permission && ! $enrl_permission) {
           $ENV{'user.error.msg'}=
               "/adm/dropadd:cst:0:0:Cannot drop or add students";
           return HTTP_NOT_ACCEPTABLE;        
       }
       #
     # Only output the header information if they did not request csv format      # Only output the header information if they did not request csv format
     #      #
     &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},      &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},
Line 2262  sub handler { Line 2307  sub handler {
     if (! exists($ENV{'form.action'})) {      if (! exists($ENV{'form.action'})) {
         $r->print(&Apache::lonhtmlcommon::breadcrumbs          $r->print(&Apache::lonhtmlcommon::breadcrumbs
                   (undef,'Enrollment Manager'));                    (undef,'Enrollment Manager'));
         &print_main_menu($r);          &print_main_menu($r,$enrl_permission,$view_permission);
     } elsif ($ENV{'form.action'} eq 'upload') {      } elsif ($ENV{'form.action'} eq 'upload' && $enrl_permission) {
         &Apache::lonhtmlcommon::add_breadcrumb          &Apache::lonhtmlcommon::add_breadcrumb
             ({href=>'/adm/dropadd?action=upload&state=',              ({href=>'/adm/dropadd?action=upload&state=',
               text=>"Upload Classlist"});                text=>"Upload Classlist"});
         $r->print(&Apache::lonhtmlcommon::breadcrumbs          $r->print(&Apache::lonhtmlcommon::breadcrumbs
                   (undef,'Upload Classlist'));                    (undef,'Upload Classlist','Course_Create_Class_List'));
         if (! exists($ENV{'form.state'})) {          if (! exists($ENV{'form.state'})) {
             &print_first_courselist_upload_form($r);                          &print_first_courselist_upload_form($r);            
         } elsif ($ENV{'form.state'} eq 'got_file') {          } elsif ($ENV{'form.state'} eq 'got_file') {
Line 2282  sub handler { Line 2327  sub handler {
         } else {          } else {
             &print_first_courselist_upload_form($r);                          &print_first_courselist_upload_form($r);            
         }          }
     } elsif ($ENV{'form.action'} eq 'drop') {      } elsif ($ENV{'form.action'} eq 'drop' && $enrl_permission) {
         &Apache::lonhtmlcommon::add_breadcrumb          &Apache::lonhtmlcommon::add_breadcrumb
             ({href=>'/adm/dropadd?action=drop',              ({href=>'/adm/dropadd?action=drop',
               text=>"Drop Students"});                text=>"Drop Students"});
         $r->print(&Apache::lonhtmlcommon::breadcrumbs          $r->print(&Apache::lonhtmlcommon::breadcrumbs
                   (undef,'Drop Students'));                    (undef,'Drop Students','Course_Drop_Student'));
         if (! exists($ENV{'form.state'})) {          if (! exists($ENV{'form.state'})) {
             &print_drop_menu($r);              &print_drop_menu($r);
         } elsif ($ENV{'form.state'} eq 'done') {          } elsif ($ENV{'form.state'} eq 'done') {
Line 2295  sub handler { Line 2340  sub handler {
         } else {          } else {
             &print_drop_menu($r);              &print_drop_menu($r);
         }          }
     } elsif ($ENV{'form.action'} eq 'enrollstudent') {      } elsif ($ENV{'form.action'} eq 'enrollstudent' && $enrl_permission) {
         &Apache::lonhtmlcommon::add_breadcrumb          &Apache::lonhtmlcommon::add_breadcrumb
             ({href=>'/adm/dropadd?action=enrollstudent',              ({href=>'/adm/dropadd?action=enrollstudent',
               text=>"Enroll Student"});                text=>"Enroll Student"});
         $r->print(&Apache::lonhtmlcommon::breadcrumbs          $r->print(&Apache::lonhtmlcommon::breadcrumbs
                   (undef,'Enroll Student'));                    (undef,'Enroll Student','Course_Add_Student'));
         if (! exists($ENV{'form.state'})) {          if (! exists($ENV{'form.state'})) {
             &get_student_username_domain_form($r);              &get_student_username_domain_form($r);
         } elsif ($ENV{'form.state'} eq 'gotusername') {          } elsif ($ENV{'form.state'} eq 'gotusername') {
Line 2310  sub handler { Line 2355  sub handler {
         } else {          } else {
             &get_student_username_domain_form($r);              &get_student_username_domain_form($r);
         }          }
     } elsif ($ENV{'form.action'} eq 'classlist') {      } elsif ($ENV{'form.action'} eq 'classlist' && $view_permission) {
         &Apache::lonhtmlcommon::add_breadcrumb          &Apache::lonhtmlcommon::add_breadcrumb
             ({href=>'/adm/dropadd?action=classlist',              ({href=>'/adm/dropadd?action=classlist',
               text=>"View Classlist"});                text=>"View Classlist"});
         $r->print(&Apache::lonhtmlcommon::breadcrumbs          $r->print(&Apache::lonhtmlcommon::breadcrumbs
                   (undef,'View Classlist'));                    (undef,'View Classlist','Course_View_Class_List'));
         if (! exists($ENV{'form.state'})) {          if (! exists($ENV{'form.state'})) {
             &print_html_classlist($r,undef);              &print_html_classlist($r,undef);
         } elsif ($ENV{'form.state'} eq 'csv') {          } elsif ($ENV{'form.state'} eq 'csv') {
Line 2325  sub handler { Line 2370  sub handler {
         } else {          } else {
             &print_html_classlist($r,undef);              &print_html_classlist($r,undef);
         }          }
     } elsif ($ENV{'form.action'} eq 'modifystudent') {      } elsif ($ENV{'form.action'} eq 'modifystudent' && $enrl_permission) {
         &Apache::lonhtmlcommon::add_breadcrumb          &Apache::lonhtmlcommon::add_breadcrumb
             ({href=>'/adm/dropadd?action=modifystudent',              ({href=>'/adm/dropadd?action=modifystudent',
               text=>"Modify Student Data"});                text=>"Modify Student Data"});
         $r->print(&Apache::lonhtmlcommon::breadcrumbs          $r->print(&Apache::lonhtmlcommon::breadcrumbs
                   (undef,'Modify Student Data'));                    (undef,'Modify Student Data','Course_Modify_Student_Data'));
         if (! exists($ENV{'form.state'})) {          if (! exists($ENV{'form.state'})) {
             &print_html_classlist($r);              &print_html_classlist($r);
         } elsif ($ENV{'form.state'} eq 'selected') {          } elsif ($ENV{'form.state'} eq 'selected') {
Line 2347  sub handler { Line 2392  sub handler {
                                  "Someone should fix this.");                                   "Someone should fix this.");
         $r->print(&Apache::lonhtmlcommon::breadcrumbs          $r->print(&Apache::lonhtmlcommon::breadcrumbs
                   (undef,'Enrollment Manager'));                    (undef,'Enrollment Manager'));
         &print_main_menu($r);          &print_main_menu($r,$enrl_permission,$view_permission);
     }      }
     #      #
     # Finish up      # Finish up

Removed from v.1.114  
changed lines
  Added in v.1.122


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