Diff for /loncom/interface/Attic/londropadd.pm between versions 1.52 and 1.53

version 1.52, 2002/09/24 18:24:43 version 1.53, 2002/09/25 16:16:19
Line 773  END Line 773  END
     } 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','any',$student_array,$student_data);              &show_class_list($r,'view','modify','modifystudent',
                                'any',$student_array,$student_data);
         } else {          } else {
             &show_class_list($r,'view','aboutme','any',$student_array,$student_data);              &show_class_list($r,'view','aboutme','classlist',
                                'any',$student_array,$student_data);
         }          }
     }      }
 }  }
Line 794  sub print_csv_classlist { Line 796  sub print_csv_classlist {
   
 # =================================================== Show student list to drop  # =================================================== Show student list to drop
 sub show_class_list {  sub show_class_list {
     my ($r,$mode,$linkto,$statusmode,$students,$student_data)=@_;      my ($r,$mode,$linkto,$action,$statusmode,$students,$s_data)=@_;
     my $cid=$ENV{'request.course.id'};      my $cid=$ENV{'request.course.id'};
       &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},
                                               ['sortby']);
       my $sortby = $ENV{'form.sortby'};
       if ($sortby !~ /^(username|domain|section|fullname|id)$/) {
           $sortby = 'username';
       }
     # Print out header       # Print out header 
     if ($mode eq 'view') {      if ($mode eq 'view') {
         if ($linkto eq 'aboutme') {          if ($linkto eq 'aboutme') {
Line 804  sub show_class_list { Line 812  sub show_class_list {
             $r->print('Select a user name to modify the students information');              $r->print('Select a user name to modify the students information');
         }          }
         $r->print(<<END);          $r->print(<<END);
   <input type="hidden" name="sortby" value="$sortby" />
 <p>  <p>
 <table border=2>  <table border=2>
 <tr><th>username</th><th>domain</th><th>ID</th>  <tr><th>
     <th>student name</th><th>section</th></tr>         <a href="/adm/dropadd?action=$action&sortby=username">username</a>
       </th><th>
          <a href="/adm/dropadd?action=$action&sortby=domain">domain</a>
       </th><th>
          <a href="/adm/dropadd?action=$action&sortby=id">ID</a>
       </th><th>
          <a href="/adm/dropadd?action=$action&sortby=fullname">student name</a>
       </th><th>
          <a href="/adm/dropadd?action=$action&sortby=section">section</a>
       </th>
   </tr>
 END  END
     } elsif ($mode eq 'csv') {      } elsif ($mode eq 'csv') {
         $r->print('"'.join('","',("username","domain","ID","student name",          $r->print('"'.join('","',("username","domain","ID","student name",
                                   "section")).'"'."\n");                                    "section")).'"'."\n");
     }      }
     foreach my $student (@$students) {      my @Sorted_Students = sort {
               lc($s_data->{$a.':'.$sortby})  cmp lc($s_data->{$b.':'.$sortby})
                   ||
               lc($s_data->{$a.':username'}) cmp lc($s_data->{$b.':username'})
                   ||
               lc($s_data->{$a.':domain'})   cmp lc($s_data->{$b.':domain'})
           } @$students;
       foreach my $student (@Sorted_Students) {
         my $error;          my $error;
         if (exists($student_data->{$student.':error'})) {          if (exists($s_data->{$student.':error'})) {
             $error = $student_data->{$student.':error'};              $error = $s_data->{$student.':error'};
         }          }
         if ($error) {          if ($error) {
             $r->print('<tr><td colspan="6">'.              $r->print('<tr><td colspan="6">'.
Line 826  END Line 852  END
                       ', '.$error.'</td></tr>'."\n");                        ', '.$error.'</td></tr>'."\n");
             next;              next;
         }          }
         my $username = $student_data->{$student.':username'};          my $username = $s_data->{$student.':username'};
         my $domain   = $student_data->{$student.':domain'};          my $domain   = $s_data->{$student.':domain'};
         my $section  = $student_data->{$student.':section'};          my $section  = $s_data->{$student.':section'};
         my $name     = $student_data->{$student.':fullname'};          my $name     = $s_data->{$student.':fullname'};
         my $status   = $student_data->{$student.':Status'};          my $status   = $s_data->{$student.':Status'};
         my $id       = $student_data->{$student.':id'};          my $id       = $s_data->{$student.':id'};
         next if (($statusmode ne 'any') && ($status ne $statusmode));          next if (($statusmode ne 'any') && ($status ne $statusmode));
         if ($mode eq 'view') {          if ($mode eq 'view') {
             $r->print("<tr>\n    <td>\n        ");              $r->print("<tr>\n    <td>\n        ");
Line 844  END Line 870  END
             } elsif ($linkto eq 'modify') {              } elsif ($linkto eq 'modify') {
                 $r->print('<a href="/adm/dropadd?action=modifystudent'.                  $r->print('<a href="/adm/dropadd?action=modifystudent'.
                           '&state=selected'.'&sname='.$username.                            '&state=selected'.'&sname='.$username.
                           '&sdom='.$domain.'">'.$username."</a>\n");                            '&sdom='.$domain.'&sortby='.$sortby.'">'.
                             $username."</a>\n");
             }              }
             $r->print(<<"END");              $r->print(<<"END");
     </td>      </td>
Line 876  END Line 903  END
 sub print_modify_student_form {  sub print_modify_student_form {
     my $r = shift();      my $r = shift();
     &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},      &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},
                                             ['sdom','sname']);                                              ['sdom','sname','sortby']);    
           my $sname  = $ENV{'form.sname'};
     my $sname = $ENV{'form.sname'};      my $sdom   = $ENV{'form.sdom'};
     my $sdom  = $ENV{'form.sdom'};      my $sortby = $ENV{'form.sortby'};
     # determine the students name information      # determine the students name information
     my %info=&Apache::lonnet::get('environment',      my %info=&Apache::lonnet::get('environment',
                                   ['firstname','middlename',                                    ['firstname','middlename',
Line 914  Only domain coordinators can change a us Line 941  Only domain coordinators can change a us
 <input type="hidden" name="slogin"  value="$sname"  />  <input type="hidden" name="slogin"  value="$sname"  />
 <input type="hidden" name="sdomain" value="$sdom" />  <input type="hidden" name="sdomain" value="$sdom" />
 <input type="hidden" name="action"  value="modifystudent" />  <input type="hidden" name="action"  value="modifystudent" />
 <input type="hidden" name="state"  value="done" />  <input type="hidden" name="state"   value="done" />
   <input type="hidden" name="sortby"  value="$sortby" />
 <h2>Modify Enrollment for $info{'firstname'} $info{'middlename'}   <h2>Modify Enrollment for $info{'firstname'} $info{'middlename'} 
 $info{'lastname'} $info{'generation'}, $sname\@$sdom</h2>  $info{'lastname'} $info{'generation'}, $sname\@$sdom</h2>
 <p>  <p>
Line 930  $info{'lastname'} $info{'generation'}, $ Line 958  $info{'lastname'} $info{'generation'}, $
 </p><p>  </p><p>
 <b>Student ID</b>: <input type="text" name="id" value="$info{'id'}" size="12"/>  <b>Student ID</b>: <input type="text" name="id" value="$info{'id'}" size="12"/>
 </p><p>  </p><p>
   <input type="checkbox" name="forceid" > 
   Disable ID/Student Number Safeguard and Force Change of Conflicting IDs
   (only do if you know what you are doing)
   </p><p>
 <b>Section</b>: <input type="text" name="section" value="$section" size="4"/>  <b>Section</b>: <input type="text" name="section" value="$section" size="4"/>
 </p><p>  </p><p>
 <table>  <table>
Line 948  END Line 980  END
 #  #
 sub modify_single_student {  sub modify_single_student {
     my $r = shift;      my $r = shift;
     # make sure user can modify student data?      # Get the 'sortby' variable so the user does not need to re-sort
       my $sortby = $ENV{'form.sortby'};
       #
       # We always need this information
       my $slogin     = $ENV{'form.slogin'};
       my $sdom       = $ENV{'form.sdomain'};
       #
       # Get the old data
       my %old=&Apache::lonnet::get('environment',
                                    ['firstname','middlename',
                                     'lastname','generation','id'],
                                    $sdom, $slogin);
       my ($tmp) = keys(%old);
       if ($tmp =~ /^(con_lost|error|no_such_host)/i) {
           $r->print("There was an error determining the environment values ".
                     " for $slogin \@ $sdom.");
           return;
       }
       undef $tmp;
       #
       # Get the new data
     my $firstname  = $ENV{'form.firstname'};      my $firstname  = $ENV{'form.firstname'};
     my $middlename = $ENV{'form.middlename'};      my $middlename = $ENV{'form.middlename'};
     my $lastname   = $ENV{'form.lastname'};      my $lastname   = $ENV{'form.lastname'};
     my $generation = $ENV{'form.generation'};      my $generation = $ENV{'form.generation'};
     my $section    = $ENV{'form.section'};      my $section    = $ENV{'form.section'};
     my $courseid   = $ENV{'request.course.id'};      my $courseid   = $ENV{'request.course.id'};
     my $sname      = $ENV{'form.slogin'};  
     my $sdom       = $ENV{'form.sdomain'};  
     my $sid        = $ENV{'form.id'};      my $sid        = $ENV{'form.id'};
     my $starttime = &Apache::lonhtmlcommon::get_date_from_form('startdate',      my $starttime = &Apache::lonhtmlcommon::get_date_from_form('startdate',
                                                                time);                                                                 time);
Line 964  sub modify_single_student { Line 1014  sub modify_single_student {
                                                                time);                                                                 time);
     my $displayable_starttime = localtime($starttime);      my $displayable_starttime = localtime($starttime);
     my $displayable_endtime   = localtime($endtime);      my $displayable_endtime   = localtime($endtime);
       # 
       # check for forceid override
       if (($sid ne $old{'id'}) && (! exists($ENV{'form.forceid'}))) {
           $r->print("<font color=\"ff0000\">You changed the students id ".
                     " but did not disable the ID change safeguard.".
                     "  The students id will not be changed.</font>");
           $sid = $old{'id'};
       }
       #
     # talk to the user about what we are going to do      # talk to the user about what we are going to do
     $r->print(<<END);      $r->print(<<END);
 <h2>Modifying data for user $sname \@ $sdom </h2>      <h2>Modifying data for user $slogin \@ $sdom </h2>
 <h3>Student Information</h3>  <h3>Student Information</h3>
 <table>  <table rules="rows" border="1" cellpadding="3" >
 <tr><td>First name  </td><td> $firstname  </td></tr>  <tr>
 <tr><td>Middle name </td><td> $middlename </td></tr>      <th> Field </th>
 <tr><td>Last name   </td><td> $lastname   </td></tr>      <th> Old Value </th>
 <tr><td>Generation  </td><td> $generation </td></tr>      <th> New Value </th>
   </tr>
   <tr>
       <td> <b>First name</b> </td>
       <td> $old{'firstname'} </td>
       <td> $firstname </td>
   </tr><tr>
       <td> <b>Middle name</b> </td>
       <td> $old{'middlename'} </td>
       <td> $middlename </td>
   </tr><tr>
       <td> <b>Last name</b> </td>
       <td> $old{'lastname'} </td>
       <td> $lastname </td>
   </tr><tr>
       <td> <b>Generation</b> </td>
       <td> $old{'generation'} </td>
       <td> $generation </td>
   </tr><tr>
       <td> <b>ID</b> </td>
       <td> $old{'id'} </td>
       <td> $sid </td>
   </tr>
 </table>  </table>
 <h3>Role Information</h3>  <h3>Role Information</h3>
 <table>  <table>
Line 982  sub modify_single_student { Line 1063  sub modify_single_student {
 </table>  </table>
 <p>  <p>
 END  END
       #
     # Send request(s) to modify data      # Send request(s) to modify data
     #   The '1' in the call to modifystudent is to force the students   
     #   id to be changed.  
     my $roleresults = &Apache::lonnet::modifystudent      my $roleresults = &Apache::lonnet::modifystudent
         ($sdom,$sname,$sid,undef,undef,$firstname,$middlename,$lastname,          ($sdom,$slogin,$sid,undef,undef,$firstname,$middlename,$lastname,
          $generation,$section,$endtime,$starttime,1);           $generation,$section,$endtime,$starttime,$ENV{'form.forceid'});
     if ($roleresults =~/refused/) {      if ($roleresults eq 'refused' ) {
         $r->print("Your request to change the role information for this ".          $r->print("Your request to change the role information for this ".
                   "student was refused.");                    "student was refused.  You do not appear to have ".
                     "sufficient authority to change student information.");
     } elsif ($roleresults !~ /ok/) {      } elsif ($roleresults !~ /ok/) {
         $r->print("An error occurred during the attempt to change the role".          $r->print("An error occurred during the attempt to change the role".
                   " information for this student.  <br />".                    " information for this student.  <br />".
                   "The error reported was ".                    "The error reported was ".
                   $roleresults);                    $roleresults);
           &Apache::lonnet::logthis("londropadd:failed attempt to modify student".
                                    " data for ".$slogin." \@ ".$sdom." by ".
                                    $ENV{'user.name'}." \@ ".$ENV{'user.domain'}.
                                    ":".$roleresults);
     } else { # everything is okay!      } else { # everything is okay!
         $r->print("Student information updated successfully. <br />".          $r->print("Student information updated successfully. <br />".
                   "The student must log out and log in again to see ".                    "The student must log out and log in again to see ".
Line 1003  END Line 1088  END
     }      }
     $r->print(<<END);      $r->print(<<END);
 </p><p>  </p><p>
 <a href="/adm/dropadd?action=modifystudent">Modify another students data</a>  <a href="/adm/dropadd?action=modifystudent&sortby=$sortby">Modify another students data</a>
 </body></html>  </body></html>
 END  END
     return;      return;
Line 1044  sub get_enrollment_data { Line 1129  sub get_enrollment_data {
   
 # =================================================== Show student list to drop  # =================================================== Show student list to drop
 sub show_drop_list {  sub show_drop_list {
     my ($students,$student_data,$r)=@_;      my ($students,$s_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" />
Line 1068  function uncheckAll(field) { Line 1153  function uncheckAll(field) {
 END  END
     foreach my $student (@$students) {      foreach my $student (@$students) {
         my $error;          my $error;
         if (exists($student_data->{$student.':error'})) {          if (exists($s_data->{$student.':error'})) {
             $error = $student_data->{$student.':error'};              $error = $s_data->{$student.':error'};
         }          }
         if ($error) {          if ($error) {
             $r->print('<tr><td colspan="6">'.              $r->print('<tr><td colspan="6">'.
Line 1079  END Line 1164  END
                       ', '.$error.'</td></tr>'."\n");                        ', '.$error.'</td></tr>'."\n");
             next;              next;
         }          }
         my $username = $student_data->{$student.':username'};          my $username = $s_data->{$student.':username'};
         my $domain   = $student_data->{$student.':domain'};          my $domain   = $s_data->{$student.':domain'};
         my $section  = $student_data->{$student.':section'};          my $section  = $s_data->{$student.':section'};
         my $name     = $student_data->{$student.':fullname'};          my $name     = $s_data->{$student.':fullname'};
         my $status   = $student_data->{$student.':Status'};          my $status   = $s_data->{$student.':Status'};
         my $id       = $student_data->{$student.':id'};          my $id       = $s_data->{$student.':id'};
         next if ($status ne 'Active');          next if ($status ne 'Active');
         #          #
         $r->print(<<"END");          $r->print(<<"END");

Removed from v.1.52  
changed lines
  Added in v.1.53


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