Diff for /loncom/interface/Attic/londropadd.pm between versions 1.59 and 1.60

version 1.59, 2002/10/16 18:45:10 version 1.60, 2002/11/08 20:51:48
Line 41  use Apache::lonnet(); Line 41  use Apache::lonnet();
 use Apache::loncommon();  use Apache::loncommon();
 use Apache::lonhtmlcommon();  use Apache::lonhtmlcommon();
 use Apache::Constants qw(:common :http REDIRECT);  use Apache::Constants qw(:common :http REDIRECT);
   use Spreadsheet::WriteExcel;
   
 ###############################################################  ###############################################################
 ###############################################################  ###############################################################
Line 771  END Line 772  END
         $r->print(<<END);          $r->print(<<END);
 <font size="+1">  <font size="+1">
 <a href="javascript:document.studentform.state.value='csv';document.studentform.submit();">CSV format</a>  <a href="javascript:document.studentform.state.value='csv';document.studentform.submit();">CSV format</a>
   <a href="javascript:document.studentform.state.value='excel';document.studentform.submit();">Excel format</a>
 </font>  </font>
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 END  END
Line 793  END Line 795  END
 }  }
   
 # ============================================== view classlist  # ============================================== view classlist
 sub print_csv_classlist {  sub print_formatted_classlist {
     my $r=shift;      my $r=shift;
       my $mode = shift;
     my $cid=$ENV{'request.course.id'};      my $cid=$ENV{'request.course.id'};
     my ($classlist,$keylist)=&Apache::loncoursedata::get_classlist();      my ($classlist,$keylist)=&Apache::loncoursedata::get_classlist();
     if (! defined($classlist)) {      if (! defined($classlist)) {
         $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','csv',          &show_class_list($r,$mode,'nolink','csv',
                          $ENV{'form.Status'},$classlist,$keylist);                           $ENV{'form.Status'},$classlist,$keylist);
     }      }
 }  }
Line 809  sub print_csv_classlist { Line 812  sub print_csv_classlist {
 sub show_class_list {  sub show_class_list {
     my ($r,$mode,$linkto,$action,$statusmode,$classlist,$keylist)=@_;      my ($r,$mode,$linkto,$action,$statusmode,$classlist,$keylist)=@_;
     my $cid=$ENV{'request.course.id'};      my $cid=$ENV{'request.course.id'};
 #    &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},      #
 #                                            ['sortby']);      # Variables for excel output
       my ($excel_workbook, $excel_sheet, $excel_filename,$row);
       #
     my $sortby = $ENV{'form.sortby'};      my $sortby = $ENV{'form.sortby'};
     if ($sortby !~ /^(username|domain|section|fullname|id)$/) {      if ($sortby !~ /^(username|domain|section|fullname|id)$/) {
         $sortby = 'username';          $sortby = 'username';
Line 853  END Line 858  END
             $r->print('"'.join('","',("username","domain","ID","student name",              $r->print('"'.join('","',("username","domain","ID","student name",
                                       "section")).'"'."\n");                                        "section")).'"'."\n");
         }          }
       } elsif ($mode eq 'excel') {
           # Create the excel spreadsheet
           $excel_filename = '/prtspool/'.
               $ENV{'user.name'}.'_'.$ENV{'user.domain'}.'_'.
                   time.'_'.rand(1000000000).'.xls';
           $excel_workbook = Spreadsheet::WriteExcel->new('/home/httpd'.
                                                          $excel_filename);
           $excel_workbook->set_tempdir('/home/httpd/perl/tmp');
           $excel_sheet = $excel_workbook->addworksheet('classlist');
           #
           my $description = 'Classlist for '.
               $ENV{'course.'.$ENV{'request.course.id'}.'.description'};
           $excel_sheet->write($row++,0,$description);
           #
           $excel_sheet->write($row++,0,["username","domain","ID",
                                         "student name","section","status"]);
     }      }
     #      #
     # Sort the students      # Sort the students
Line 917  END Line 938  END
             $" = '","';              $" = '","';
             $r->print("\"@line\"\n");              $r->print("\"@line\"\n");
             $" = $tmp;              $" = $tmp;
           } elsif ($mode eq 'excel') {
               $excel_sheet->write($row++,0,[$username,$domain,$id,
                                             $name,$section,$status]);
         }          }
     }      }
     $r->print('</table><br>') if ($mode eq 'view');      if ($mode eq 'view') {
           $r->print('</table><br>');
       } elsif ($mode eq 'excel') {
           $excel_workbook->close();
           $r->print('<p><a href="'.$excel_filename.'">'.
                     'Your Excel spreadsheet</a> is ready for download.</p>'."\n");
       }
 }  }
   
   
Line 1638  sub handler { Line 1668  sub handler {
         if (! exists($ENV{'form.state'})) {          if (! exists($ENV{'form.state'})) {
             &print_html_classlist($r);              &print_html_classlist($r);
         } elsif ($ENV{'form.state'} eq 'csv') {          } elsif ($ENV{'form.state'} eq 'csv') {
             &print_csv_classlist($r);              &print_formatted_classlist($r,'csv');
           } elsif ($ENV{'form.state'} eq 'excel') {
               &print_formatted_classlist($r,'excel');
         } else {          } else {
             &print_html_classlist($r);              &print_html_classlist($r);
         }          }

Removed from v.1.59  
changed lines
  Added in v.1.60


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