Annotation of loncom/interface/lonmanagekeys.pm, revision 1.1
1.1 ! www 1: # The LearningOnline Network with CAPA
! 2: # Handler to manage course access keys
! 3: #
! 4: # $Id: londropadd.pm,v 1.64 2003/02/13 21:35:50 albertel Exp $
! 5: #
! 6: # Copyright Michigan State University Board of Trustees
! 7: #
! 8: # This file is part of the LearningOnline Network with CAPA (LON-CAPA).
! 9: #
! 10: # LON-CAPA is free software; you can redistribute it and/or modify
! 11: # it under the terms of the GNU General Public License as published by
! 12: # the Free Software Foundation; either version 2 of the License, or
! 13: # (at your option) any later version.
! 14: #
! 15: # LON-CAPA is distributed in the hope that it will be useful,
! 16: # but WITHOUT ANY WARRANTY; without even the implied warranty of
! 17: # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
! 18: # GNU General Public License for more details.
! 19: #
! 20: # You should have received a copy of the GNU General Public License
! 21: # along with LON-CAPA; if not, write to the Free Software
! 22: # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
! 23: #
! 24: # /home/httpd/html/adm/gpl.txt
! 25: #
! 26: # http://www.lon-capa.org/
! 27: #
! 28: ###############################################################
! 29: ###############################################################
! 30:
! 31: package Apache::lonmanagekeys;
! 32:
! 33: use strict;
! 34: use Apache::lonnet();
! 35: use Apache::loncommon();
! 36: use Apache::lonhtmlcommon();
! 37: use Apache::Constants qw(:common :http REDIRECT);
! 38: use Spreadsheet::WriteExcel;
! 39:
! 40: ###############################################################
! 41: ###############################################################
! 42: sub header {
! 43: my $bodytag=&Apache::loncommon::bodytag('Access Key Management');
! 44: return(<<ENDHEAD);
! 45: <html>
! 46: <head>
! 47: <title>LON-CAPA Access Key Management</title>
! 48: </head>
! 49: $bodytag
! 50: <form method="post" enctype="multipart/form-data"
! 51: action="/adm/keymanage" name="keyform">
! 52: ENDHEAD
! 53: }
! 54:
! 55: # =================================================== Show student list to drop
! 56: sub show_key_list {
! 57: my ($r,$mode,$linkto,$action,$statusmode,$classlist,$keylist)=@_;
! 58: #
! 59: # Just junk so that this compiles
! 60: #
! 61: my ($username,$domain,$id,$name,$section,$status,@Sorted_Students);
! 62: #
! 63: #
! 64: #
! 65: my $cid=$ENV{'request.course.id'};
! 66: #
! 67: # Variables for excel output
! 68: my ($excel_workbook, $excel_sheet, $excel_filename,$row);
! 69: #
! 70:
! 71: # Print out header
! 72: if ($mode eq 'view') {
! 73: } elsif ($mode eq 'excel') {
! 74: # Create the excel spreadsheet
! 75: $excel_filename = '/prtspool/'.
! 76: $ENV{'user.name'}.'_'.$ENV{'user.domain'}.'_'.
! 77: time.'_'.rand(1000000000).'.xls';
! 78: $excel_workbook = Spreadsheet::WriteExcel->new('/home/httpd'.
! 79: $excel_filename);
! 80: $excel_workbook->set_tempdir('/home/httpd/perl/tmp');
! 81: $excel_sheet = $excel_workbook->addworksheet('classlist');
! 82: #
! 83: my $description = 'Classlist for '.
! 84: $ENV{'course.'.$ENV{'request.course.id'}.'.description'};
! 85: $excel_sheet->write($row++,0,$description);
! 86: #
! 87: $excel_sheet->write($row++,0,["username","domain","ID",
! 88: "student name","section","status"]);
! 89: }
! 90: foreach my $student (@Sorted_Students) {
! 91: if ($mode eq 'view') {
! 92: } elsif ($mode eq 'csv') {
! 93: # no need to bother with $linkto
! 94: my @line = ();
! 95: foreach ($username,$domain,$id,$name,$section) {
! 96: push @line,&Apache::loncommon::csv_translate($_);
! 97: }
! 98: if ($statusmode eq 'Any') {
! 99: push @line,&Apache::loncommon::csv_translate($status);
! 100: }
! 101: my $tmp = $";
! 102: $" = '","';
! 103: $r->print("\"@line\"\n");
! 104: $" = $tmp;
! 105: } elsif ($mode eq 'excel') {
! 106: $excel_sheet->write($row++,0,[$username,$domain,$id,
! 107: $name,$section,$status]);
! 108: }
! 109: }
! 110: if ($mode eq 'view') {
! 111: } elsif ($mode eq 'excel') {
! 112: $excel_workbook->close();
! 113: $r->print('<p><a href="'.$excel_filename.'">'.
! 114: 'Your Excel spreadsheet</a> is ready for download.</p>'."\n");
! 115: }
! 116: }
! 117:
! 118: ###################################################################
! 119: ###################################################################
! 120: sub handler {
! 121: my $r=shift;
! 122: if ($r->header_only) {
! 123: $r->content_type('text/html');
! 124: $r->send_http_header;
! 125: return OK;
! 126: }
! 127: &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},['state']);
! 128:
! 129: unless (&Apache::lonnet::allowed('mky',$ENV{'request.role.domain'})) {
! 130: $ENV{'user.error.msg'}=
! 131: "/adm/managekeys:mky:0:0:Cannot manage access keys";
! 132: return HTTP_NOT_ACCEPTABLE;
! 133: }
! 134: #
! 135: # Only output the header information if they did not request csv format
! 136: #
! 137: if (exists($ENV{'form.state'}) && ($ENV{'form.state'} eq 'csv')) {
! 138: $r->content_type('text/csv');
! 139: } else {
! 140: # Start page
! 141: $r->content_type('text/html');
! 142: $r->send_http_header;
! 143: $r->print(&header());
! 144: }
! 145: #
! 146: # do stuff here.
! 147: #
! 148:
! 149: if (exists($ENV{'form.state'}) && ($ENV{'form.state'} eq 'csv')) {
! 150: $r->print("\n");
! 151: } else {
! 152: $r->print('</form></body></html>');
! 153: }
! 154: return OK;
! 155: }
! 156:
! 157: ###################################################################
! 158: ###################################################################
! 159:
! 160: 1;
! 161: __END__
! 162:
! 163:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>