Diff for /loncom/interface/Attic/londropadd.pm between versions 1.50 and 1.51

version 1.50, 2002/09/17 15:52:44 version 1.51, 2002/09/18 14:17:47
Line 728  END Line 728  END
   
 # =================================================== get the current classlist  # =================================================== get the current classlist
 sub get_current_classlist {  sub get_current_classlist {
     my ($domain,$identifier) = @_;      my $r = shift;
     # domain is the domain the class is being run in      # Call DownloadClasslist
     # identifier is the internal, unique identifier for the class.      my $cid = $ENV{'request.course.id'};
     my %currentlist=();      my $c = $r->connection;
     my $now=time;      my $classlisthash = &Apache::loncoursedata::DownloadClasslist
     my %results=&Apache::lonnet::dump('classlist',$domain,$identifier);          ($cid,'Not downloaded',$c);
     my ($tmp) = keys(%results);      # Call ProcessClasslist
     if ($tmp !~ /^(con_lost|error|no_such_host)/i) {      my %cache;
         foreach my $student (keys(%results)) {      my @students = &Apache::loncoursedata::ProcessClasslist(\%cache,
             # Extract the start and end dates                                                              $classlisthash,
             my ($end,$start)=split(/\:/,$results{$student});                                                              $cid,$c);
             # If the class isn't over, put it in the list      return (\@students,\%cache);
             unless (($end) && ($now>$end)) {   
                 $currentlist{$student}=1;  
             }  
         }  
         return (undef,%currentlist);  
     } else {  
         $tmp =~ s/^error://;  
         return ($tmp,undef);  
     }  
 }  }
   
 # ========================================================= Menu Phase Two Drop  # ========================================================= Menu Phase Two Drop
 sub menu_phase_two_drop {  sub print_drop_menu {
     my $r=shift;      my $r=shift;
     $r->print("<h3>Drop Students</h3>");      $r->print("<h3>Drop Students</h3>");
     my $cid=$ENV{'request.course.id'};      my $cid=$ENV{'request.course.id'};
     my ($error,%currentlist)=&get_current_classlist      my ($student_array,$student_data)=&get_current_classlist($r);
         ($ENV{'course.'.$cid.'.domain'},$ENV{'course.'.$cid.'.num'});      if (! scalar(@$student_array)) {
     if (defined($error)) {  
         if ($error =~ /^No such file or directory/) {  
             $r->print("There are no students currently enrolled.\n");  
         } else {  
             $r->print("<pre>ERROR:$error</pre>");  
         }  
     } elsif (!defined(%currentlist)) {   
         $r->print("There are no students currently enrolled.\n");          $r->print("There are no students currently enrolled.\n");
     } else {          return;
         # Print out the available choices  
         &show_drop_list($r,%currentlist);  
     }      }
       # Print out the available choices
       &show_drop_list($student_array,$student_data,$r);
       return;
 }  }
   
 # ============================================== view classlist  # ============================================== view classlist
Line 782  sub print_html_classlist { Line 767  sub print_html_classlist {
 </p>  </p>
 END  END
     my $cid=$ENV{'request.course.id'};      my $cid=$ENV{'request.course.id'};
     my ($error,%currentlist)=&get_current_classlist      my ($student_array,$student_data)=&get_current_classlist($r);
         ($ENV{'course.'.$cid.'.domain'},$ENV{'course.'.$cid.'.num'});      if (! scalar(@$student_array)) {
     if (defined($error)) {  
         if ($error =~ /^No such file or directory/) {  
             $r->print("There are no students currently enrolled.\n");  
         } else {  
             $r->print("<pre>ERROR:$error</pre>");  
         }  
     } elsif (!defined(%currentlist)) {   
         $r->print("There are no students currently enrolled.\n");          $r->print("There are no students currently enrolled.\n");
     } else {      } else {
         # Print out the available choices          # Print out the available choices
         if ($ENV{'form.action'} eq 'modifystudent') {          if ($ENV{'form.action'} eq 'modifystudent') {
             &show_class_list($r,'view','modify',%currentlist);              &show_class_list($r,'view','modify',$student_array,$student_data);
         } else {          } else {
             &show_class_list($r,'view','aboutme',%currentlist);              &show_class_list($r,'view','aboutme',$student_array,$student_data);
         }          }
     }      }
 }  }
Line 806  END Line 784  END
 sub print_csv_classlist {  sub print_csv_classlist {
     my $r=shift;      my $r=shift;
     my $cid=$ENV{'request.course.id'};      my $cid=$ENV{'request.course.id'};
     my ($error,%currentlist)=&get_current_classlist      my ($student_array,$student_data)=&get_current_classlist($r);
         ($ENV{'course.'.$cid.'.domain'},$ENV{'course.'.$cid.'.num'});      if (! scalar(@$student_array)) {
     if (defined($error)) {  
         if ($error =~ /^No such file or directory/) {  
             $r->print("There are no students currently enrolled.\n");  
         } else {  
             $r->print("<pre>ERROR:$error</pre>");  
         }  
     } elsif (!defined(%currentlist)) {   
         $r->print("There are no students currently enrolled.\n");          $r->print("There are no students currently enrolled.\n");
     } else {      } else {
         &show_class_list($r,'csv','nolink',%currentlist);          &show_class_list($r,'csv','nolink',$student_array,$student_data);
     }      }
 }  }
   
 # =================================================== Show student list to drop  # =================================================== Show student list to drop
 sub show_class_list {  sub show_class_list {
     my ($r,$mode,$linkto,%currentlist)=@_;      my ($r,$mode,$linkto,$students,$student_data)=@_;
     my $cid=$ENV{'request.course.id'};      my $cid=$ENV{'request.course.id'};
     # Print out header       # Print out header 
     if ($mode eq 'view') {      if ($mode eq 'view') {
Line 836  sub show_class_list { Line 807  sub show_class_list {
 <p>  <p>
 <table border=2>  <table border=2>
 <tr><th>username</th><th>domain</th><th>ID</th>  <tr><th>username</th><th>domain</th><th>ID</th>
     <th>student name</th><th>generation</th><th>section</th></tr>      <th>student name</th><th>section</th></tr>
 END  END
     } elsif ($mode eq 'csv') {      } elsif ($mode eq 'csv') {
         $r->print('"'.join('","',("username","domain","ID","last name",          $r->print('"'.join('","',("username","domain","ID","student name",
                                   "first name","middle name","generation",  
                                   "section")).'"'."\n");                                    "section")).'"'."\n");
     }      }
     foreach (sort keys %currentlist) {      foreach my $student (@$students) {
         my ($sname,$sdom)=split(/\:/,$_);          my $username = $student_data->{$student.':username'};
         my %reply=&Apache::lonnet::idrget($sdom,$sname);          my $domain   = $student_data->{$student.':domain'};
         my $ssec=&Apache::lonnet::usection($sdom,$sname,$cid);          my $section  = $student_data->{$student.':section'};
         my %info=&Apache::lonnet::get('environment',          my $name     = $student_data->{$student.':fullname'};
                                       ['firstname','middlename',          my $status   = $student_data->{$student.':Status'};
                                        'lastname','generation'],          my $id       = $student_data->{$student.':id'};
                                       $sdom, $sname);          next if ($status ne 'Active');
         my ($tmp) = keys(%info);          if ($mode eq 'view') {
         if ($tmp =~ /^(con_lost|error|no_such_host)/i) {              $r->print("<tr>\n    <td>\n        ");
             if ($mode eq 'view') {              if ($linkto eq 'nothing') {
                 $r->print('<tr><td colspan="6"><font color="red">'.                  $r->print($username);
                     'Internal error: unable to get environment '.              } elsif ($linkto eq 'aboutme') {
                         'for '.$sname.' in domain '.$sdom.'</font></td></tr>');                  $r->print(&Apache::loncommon::aboutmewrapper($username,
             } else {                                                               $username,
                 $r->print('"Internal error: unable to get environment for '.                                                               $domain));
                           $sname.' in domain '.$sdom.'"');              } elsif ($linkto eq 'modify') {
                   $r->print('<a href="/adm/dropadd?action=modifystudent'.
                             '&state=selected'.'&sname='.$username.
                             '&sdom='.$domain.'">'.$username."</a>\n");
             }              }
         } else {              $r->print(<<"END");
             if ($mode eq 'view') {  
                 $r->print("<tr>\n    <td>\n        ");  
                 if ($linkto eq 'nothing') {  
                     $r->print($sname);  
                 } elsif ($linkto eq 'aboutme') {  
                     $r->print(&Apache::loncommon::aboutmewrapper($sname,$sname,  
                                                                  $sdom));  
                 } elsif ($linkto eq 'modify') {  
                     $r->print('<a href="/adm/dropadd?action=modifystudent'.  
                               '&state=selected'.'&sname='.$sname.  
                               '&sdom='.$sdom.'">'.$sname."</a>\n");  
                 }  
                 $r->print(<<"END");  
     </td>      </td>
     <td>$sdom</td>      <td>$domain</td>
     <td>$reply{$sname}</td>      <td>$id</td>
     <td>$info{'lastname'}, $info{'firstname'} $info{'middlename'}</td>      <td>$name</td>
     <td>$info{'generation'}</td>      <td>$section</td>
     <td>$ssec</td>  
 </tr>  </tr>
 END  END
             } elsif ($mode eq 'csv') {          } elsif ($mode eq 'csv') {
                 # no need to bother with $linkto              # no need to bother with $linkto
                 my @line = ();              my @line = ();
                 foreach ($sname,$sdom,$reply{$sname},              foreach ($username,$domain,$id,$name,$section) {
                          $info{'lastname'},$info{'firstname'},                  push @line,&Apache::loncommon::csv_translate($_);
                          $info{'middlename'},$info{'generation'},$ssec) {  
                     push @line,&Apache::loncommon::csv_translate($_);  
                 }  
                 my $tmp = $";  
                 $" = '","';  
                 $r->print("\"@line\"\n");  
                 $" = $tmp;  
             }              }
               my $tmp = $";
               $" = '","';
               $r->print("\"@line\"\n");
               $" = $tmp;
         }          }
     }      }
     $r->print('</table><br>') if ($mode eq 'view');      $r->print('</table><br>') if ($mode eq 'view');
Line 1063  sub get_enrollment_data { Line 1019  sub get_enrollment_data {
   
 # =================================================== Show student list to drop  # =================================================== Show student list to drop
 sub show_drop_list {  sub show_drop_list {
     my ($r,%currentlist)=@_;      my ($students,$student_data,$r)=@_;
     my $cid=$ENV{'request.course.id'};      my $cid=$ENV{'request.course.id'};
     $r->print(<<'END');      $r->print(<<'END');
 <input type="hidden" name="action" value="drop" />  <input type="hidden" name="action" value="drop" />
 <input type="hidden" name="state"  value="done" />  <input type="hidden" name="state"  value="done" />
 <script>  <script>
 function checkAll(field)  function checkAll(field) {
 {  
     for (i = 0; i < field.length; i++)      for (i = 0; i < field.length; i++)
         field[i].checked = true ;          field[i].checked = true ;
 }  }
   
 function uncheckAll(field)  function uncheckAll(field) {
 {  
     for (i = 0; i < field.length; i++)      for (i = 0; i < field.length; i++)
         field[i].checked = false ;          field[i].checked = false ;
 }  }
Line 1085  function uncheckAll(field) Line 1039  function uncheckAll(field)
 <input type="hidden" name="phase" value="four">  <input type="hidden" name="phase" value="four">
 <table border=2>  <table border=2>
 <tr><th>&nbsp;</th><th>username</th><th>domain</th>  <tr><th>&nbsp;</th><th>username</th><th>domain</th>
 <th>ID</th><th>student name</th><th>generation</th>      <th>ID</th><th>student name</th><th>section</th></tr>
 <th>section</th></tr>  
 END  END
     foreach (sort keys %currentlist) {      foreach my $student (@$students) {
         my ($sname,$sdom)=split(/\:/,$_);          my $username = $student_data->{$student.':username'};
         my %reply=&Apache::lonnet::idrget($sdom,$sname);          my $domain   = $student_data->{$student.':domain'};
         my $ssec=&Apache::lonnet::usection($sdom,$sname,$cid);          my $section  = $student_data->{$student.':section'};
         my %info=&Apache::lonnet::get('environment',          my $name     = $student_data->{$student.':fullname'};
                                       ['firstname','middlename',          my $status   = $student_data->{$student.':Status'};
                                        'lastname','generation'],          my $id       = $student_data->{$student.':id'};
                                       $sdom, $sname);          next if ($status ne 'Active');
         my ($tmp) = keys(%info);          #
         if ($tmp =~ /^(con_lost|error|no_such_host)/i) {          $r->print(<<"END");
             $r->print('<tr><td colspan="7"><font color="red">'.  
                       'Internal error: unable to get environment '.  
                       'for '.$sname.' in domain '.$sdom.'</font></td></tr>');  
         } else {  
             $r->print(<<"END");  
 <tr>  <tr>
     <td><input type="checkbox" name="droplist" value="$_"></td>      <td><input type="checkbox" name="droplist" value="$student"></td>
     <td>$sname</td>      <td>$username</td>
     <td>$sdom</td>      <td>$domain</td>
     <td>$reply{$sname}</td>      <td>$id</td>
     <td>$info{'lastname'}, $info{'firstname'} $info{'middlename'}</td>      <td>$name</td>
     <td>$info{'generation'}</td>      <td>$section</td>
     <td>$ssec</td>  
 </tr>  </tr>
 END  END
         }  
     }      }
     $r->print('</table><br>');      $r->print('</table><br>');
     $r->print(<<"END");      $r->print(<<"END");
Line 1122  END Line 1068  END
 <input type="button" value="uncheck all" onclick="javascript:uncheckAll(document.studentform.droplist)">   <input type="button" value="uncheck all" onclick="javascript:uncheckAll(document.studentform.droplist)"> 
 <p><input type=submit value="Drop Students"></p>  <p><input type=submit value="Drop Students"></p>
 END  END
       return;
 }  }
   
 #  #
Line 1302  sub upfile_drop_add { Line 1249  sub upfile_drop_add {
         if ($ENV{'form.fullup'} eq 'yes') {          if ($ENV{'form.fullup'} eq 'yes') {
             $r->print('<h3>Dropping Students</h3>');              $r->print('<h3>Dropping Students</h3>');
             #  Get current classlist              #  Get current classlist
             my ($error,%currentlist)=&get_current_classlist              my ($error,%currentlist)=&get_current_classlist($r);
                 ($ENV{'course.'.$cid.'.domain'},  
                  $ENV{'course.'.$cid.'.num'});  
             if (defined($error)) {              if (defined($error)) {
                 $r->print('<pre>ERROR:$error</pre>');                  $r->print('<pre>ERROR:$error</pre>');
             }              }
Line 1470  sub handler { Line 1415  sub handler {
         }          }
     } elsif ($ENV{'form.action'} eq 'drop') {      } elsif ($ENV{'form.action'} eq 'drop') {
         if (! exists($ENV{'form.state'})) {          if (! exists($ENV{'form.state'})) {
             &menu_phase_two_drop($r);              &print_drop_menu($r);
         } elsif ($ENV{'form.state'} eq 'done') {          } elsif ($ENV{'form.state'} eq 'done') {
             &drop_student_list($r);              &drop_student_list($r);
         } else {          } else {

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


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