[LON-CAPA-cvs] cvs: loncom /homework grades.pm
albertel
lon-capa-cvs@mail.lon-capa.org
Tue, 21 Oct 2003 21:46:15 -0000
albertel Tue Oct 21 17:46:15 2003 EDT
Modified files:
/loncom/homework grades.pm
Log:
- Fixes BUG#2236, can now just view answers when in mass grading mode
Index: loncom/homework/grades.pm
diff -u loncom/homework/grades.pm:1.143 loncom/homework/grades.pm:1.144
--- loncom/homework/grades.pm:1.143 Wed Oct 8 14:25:18 2003
+++ loncom/homework/grades.pm Tue Oct 21 17:46:15 2003
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# The LON-CAPA Grading handler
#
-# $Id: grades.pm,v 1.143 2003/10/08 18:25:18 albertel Exp $
+# $Id: grades.pm,v 1.144 2003/10/21 21:46:15 albertel Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -507,9 +507,12 @@
my $checkhdgrade = ($ENV{'form.handgrade'} eq 'yes' && scalar(@$partlist) > 1 ) ? 'checked' : '';
my $checklastsub = $checkhdgrade eq '' ? 'checked' : '';
my $gradeTable='<form action="/adm/grades" method="post" name="gradesub">'."\n".
- ' <b>View Problem Text: </b><input type="radio" name="vProb" value="no" checked /> no '."\n".
+ ' <b>View Problem Text: </b><input type="radio" name="vProb" value="no" checked="on" /> no '."\n".
'<input type="radio" name="vProb" value="yes" /> one student '."\n".
'<input type="radio" name="vProb" value="all" /> all students <br />'."\n".
+ ' <b>View Answer: </b><input type="radio" name="vAns" value="no" /> no '."\n".
+ '<input type="radio" name="vAns" value="yes" /> one student '."\n".
+ '<input type="radio" name="vAns" value="all" checked="on" /> all students <br />'."\n".
' <b>Submissions: </b>'."\n";
if ($ENV{'form.handgrade'} eq 'yes' && scalar(@$partlist) > 1) {
$gradeTable.='<input type="radio" name="lastSub" value="hdgrade" '.$checkhdgrade.' /> essay part only'."\n";
@@ -1196,27 +1199,46 @@
}
sub show_problem {
- my ($request,$symb,$uname,$udom,$removeform,$viewon) = @_;
- my $rendered=&Apache::loncommon::get_student_view($symb,$uname,$udom,
- $ENV{'request.course.id'});
+ my ($request,$symb,$uname,$udom,$removeform,$viewon,$mode) = @_;
+ my $rendered;
+ if ($mode eq 'both' or $mode eq 'text') {
+ $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'});
+ my $companswer;
+ if ($mode eq 'both' or $mode eq 'answer') {
+ $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;
+ $companswer=~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%">';
- $result.='<tr><td bgcolor="#e6ffff"><b> View of the problem - '.$ENV{'form.fullname'}.
- '</b></td></tr>' if ($viewon);
- $result.='<tr><td bgcolor="#ffffff">'.$rendered.'<br />';
- $result.='<b>Correct answer:</b><br />'.$companswer;
+ if ($viewon) {
+ $result.='<tr><td bgcolor="#e6ffff"><b> ';
+ if ($mode eq 'both' or $mode eq 'text') {
+ $result.='View of the problem - ';
+ } else {
+ $result.='Correct answer: ';
+ }
+ $result.=$ENV{'form.fullname'}.'</b></td></tr>';
+ }
+ if ($mode eq 'both') {
+ $result.='<tr><td bgcolor="#ffffff">'.$rendered.'<br />';
+ $result.='<b>Correct answer:</b><br />'.$companswer;
+ } elsif ($mode eq 'text') {
+ $result.='<tr><td bgcolor="#ffffff">'.$rendered;
+ } elsif ($mode eq 'answer') {
+ $result.='<tr><td bgcolor="#ffffff">'.$companswer;
+ }
$result.='</td></tr></table>';
$result.='</td></tr></table><br />';
return $result;
@@ -1265,8 +1287,16 @@
# 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' or !$ENV{'form.vProb'}) {
- $request->print(&show_problem($request,$symb,$uname,$udom,0,1));
+ if ($ENV{'form.vProb'} eq 'yes' or $ENV{'form.vAns'} eq 'yes') {
+ my $mode;
+ if ($ENV{'form.vProb'} eq 'yes' && $ENV{'form.vAns'} eq 'yes') {
+ $mode='both';
+ } elsif ($ENV{'form.vProb'} eq 'yes') {
+ $mode='text';
+ } elsif ($ENV{'form.vAns'} eq 'yes') {
+ $mode='answer';
+ }
+ $request->print(&show_problem($request,$symb,$uname,$udom,0,1,$mode));
}
# kwclr is the only variable that is guaranteed to be non blank
@@ -1301,6 +1331,7 @@
'<input type="hidden" name="url" value="'.$url.'" />'."\n".
'<input type="hidden" name="showgrading" value="'.$ENV{'form.showgrading'}.'" />'."\n".
'<input type="hidden" name="vProb" value="'.$ENV{'form.vProb'}.'" />'."\n".
+ '<input type="hidden" name="vAns" value="'.$ENV{'form.vAns'}.'" />'."\n".
'<input type="hidden" name="lastSub" value="'.$ENV{'form.lastSub'}.'" />'."\n".
'<input type="hidden" name="section" value="'.$ENV{'form.section'}.'">'."\n".
'<input type="hidden" name="submitonly" value="'.$ENV{'form.submitonly'}.'">'."\n".
@@ -1351,10 +1382,19 @@
}
}
- if ($ENV{'form.vProb'} eq 'all') {
+ if ($ENV{'form.vProb'} eq 'all' or $ENV{'form.vAns'} eq 'all') {
$request->print('<br /><br /><br />') if ($counter > 0);
- $request->print(&show_problem($request,$symb,$uname,$udom,1,1));
+ my $mode;
+ if ($ENV{'form.vProb'} eq 'all' && $ENV{'form.vAns'} eq 'all') {
+ $mode='both';
+ } elsif ($ENV{'form.vProb'} eq 'all' ) {
+ $mode='text';
+ } elsif ($ENV{'form.vAns'} eq 'all') {
+ $mode='answer';
+ }
+ $request->print(&show_problem($request,$symb,$uname,$udom,1,1,$mode));
}
+
my %record = &Apache::lonnet::restore($symb,$ENV{'request.course.id'},$udom,$uname);
my ($partlist,$handgrade) = &response_type($url,$symb);
@@ -2755,7 +2795,7 @@
$result.='<input type="hidden" name="page" />'."\n".
'<input type="hidden" name="title" />'."\n";
- $result.=' <b>View Problems Text: </b><input type="radio" name="vProb" value="no" checked /> no '."\n".
+ $result.=' <b>View Problems Text: </b><input type="radio" name="vProb" value="no" checked="on" /> no '."\n".
'<input type="radio" name="vProb" value="yes" /> yes '."<br>\n";
$result.=' <b>Submission Details: </b>'.
@@ -2894,8 +2934,9 @@
$studentTable.='<tr bgcolor="#ffffe6"><td align="center" valign="top" >'.$question.
(scalar(@{$parts}) == 1 ? '' : '<br>('.scalar(@{$parts}).' parts)').'</td>';
$studentTable.='<td valign="top">';
- if ($ENV{'form.vProb'} eq 'yes') {
- $studentTable.=&show_problem($request,$symbx,$uname,$udom,1);
+ if ($ENV{'form.vProb'} eq 'yes' ) {
+ $studentTable.=&show_problem($request,$symbx,$uname,$udom,1,
+ undef,'both');
} else {
my $companswer = &Apache::loncommon::get_student_answers($symbx,$uname,$udom,$ENV{'request.course.id'});
$companswer =~ s|<form(.*?)>||g;