[LON-CAPA-cvs] cvs: loncom /homework grades.pm
albertel
lon-capa-cvs@mail.lon-capa.org
Fri, 20 Sep 2002 23:35:30 -0000
This is a MIME encoded message
--albertel1032564930
Content-Type: text/plain
albertel Fri Sep 20 19:35:30 2002 EDT
Modified files:
/loncom/homework grades.pm
Log:
- handles noexistant classlists well now.
- It says View/Grade when one can View/Grade and View when one can only view (BUG#735)
--albertel1032564930
Content-Type: text/plain
Content-Disposition: attachment; filename="albertel-20020920193530.txt"
Index: loncom/homework/grades.pm
diff -u loncom/homework/grades.pm:1.48 loncom/homework/grades.pm:1.49
--- loncom/homework/grades.pm:1.48 Fri Sep 6 16:59:28 2002
+++ loncom/homework/grades.pm Fri Sep 20 19:35:30 2002
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# The LON-CAPA Grading handler
#
-# $Id: grades.pm,v 1.48 2002/09/06 20:59:28 albertel Exp $
+# $Id: grades.pm,v 1.49 2002/09/20 23:35:30 albertel Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -111,6 +111,10 @@
my %classlist=&Apache::lonnet::dump('classlist',
$ENV{'course.'.$ENV{'request.course.id'}.'.domain'},
$ENV{'course.'.$ENV{'request.course.id'}.'.num'});
+ my ($tmp) = keys(%classlist);
+ # Bail out if we were unable to get the classlist
+ return if ($tmp =~ /^(con_lost|error|no_such_host)/i);
+
# codes to check for fields in the classlist
# should contain end:start:id:section:fullname
for (keys %classlist) {
@@ -297,6 +301,37 @@
# on the problem page.
sub listStudents {
my ($request) = shift;
+
+ my ($symb,$url) = &get_symb_and_url();
+ my $cdom = $ENV{"course.$ENV{'request.course.id'}.domain"};
+ my $cnum = $ENV{"course.$ENV{'request.course.id'}.num"};
+ my $getsec = $ENV{'form.section'} eq '' ? 'all' : $ENV{'form.section'};
+ my $submitonly= $ENV{'form.submitonly'} eq '' ? 'all' : $ENV{'form.submitonly'};
+
+ my $result;
+ my ($partlist,$handgrade) = &response_type($url);
+ for (sort keys(%$handgrade)) {
+ my ($responsetype,$handgrade)=split(/:/,$$handgrade{$_});
+ $ENV{'form.handgrade'} = 'yes' if ($handgrade eq 'yes');
+ $result.='<tr><td><b>Part </b>'.(split(/_/))[0].'</td>'.
+ '<td><b>Type: </b>'.$responsetype.'</td>'.
+ '<td><b>Handgrade: </b>'.$handgrade.'</font></td></tr>';
+ }
+ $result.='</table>';
+
+ my $viewgrade;
+ if ($ENV{'form.handgrade'} eq 'yes') {
+ $viewgrade = 'View/Grade';
+ } else {
+ $viewgrade = 'View';
+ }
+
+ $result='<h3><font color="#339933"> '.
+ $viewgrade.
+ ' Submissions for a Student or a Group of Students</font></h3>'.
+ '<table border="0"><tr><td colspan=3><font size=+1>'.
+ '<b>Resource: </b>'.$url.'</font></td></tr>'.$result;
+
$request->print(<<LISTJAVASCRIPT);
<script type="text/javascript" language="javascript">
function checkSelect(checkBox) {
@@ -316,7 +351,7 @@
sense = "the student";
}
if (ctr == 0) {
- alert("Please select "+sense+" before clicking on the View/Grade button.");
+ alert("Please select "+sense+" before clicking on the $viewgrade button.");
return false;
}
document.gradesub.submit();
@@ -324,26 +359,6 @@
</script>
LISTJAVASCRIPT
- my ($symb,$url) = &get_symb_and_url();
- my $cdom = $ENV{"course.$ENV{'request.course.id'}.domain"};
- my $cnum = $ENV{"course.$ENV{'request.course.id'}.num"};
- my $getsec = $ENV{'form.section'} eq '' ? 'all' : $ENV{'form.section'};
- my $submitonly= $ENV{'form.submitonly'} eq '' ? 'all' : $ENV{'form.submitonly'};
-
- my $result='<h3><font color="#339933"> '.
- 'View/Grade Submissions for a Student or a Group of Students</font></h3>';
- $result.='<table border="0">';
- $result.='<tr><td colspan=3><font size=+1>'.
- '<b>Resource: </b>'.$url.'</font></td></tr>';
- my ($partlist,$handgrade) = &response_type($url);
- for (sort keys(%$handgrade)) {
- my ($responsetype,$handgrade)=split(/:/,$$handgrade{$_});
- $ENV{'form.handgrade'} = 'yes' if ($handgrade eq 'yes');
- $result.='<tr><td><b>Part </b>'.(split(/_/))[0].'</td>'.
- '<td><b>Type: </b>'.$responsetype.'</td>'.
- '<td><b>Handgrade: </b>'.$handgrade.'</font></td></tr>';
- }
- $result.='</table>';
$request->print($result);
my $checkhdgrade = $ENV{'form.handgrade'} eq 'yes' ? 'checked' : '';
@@ -352,9 +367,11 @@
my $gradeTable='<form action="/adm/grades" method="post" name="gradesub">'."\n".
' <b>View Problem: </b><input type="radio" name="vProb" value="no" checked> no '."\n".
'<input type="radio" name="vProb" value="yes"> yes <br />'."\n".
- ' <b>Submissions: </b>'."\n".
- '<input type="radio" name="lastSub" value="hdgrade" '.$checkhdgrade.' /> handgrade only'."\n".
- '<input type="radio" name="lastSub" value="lastonly" '.$checklastsub.' /> last sub only'."\n".
+ ' <b>Submissions: </b>'."\n";
+ if ($ENV{'form.handgrade'} eq 'yes') {
+ $gradeTable.='<input type="radio" name="lastSub" value="hdgrade" '.$checkhdgrade.' /> handgrade only'."\n";
+ }
+ $gradeTable.='<input type="radio" name="lastSub" value="lastonly" '.$checklastsub.' /> last sub only'."\n".
'<input type="radio" name="lastSub" value="last" /> last sub & parts info'."\n".
'<input type="radio" name="lastSub" value="all" /> all details'."\n".
'<input type="hidden" name="section" value="'.$getsec.'" />'."\n".
@@ -364,13 +381,13 @@
'<input type="hidden" name="showgrading" value="'.$ENV{'form.showgrading'}.'" /><br />'."\n".
'<input type="hidden" name="url" value="'.$url.'" />'."\n".
'<input type="hidden" name="symb" value="'.$symb.'" />'."\n".
- 'To view/grade a submission, click on the check box next to the student\'s name. Then '."\n".
- 'click on the View/Grade button. To view the submissions for a group of students, click'."\n".
+ 'To '.lc($viewgrade).' a submission, click on the check box next to the student\'s name. Then '."\n".
+ 'click on the '.$viewgrade.' button. To view the submissions for a group of students, click'."\n".
' on the check boxes for the group of students.<br />'."\n".
'<input type="hidden" name="command" value="processGroup" />'."\n".
'<input type="button" '."\n".
'onClick="javascript:checkSelect(this.form.stuinfo);" '."\n".
- 'value="View/Grade" />'."\n";
+ 'value="'.$viewgrade.'" />'."\n";
my ($classlist,$seclist,$ids,$stusec,$fullname) = &getclasslist($getsec,'0');
@@ -419,7 +436,7 @@
$gradeTable.='</table></td></tr></table>'.
'<input type="button" '.
'onClick="javascript:checkSelect(this.form.stuinfo);" '.
- 'value="View/Grade" /><form />'."\n";
+ 'value="'.$viewgrade.'" /><form />'."\n";
if ($ctr == 0) {
$gradeTable='<br /> <font color="red">'.
'No submission found for this resource.</font><br />';
@@ -2105,8 +2122,10 @@
'<input type="hidden" name="url" value="'.$url.'" />'."\n".
'<input type="hidden" name="command" value="viewgrades" />'."\n";
$result.=' <b>Select section:</b> <select name="section">'."\n";
- foreach (sort (@$sections)) {
- $result.= '<option>'.$_.'</option>'."\n";
+ if (ref($sections)) {
+ foreach (sort (@$sections)) {
+ $result.= '<option>'.$_.'</option>'."\n";
+ }
}
$result.='<option selected="on">all</select>'."<br />\n";
$result.=' <input type="button" onClick="submit();" value="View/Grade" /></form>'."\n";
@@ -2154,7 +2173,13 @@
my ($classlist,$sections) = &getclasslist('all','0');
my $result.='<table width=100% border=0><tr><td bgcolor=#777777>'."\n";
$result.='<table width=100% border=0><tr bgcolor="#e6ffff"><td>'."\n";
- $result.=' <b>View/Grade an Individual Student\'s Submission</b></td></tr>'."\n";
+ $result.=' <b>';
+ if ($handgrade eq 'yes') {
+ $result.="View/Grade ";
+ } else {
+ $result.="View ";
+ }
+ $result.='an Individual Student\'s Submission</b></td></tr>'."\n";
$result.='<tr bgcolor=#ffffe6><td>'."\n";
$result.='<form action="/adm/grades" method="post">'."\n".
'<input type="hidden" name="symb" value="'.$symb.'" />'."\n".
@@ -2165,18 +2190,26 @@
'<input type="hidden" name="command" value="submission" />'."\n";
$result.=' <b>Select section:</b> <select name="section">'."\n";
- foreach (sort (@$sections)) {
- $result.= '<option>'.$_.'</option>'."\n";
+ if (ref($sections)) {
+ foreach (sort (@$sections)) {$result.='<option>'.$_.'</option>'."\n";}
}
$result.= '<option selected="on">all</select>'."\n";
$result.=' <b>Display students who has: </b>'.
'<input type="radio" name="submitonly" value="yes" checked> submitted'.
'<input type="radio" name="submitonly" value="all"> everybody <br />';
- $result.=' (Section "no" implies the students were not assigned a section.)<br />'
- if (grep /no/,@$sections);
-
- $result.='<br /> <input type="button" onClick="submit();" value="View/Grade" />'."\n".
- '</form>'."\n";
+ if (ref($sections)) {
+ $result.=' (Section "no" implies the students were not assigned a section.)<br />'
+ if (grep /no/,@$sections);
+ }
+
+
+ $result.='<br /> <input type="button" onClick="submit();" value="';
+ if ($handgrade eq 'yes') {
+ $result.="View/Grade";
+ } else {
+ $result.="View";
+ }
+ $result.='" />'."\n".'</form>'."\n";
$result.='</td></tr></table>'."\n";
$result.='</td></tr></table>'."\n";
return $result;
--albertel1032564930--