--- loncom/interface/lonnavmaps.pm 2010/06/16 23:42:55 1.448
+++ loncom/interface/lonnavmaps.pm 2010/12/02 15:40:02 1.452
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Navigate Maps Handler
#
-# $Id: lonnavmaps.pm,v 1.448 2010/06/16 23:42:55 raeburn Exp $
+# $Id: lonnavmaps.pm,v 1.452 2010/12/02 15:40:02 bisitz Exp $
#
# Copyright Michigan State University Board of Trustees
@@ -528,6 +528,7 @@ my %colormap =
$resObj->OPEN => '',
$resObj->NOTHING_SET => '',
$resObj->ATTEMPTED => '',
+ $resObj->CREDIT_ATTEMPTED => '',
$resObj->ANSWER_SUBMITTED => '',
$resObj->PARTIALLY_CORRECT => '#006600'
);
@@ -677,6 +678,11 @@ sub getDescription {
return &mt("Answer submitted, not yet graded");
}
}
+ if ($status == $res->CREDIT_ATTEMPTED) {
+ if ($res->is_anonsurvey($part) || $res->is_survey($part)) {
+ return &mt("Credit for survey submission");
+ }
+ }
if ($status == $res->TRIES_LEFT) {
my $tries = $res->tries($part);
my $maxtries = $res->maxtries($part);
@@ -1084,9 +1090,10 @@ sub render_long_status {
}
}
- if ($resource->kind() eq "res" &&
+ if (($resource->kind() eq "res" &&
($resource->is_problem() || $resource->is_practice()) &&
- !$firstDisplayed) {
+ !$firstDisplayed) &&
+ $resource->is_raw_problem()) {
if ($color) {$result .= ""; }
$result .= getDescription($resource, $part);
if ($color) {$result .= ""; }
@@ -1401,11 +1408,11 @@ sub render {
my ($link,$text);
if ($condition) {
$link='navmaps?condition=0&filter=&'.$queryString.
- '&here='.&escape($here);
+ '&here='.&escape($here);
$text='Close all folders';
} else {
$link='navmaps?condition=1&filter=&'.$queryString.
- '&here='.&escape($here);
+ '&here='.&escape($here);
$text='Open all folders';
}
if ($env{'form.register'}) {
@@ -1715,7 +1722,7 @@ END
if (defined($anchor)) { $anchor='#'.$anchor; }
my $srcHasQuestion = $src =~ /\?/;
$args->{"resourceLink"} = $src.
- ($srcHasQuestion?'&':'?') .
+ ($srcHasQuestion?'&':'?') .
'symb=' . &escape($symb).$anchor;
}
# Now, we've decided what parts to show. Loop through them and
@@ -1777,12 +1784,11 @@ END
# it's quite likely this might fix other browsers, too, and
# certainly won't hurt anything.
if ($displayedJumpMarker) {
- $result .= "
-";
+");
}
$result.=&Apache::loncommon::end_data_table();
@@ -3460,7 +3466,7 @@ sub navHash {
my $param = shift;
my $id = shift;
my $arg = $param . ($id?$self->{ID}:"");
- if (defined($arg)) {
+ if (ref($self) && ref($self->{NAV_MAP}) && defined($arg)) {
return $self->{NAV_MAP}->navhash($arg);
}
return;
@@ -4636,6 +4642,10 @@ Information not available due to network
Attempted, and not yet graded.
+=item * B:
+
+Attempted, and credit received for attempt (survey and anonymous survey only).
+
=back
=cut
@@ -4647,6 +4657,7 @@ sub CORRECT { return 13; }
sub CORRECT_BY_OVERRIDE { return 14; }
sub EXCUSED { return 15; }
sub ATTEMPTED { return 16; }
+sub CREDIT_ATTEMPTED { return 17; }
sub getCompletionStatus {
my $self = shift;
@@ -4665,6 +4676,13 @@ sub getCompletionStatus {
if ($status eq 'incorrect_by_override') {return $self->INCORRECT_BY_OVERRIDE; }
if ($status eq 'excused') {return $self->EXCUSED; }
if ($status eq 'ungraded_attempted') {return $self->ATTEMPTED; }
+ if ($status eq 'credit_attempted') {
+ if ($self->is_anonsurvey($part) || $self->is_survey($part)) {
+ return $self->CREDIT_ATTEMPTED;
+ } else {
+ return $self->ATTEMPTED;
+ }
+ }
return $self->NOT_ATTEMPTED;
}
@@ -4754,6 +4772,10 @@ The item is open and not yet tried.
The problem has been attempted.
+=item * B:
+
+The problem has been attempted, and credit given for the attempt (survey and anonymous survey only).
+
=item * B:
An answer has been submitted, but the student should not see it.
@@ -4827,6 +4849,10 @@ sub status {
return ATTEMPTED;
}
+ if ($completionStatus == CREDIT_ATTEMPTED) {
+ return CREDIT_ATTEMPTED;
+ }
+
# If it's EXCUSED, then return that no matter what
if ($completionStatus == EXCUSED) {
return EXCUSED;
@@ -5019,6 +5045,7 @@ my %compositeToSimple =
INCORRECT() => INCORRECT,
OPEN() => OPEN,
ATTEMPTED() => ATTEMPTED,
+ CREDIT_ATTEMPTED() => CORRECT,
ANSWER_SUBMITTED() => ATTEMPTED
);
@@ -5093,6 +5120,7 @@ sub completable {
# and it is not "attempted" (manually graded problem), it is
# not "complete"
if ($self->getCompletionStatus($part) == ATTEMPTED() ||
+ $self->getCompletionStatus($part) == CREDIT_ATTEMPTED() ||
$status == ANSWER_SUBMITTED() ) {
# did this part already, as well as we can
next;