[LON-CAPA-cvs] cvs: loncom /homework radiobuttonresponse.pm
raeburn
raeburn@source.lon-capa.org
Sun, 28 Feb 2010 23:42:24 -0000
raeburn Sun Feb 28 23:42:24 2010 EDT
Modified files:
/loncom/homework radiobuttonresponse.pm
Log:
- New awards for surveys:
ANONYMOUS ANONYMOUS_CREDIT SUBMITTED_CREDIT
- given for question types: anonsurvey, anonsurvey_cred, survey_cred.
- anonsurvey -- course personnel can not view both identity of submitter
and submission details.
- anonsurveycred -- same anonymity, but submitter receives 'awarded' for
submission
- surveycred - submitter receives 'awarded' for submission to survey.
- Do not display submission details on grading screens for anonymous surveys.
Index: loncom/homework/radiobuttonresponse.pm
diff -u loncom/homework/radiobuttonresponse.pm:1.143 loncom/homework/radiobuttonresponse.pm:1.144
--- loncom/homework/radiobuttonresponse.pm:1.143 Sat May 23 05:04:58 2009
+++ loncom/homework/radiobuttonresponse.pm Sun Feb 28 23:42:24 2010
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# mutliple choice style responses
#
-# $Id: radiobuttonresponse.pm,v 1.143 2009/05/23 05:04:58 onken Exp $
+# $Id: radiobuttonresponse.pm,v 1.144 2010/02/28 23:42:24 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -146,6 +146,7 @@
}
sub storesurvey {
+ my ($style) = @_;
if ( !&Apache::response::submitted() ) { return ''; }
my $response = $env{'form.HWVAL_'.$Apache::inputtags::response['-1']};
&Apache::lonxml::debug("Here I am!:$response:");
@@ -159,7 +160,16 @@
$Apache::lonhomework::results{"resource.$part.$id.submission"}=
$responsestr;
my %previous=&Apache::response::check_for_previous($responsestr,$part,$id);
- my $ad=$Apache::lonhomework::results{"resource.$part.$id.awarddetail"}='SUBMITTED';
+ my $ad;
+ if ($style eq 'anonsurvey') {
+ $ad=$Apache::lonhomework::results{"resource.$part.$id.awarddetail"}='ANONYMOUS';
+ } elsif ($style eq 'anonsurveycred') {
+ $ad=$Apache::lonhomework::results{"resource.$part.$id.awarddetail"}='ANONYMOUS_CRED';
+ } elsif ($style eq 'surveycred') {
+ $ad=$Apache::lonhomework::results{"resource.$part.$id.awarddetail"}='SUBMITTED_CREDIT';
+ } else {
+ $ad=$Apache::lonhomework::results{"resource.$part.$id.awarddetail"}='SUBMITTED';
+ }
&Apache::response::handle_previous(\%previous,$ad);
&Apache::lonxml::debug("submitted a $response<br />\n");
return '';
@@ -224,13 +234,15 @@
my $style = $Apache::lonhomework::type;
my $direction = &Apache::lonxml::get_param('direction',$parstack,
$safeeval,'-2');
- if ( $style eq 'survey' && $target ne 'analyze') {
+ if ( (($style eq 'survey') || ($style eq 'surveycred') ||
+ ($style eq 'anonsurvey') || ($style eq 'anonsurveycred'))
+ && ($target ne 'analyze')) {
if ($target eq 'web' || $target eq 'tex') {
$result=&displayallfoils($direction, $target);
} elsif ( $target eq 'answer' ) {
$result=&displayallanswers();
} elsif ( $target eq 'grade' ) {
- $result=&storesurvey();
+ $result=&storesurvey($style);
}
$answer_count = scalar(@{$Apache::response::foilgroup{'names'}});
@@ -321,8 +333,11 @@
my $i =0;
my $id=$Apache::inputtags::response['-1'];
my $part=$Apache::inputtags::part;
- my $lastresponse=
- $Apache::lonhomework::history{"resource.$part.$id.submission"};
+ my $lastresponse;
+ unless ((($Apache::lonhomework::history{"resource.$part.type"} eq 'anonsurvey') || ($Apache::lonhomework::history{"resource.$part.type"} eq 'anonsurveycred')) && (defined($env{'form.grade_symb'}))) {
+ $lastresponse =
+ $Apache::lonhomework::history{"resource.$part.$id.submission"};
+ }
if ($direction eq 'horizontal') { $result.='<table><tr>'; }
my %lastresponse=&Apache::lonnet::str2hash($lastresponse);
if (&Apache::response::show_answer() ) {
@@ -439,7 +454,11 @@
&Apache::lonxml::error(&HTML::Entities::encode("No valid value assigned ($Apache::response::foilgroup{$name.'.value'}) for foil $name in <foilgroup>",'<>&"'));
}
}
- if (!$havetrue && $Apache::lonhomework::type ne 'survey') {
+ if ((!$havetrue) &&
+ ($Apache::lonhomework::type ne 'survey') &&
+ ($Apache::lonhomework::type ne 'surveycred') &&
+ ($Apache::lonhomework::type ne 'anonsurvey') &&
+ ($Apache::lonhomework::type ne 'anonsurveycred')) {
&Apache::lonxml::error(&mt('There are no true statements available.').'<br />');
}
} else {
@@ -499,7 +518,11 @@
&Apache::lonxml::debug("Answer wants $answer");
my $truename=$truelist[$whichtrue];
my $dosplice=1;
- if ($notrue && $Apache::lonhomework::type ne 'survey') {
+ if (($notrue) &&
+ ($Apache::lonhomework::type ne 'survey') &&
+ ($Apache::lonhomework::type ne 'surveycred') &&
+ ($Apache::lonhomework::type ne 'anonsurvey') &&
+ ($Apache::lonhomework::type ne 'anonsurveycred')) {
$dosplice=0;
&Apache::lonxml::error(&mt('There are no true statements available.').'<br />');
}