[LON-CAPA-cvs] cvs: loncom /homework grades.pm
www
lon-capa-cvs-allow@mail.lon-capa.org
Fri, 23 May 2008 22:14:26 -0000
www Fri May 23 18:14:26 2008 EDT
Modified files:
/loncom/homework grades.pm
Log:
Saving my work: specify clicker answers by hand
Index: loncom/homework/grades.pm
diff -u loncom/homework/grades.pm:1.520 loncom/homework/grades.pm:1.521
--- loncom/homework/grades.pm:1.520 Wed May 14 12:36:31 2008
+++ loncom/homework/grades.pm Fri May 23 18:14:25 2008
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# The LON-CAPA Grading handler
#
-# $Id: grades.pm,v 1.520 2008/05/14 16:36:31 www Exp $
+# $Id: grades.pm,v 1.521 2008/05/23 22:14:25 www Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -8226,7 +8226,7 @@
if (!$env{'form.upfiletype'}) { $env{'form.upfiletype'}='iclicker'; }
my %checked;
- foreach my $gradingmechanism ('attendance','personnel','specific') {
+ foreach my $gradingmechanism ('attendance','personnel','specific','given') {
if ($env{'form.gradingmechanism'} eq $gradingmechanism) {
$checked{$gradingmechanism}="checked='checked'";
}
@@ -8237,6 +8237,8 @@
my $attendance=&mt("Award points just for participation");
my $personnel=&mt("Correctness determined from response by course personnel");
my $specific=&mt("Correctness determined from response with clicker ID(s)");
+ my $given=&mt("Correctness determined from given list of answers").' '.
+ '<font size="-2"><tt>('.&mt("Provide comma-separated list. Use '*' for any answer correct, '-' for skip").')</tt></font>';
my $pcorrect=&mt("Percentage points for correct solution");
my $pincorrect=&mt("Percentage points for incorrect solution");
my $selectform=&Apache::loncommon::select_form($env{'form.upfiletype'},'upfiletype',
@@ -8294,6 +8296,9 @@
<br /><label><input type="radio" name="gradingmechanism" value="personnel" $checked{'personnel'} onClick="sanitycheck()" />$personnel</label>
<br /><label><input type="radio" name="gradingmechanism" value="specific" $checked{'specific'} onClick="sanitycheck()" />$specific </label>
<input type="text" name="specificid" value="$env{'form.specificid'}" size="20" />
+<br /><label><input type="radio" name="gradingmechanism" value="given" $checked{'given'} onClick="sanitycheck()" />$given </label>
+<br />
+<input type="text" name="givenanswer" size="50" />
<input type="hidden" name="waschecked" value="$env{'form.gradingmechanism'}" />
<br /><label>$pcorrect: <input type="text" name="pcorrect" size="4" value="$env{'form.pcorrect'}" onChange="sanitycheck()" /></label>
<br /><label>$pincorrect: <input type="text" name="pincorrect" size="4" value="$env{'form.pincorrect'}" onChange="sanitycheck()" /></label>
@@ -8320,6 +8325,16 @@
$result.='<span class="LC_error">'.&mt('You need to specify a clicker ID for the correct answer').'</span>';
return $result.&show_grading_menu_form($symb);
}
+ if (($env{'form.gradingmechanism'} eq 'given') && ($env{'form.givenanswer'}!~/\w/)) {
+ $result.='<span class="LC_error">'.&mt('You need to specify the correct answer').'</span>';
+ return $result.&show_grading_menu_form($symb);
+ }
+ if ($env{'form.gradingmechanism'} eq 'given') {
+ $env{'form.givenanswer'}=~s/^\s*//gs;
+ $env{'form.givenanswer'}=~s/\s*$//gs;
+ $env{'form.givenanswer'}=~s/[^a-zA-Z0-9\.\*\-]+/\,/g;
+ $env{'form.givenanswer'}=uc($env{'form.givenanswer'});
+ }
my %clicker_ids=&gather_clicker_ids();
my %correct_ids;
if ($env{'form.gradingmechanism'} eq 'personnel') {
@@ -8338,6 +8353,8 @@
}
if ($env{'form.gradingmechanism'} eq 'attendance') {
$result.=&mt('Score based on attendance only');
+ } elsif ($env{'form.gradingmechanism'} eq 'given') {
+ $result.=&mt('Score based on [_1]','<tt>'.$env{'form.givenanswer'}.'</tt>');
} else {
my $number=0;
$result.='<p><b>'.&mt('Correctness determined by the following IDs').'</b>';
@@ -8380,6 +8397,7 @@
<input type="hidden" name="probTitle" value="$env{'form.probTitle'}" />
<input type="hidden" name="saveState" value="$env{'form.saveState'}" />
<input type="hidden" name="gradingmechanism" value="$env{'form.gradingmechanism'}" />
+<input type="hidden" name="givenanswer" value="$env{'form.givenanswer'}" />
<input type="hidden" name="pcorrect" value="$env{'form.pcorrect'}" />
<input type="hidden" name="pincorrect" value="$env{'form.pincorrect'}" />
ENDHEADER
@@ -8441,7 +8459,7 @@
}
$result.='<hr />'.
&mt('Found [_1] registered and [_2] unregistered clickers.',$student_count,$unknown_count);
- if ($env{'form.gradingmechanism'} ne 'attendance') {
+ if (($env{'form.gradingmechanism'} ne 'attendance') && ($env{'form.gradingmechanism'} ne 'given')) {
if ($correct_count==0) {
$errormsg.="Found no correct answers answers for grading!";
} elsif ($correct_count>1) {