\n");
# print indentation
for (my $i = 0; $i < $indentLevel - $deltalevel; $i++) {
@@ -1177,9 +1187,10 @@ sub new_handle {
my $curMarkerEnd = "";
# Is this the current resource?
- if ($curRes->src() eq $currenturl) {
+ if ($curRes->src() eq $currenturl && !$displayedHereMarker) {
$curMarkerBegin = '> ';
$curMarkerEnd = ' <';
+ $displayedHereMarker = 1;
}
if ($curRes->is_problem() && $part ne "0" && !$condensed) {
@@ -1218,7 +1229,7 @@ sub new_handle {
}
}
- $r->print(" | $discussionHTML$feedbackHTML | ");
+ $r->print("$discussionHTML$feedbackHTML | ");
# Is this the first displayed part of a multi-part problem
# that has not been condensed, so we should suppress these two
@@ -1231,7 +1242,7 @@ sub new_handle {
my $icon = $statusIconMap{$curRes->status($part)};
my $alt = $iconAltTags{$icon};
if ($icon) {
- $r->print("$linkopen $linkclose | \n");
+ $r->print("$linkopen $linkclose | \n");
} else {
$r->print(" | \n");
}
@@ -1240,7 +1251,7 @@ sub new_handle {
}
# FOURTH COL: Text description
- $r->print("\n");
+ $r->print(" | \n");
if ($curRes->kind() eq "res" &&
$curRes->is_problem() &&
@@ -1329,7 +1340,7 @@ sub getDescription {
return "Open " . timeToHumanString($res->opendate($part));
}
if ($status == $res->OPEN) {
- if ($res->duedate()) {
+ if ($res->duedate($part)) {
return "Due " . timeToHumanString($res->duedate($part));
} else {
return "Open, no due date";
@@ -1351,9 +1362,15 @@ sub getDescription {
return "Not yet graded.";
}
if ($status == $res->TRIES_LEFT) {
- my $tries = $res->tries();
- my $maxtries = $res->maxtries();
- my $triesString = "($tries of $maxtries tries used)";
+ my $tries = $res->tries($part);
+ my $maxtries = $res->maxtries($part);
+ my $triesString = "";
+ if ($tries && $maxtries) {
+ $triesString = "($tries of $maxtries tries used)";
+ if ($maxtries > 1 && $maxtries - $tries == 1) {
+ $triesString = "$triesString";
+ }
+ }
if ($res->duedate()) {
return "Due " . timeToHumanString($res->duedate($part)) .
" $triesString";
@@ -2827,7 +2844,7 @@ sub status {
# If it's WRONG...
if ($completionStatus == INCORRECT || $completionStatus == INCORRECT_BY_OVERRIDE) {
# and there are TRIES LEFT:
- if ($self->tries() < $self->maxtries()) {
+ if ($self->tries($part) < $self->maxtries($part) || !$self->maxtries($part)) {
return TRIES_LEFT;
}
return INCORRECT; # otherwise, return orange; student can't fix this
|