--- loncom/homework/grades.pm 2001/08/06 16:37:58 1.12 +++ loncom/homework/grades.pm 2002/07/25 21:25:38 1.41 @@ -1,14 +1,37 @@ -# The LON-CAPA grading handler. +# The LearningOnline Network with CAPA +# The LON-CAPA Grading handler # -# Handles the viewing of grades. +# $Id: grades.pm,v 1.41 2002/07/25 21:25:38 ng Exp $ # -# YEAR=2001 -# 2/7,2/9,2/13,4/16,4/17,5/1 Guy Albertelli +# Copyright Michigan State University Board of Trustees +# +# This file is part of the LearningOnline Network with CAPA (LON-CAPA). +# +# LON-CAPA is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# LON-CAPA is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with LON-CAPA; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# /home/httpd/html/adm/gpl.txt +# +# http://www.lon-capa.org/ +# +# 2/9,2/13 Guy Albertelli # 6/8 Gerd Kortemeyer -# 7/26 Guy Albertelli -# 7/27 H.K. Ng -# 7/30 Guy Albertelli -# 8/6 Scott Harrison +# 7/26 H.K. Ng +# 8/20 Gerd Kortemeyer +# Year 2002 +# June, July 2002 H.K. Ng +# package Apache::grades; use strict; @@ -17,82 +40,239 @@ use Apache::lonxml; use Apache::lonnet; use Apache::loncommon; use Apache::lonhomework; +use Apache::lonmsg qw(:user_normal_msg); use Apache::Constants qw(:common); +#use Time::HiRes qw( gettimeofday tv_interval ); -# ======================================================== Get more information sub moreinfo { my ($request,$reason) = @_; $request->print("Unable to process request: $reason"); if ( $Apache::grades::viewgrades eq 'F' ) { $request->print('
'); } return ''; } -# ========================================= Displays the class list of students +sub verifyreceipt { + my $request=shift; + my $courseid=$ENV{'request.course.id'}; +# my $cdom=$ENV{"course.$courseid.domain"}; +# my $cnum=$ENV{"course.$courseid.num"}; + my $receipt=unpack("%32C*",$Apache::lonnet::perlvar{'lonHostID'}).'-'. + $ENV{'form.receipt'}; + $receipt=~s/[^\-\d]//g; + my $symb=$ENV{'form.symb'}; + unless ($symb) { + $symb=&Apache::lonnet::symbread($ENV{'form.url'}); + } + if ((&Apache::lonnet::allowed('mgr',$courseid)) && ($symb)) { + $request->print(''.$matches." match%s
",$matches <= 1 ? '' : 'es'); +# needs to print who is matched + } + return ''; +} + +sub student_gradeStatus { + my ($url,$udom,$uname,$partlist) = @_; + my $symb=($ENV{'form.symb'} ne '' ? $ENV{'form.symb'} : (&Apache::lonnet::symbread($url))); + my %record= &Apache::lonnet::restore($symb,$ENV{'request.course.id'},$udom,$uname); + my %partstatus = (); + foreach (@$partlist) { + my ($status,$foo)=split(/_/,$record{"resource.$_.solved"},2); + $status = 'nothing' if ($status eq ''); + $partstatus{$_} = $status; + $partstatus{"resource.$_.submitted_by"} = $record{"resource.$_.submitted_by"} + if ($record{"resource.$_.submitted_by"} ne ''); + } + return %partstatus; +} + +sub get_fullname { + my ($uname,$udom) = @_; + my %name=&Apache::lonnet::get('environment', ['lastname','generation', + 'firstname','middlename'],$udom,$uname); + my $fullname; + my ($tmp) = keys(%name); + if ($tmp !~ /^(con_lost|error|no_such_host)/i) { + $fullname=$name{'lastname'}.$name{'generation'}; + if ($fullname =~ /[^\s]+/) { $fullname.=', '; } + $fullname.=$name{'firstname'}.' '.$name{'middlename'}; + } + return $fullname; +} + +sub response_type { + my ($url) = shift; + my $allkeys = &Apache::lonnet::metadata($url,'keys'); +# print "allkeys=>$allkeysResource: '.$ENV{'form.url'}.' | ||
Part id: '.$_.' | '. + 'Type: '.$responsetype.' | '. + 'Handgrade: '.$handgrade.' |
'.
+ '
|
Key | Value |
'.$_.' | '.$$hash{$_}.' |
';
+ $result.='
|
Part '.$partid.' Points | ';
+
+ my $ctr = 0;
+ $result.='
| or | '; + $result.=''."\n"; + $result.=' | /'.$wgt.' '.$wgtmsg.' | '; + + $result.=''."\n". + ''. + ''."  \n"; + $result.=''; + $result.=' |
'; + my $ntstu =''."\n"; + my $nsel = ($ENV{'form.NTSTU'} ne '' ? $ENV{'form.NTSTU'} : '1'); + $ntstu =~ s/ |
Resource: '.$url.' | ||
Part id: '.$_.' | '. + 'Type: '.$responsetype.' | '. + 'Handgrade: '.$handgrade.' |
'."\n";
+ $result.='
|
'.$_.' | '.$classlist{$_}.' |
'."\n";
+ $result.='
|
'."\n";
+ $result.='
|
'."\n";
+ $result.='
|
'."\n";
+ $result.='
|
Resource: '.$ENV{'form.url'}. + ' | ||
Part id: '.$partid.' | '. + 'Type: '.$responsetype.' | '. + 'Handgrade: '.$handgrade.' |