[LON-CAPA-cvs] cvs: loncom /homework grades.pm
albertel
lon-capa-cvs@mail.lon-capa.org
Sun, 10 Nov 2002 15:44:38 -0000
albertel Sun Nov 10 10:44:38 2002 EDT
Modified files:
/loncom/homework grades.pm
Log:
- allow viewing of all students problem views
- scoring now works in mozilla
- restore excused status
- when setting a problem to excused clear the solved status
Index: loncom/homework/grades.pm
diff -u loncom/homework/grades.pm:1.57 loncom/homework/grades.pm:1.58
--- loncom/homework/grades.pm:1.57 Thu Oct 17 10:35:34 2002
+++ loncom/homework/grades.pm Sun Nov 10 10:44:38 2002
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# The LON-CAPA Grading handler
#
-# $Id: grades.pm,v 1.57 2002/10/17 14:35:34 matthew Exp $
+# $Id: grades.pm,v 1.58 2002/11/10 15:44:38 albertel Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -339,8 +339,9 @@
my $checklastsub = $ENV{'form.handgrade'} eq 'yes' ? '' : 'checked';
my $gradeTable='<form action="/adm/grades" method="post" name="gradesub">'."\n".
- ' <b>View Problem: </b><input type="radio" name="vProb" value="no" > no '."\n".
- '<input type="radio" name="vProb" value="yes" checked > yes <br />'."\n".
+ ' <b>View Problem: </b><input type="radio" name="vProb" value="no" /> no '."\n".
+ '<input type="radio" name="vProb" value="yes" checked /> one student '."\n".
+ '<input type="radio" name="vProb" value="all" /> all students <br />'."\n".
' <b>Submissions: </b>'."\n";
if ($ENV{'form.handgrade'} eq 'yes') {
$gradeTable.='<input type="radio" name="lastSub" value="hdgrade" '.$checkhdgrade.' /> handgrade only'."\n";
@@ -795,6 +796,32 @@
}
+sub show_problem {
+ my ($request,$symb,$uname,$udom,$removeform) = @_;
+ my $rendered=&Apache::loncommon::get_student_view($symb,$uname,$udom,
+ $ENV{'request.course.id'});
+ if ($removeform) {
+ $rendered=~s|<form(.*?)>||g;
+ $rendered=~s|</form>||g;
+ $rendered=~s|name="submit"|name="would_have_been_submit"|g;
+ }
+ my $companswer=&Apache::loncommon::get_student_answers($symb,$uname,$udom,
+ $ENV{'request.course.id'});
+ if ($removeform) {
+ $companswer=~s|<form(.*?)>||g;
+ $companswer=~s|</form>||g;
+ $rendered=~s|name="submit"|name="would_have_been_submit"|g;
+ }
+ my $result.='<table border="0" width="100%"><tr><td bgcolor="#777777">';
+ $result.='<table border="0" width="100%"><tr><td bgcolor="#e6ffff">';
+ $result.='<b> View of the problem - '.$ENV{'form.fullname'}.
+ '</b></td></tr><tr><td bgcolor="#ffffff">'.$rendered.'<br />';
+ $result.='<b>Correct answer:</b><br />'.$companswer;
+ $result.='</td></tr></table>';
+ $result.='</td></tr></table><br />';
+ $request->print($result);
+}
+
# --------------------------- show submissions of a student, option to grade
sub submission {
my ($request,$counter,$total) = @_;
@@ -809,7 +836,7 @@
my $symb=($ENV{'form.symb'} ne '' ? $ENV{'form.symb'} : (&Apache::lonnet::symbread($url)));
if ($symb eq '') { $request->print("Unable to handle ambiguous references:$url:."); return ''; }
my $last = ($ENV{'form.lastSub'} eq 'last' ? 'last' : '');
- $ENV{'form.vProb'} = $ENV{'form.vProb'} ne '' ? $ENV{'form.vProb'} : 'yes';
+# $ENV{'form.vProb'} = $ENV{'form.vProb'} ne '' ? $ENV{'form.vProb'} : 'yes';
# header info
if ($counter == 0) {
@@ -820,18 +847,7 @@
# option to display problem, only once else it cause problems
# with the form later since the problem has a form.
if ($ENV{'form.vProb'} eq 'yes') {
- my $rendered=&Apache::loncommon::get_student_view($symb,$uname,$udom,
- $ENV{'request.course.id'});
- my $companswer=&Apache::loncommon::get_student_answers($symb,$uname,$udom,
- $ENV{'request.course.id'});
- my $result.='<table border="0" width="100%"><tr><td bgcolor="#777777">';
- $result.='<table border="0" width="100%"><tr><td bgcolor="#e6ffff">';
- $result.='<b> View of the problem - '.$ENV{'form.fullname'}.
- '</b></td></tr><tr><td bgcolor="#ffffff">'.$rendered.'<br />';
- $result.='<b>Correct answer:</b><br />'.$companswer;
- $result.='</td></tr></table>';
- $result.='</td></tr></table><br />';
- $request->print($result);
+ &show_problem($request,$symb,$uname,$udom,0);
}
# kwclr is the only variable that is guaranteed to be non blank
@@ -894,6 +910,11 @@
}
}
+ if ($ENV{'form.vProb'} eq 'all') {
+ $request->print('<br /><br /><br />');
+ &show_problem($request,$symb,$uname,$udom,1);
+ }
+
my %record = &Apache::lonnet::restore($symb,$ENV{'request.course.id'},$udom,$uname);
my ($partlist,$handgrade) = &response_type($url);
@@ -1088,9 +1109,15 @@
'onChange="javascript:clearRadBox(this.form.RADVAL'.$counter.'_'.$partid.
',this.form.GD_BOX'.$counter.'_'.$partid.
',this.form.GD_SEL'.$counter.'_'.$partid.
- ',this.form.stores'.$counter.'_'.$partid.')" />'."\n".
- '<option selected="on"> </option>'.
- '<option>excused</option></select>'."  \n";
+ ',this.form.stores'.$counter.'_'.$partid.')" >'."\n";
+ if ($record{'resource.'.$partid.'.solved'} eq 'excused') {
+ $result.='<option> </option>'.
+ '<option selected="on">excused</option></select>';
+ } else {
+ $result.='<option selected="on"> </option>'.
+ '<option>excused</option></select>';
+ }
+ $result.="  \n";
$result.='<input type="hidden" name="stores'.$counter.'_'.$partid.'" value="0" />';
$result.='</td></tr></table>'."\n";
$request->print($result);
@@ -1349,8 +1376,12 @@
my %newrecord;
foreach (split(/:/,$ENV{'form.partlist'.$newflg})) {
if ($ENV{'form.GD_SEL'.$newflg.'_'.$_} eq 'excused') {
- $newrecord{'resource.'.$_.'.solved'} = 'excused'
- if ($record{'resource.'.$_.'.solved'} ne 'excused');
+ if ($record{'resource.'.$_.'.solved'} ne 'excused') {
+ $newrecord{'resource.'.$_.'.solved'} = 'excused';
+ if (exists($record{'resource.'.$_.'.awarded'})) {
+ $newrecord{'resource.'.$_.'.awarded'} = '';
+ }
+ }
} else {
my $pts = ($ENV{'form.GD_BOX'.$newflg.'_'.$_} ne '' ?
$ENV{'form.GD_BOX'.$newflg.'_'.$_} :