version 1.459, 2011/05/18 11:26:44
|
version 1.464, 2011/09/22 12:48:40
|
Line 509 my %statusIconMap =
|
Line 509 my %statusIconMap =
|
my %iconAltTags = #texthash does not work here |
my %iconAltTags = #texthash does not work here |
( 'navmap.correct.gif' => 'Correct', |
( 'navmap.correct.gif' => 'Correct', |
'navmap.wrong.gif' => 'Incorrect', |
'navmap.wrong.gif' => 'Incorrect', |
'navmap.open.gif' => 'Open', |
'navmap.open.gif' => 'Is Open', |
'navmap.partial.gif' => 'Partially Correct', |
'navmap.partial.gif' => 'Partially Correct', |
'navmap.ellipsis.gif' => 'Attempted', |
'navmap.ellipsis.gif' => 'Attempted', |
); |
); |
Line 612 sub getDescription {
|
Line 612 sub getDescription {
|
return &Apache::lonhtmlcommon::direct_parm_link(&mt("Not currently assigned.",$res->symb(),'opendate'),$part); |
return &Apache::lonhtmlcommon::direct_parm_link(&mt("Not currently assigned.",$res->symb(),'opendate'),$part); |
} |
} |
if ($status == $res->OPEN_LATER) { |
if ($status == $res->OPEN_LATER) { |
return &mt("Open ") .&Apache::lonhtmlcommon::direct_parm_link(&timeToHumanString($open,'start'),$res->symb(),'opendate',$part); |
return &mt("Open [_1]",&Apache::lonhtmlcommon::direct_parm_link(&timeToHumanString($open,'start')),$res->symb(),'opendate',$part); |
} |
} |
if ($res->simpleStatus($part) == $res->OPEN) { |
if ($res->simpleStatus($part) == $res->OPEN) { |
unless (&Apache::lonnet::allowed('mgr',$env{'request.course.id'})) { |
unless (&Apache::lonnet::allowed('mgr',$env{'request.course.id'})) { |
Line 646 sub getDescription {
|
Line 646 sub getDescription {
|
if ($status == $res->OPEN) { |
if ($status == $res->OPEN) { |
if ($due) { |
if ($due) { |
if ($res->is_practice()) { |
if ($res->is_practice()) { |
return &mt("Closes ")." " .&Apache::lonhtmlcommon::direct_parm_link(&timeToHumanString($due,'start'),$res->symb(),'duedate',$part); |
return &mt("Closes [_1]",&Apache::lonhtmlcommon::direct_parm_link(&timeToHumanString($due,'start')),$res->symb(),'duedate',$part); |
} else { |
} else { |
return &mt("Due")." " .&Apache::lonhtmlcommon::direct_parm_link(&timeToHumanString($due,'end'),$res->symb(),'duedate',$part); |
return &mt("Due [_1]",&Apache::lonhtmlcommon::direct_parm_link(&timeToHumanString($due,'end')),$res->symb(),'duedate',$part); |
} |
} |
} else { |
} else { |
return &Apache::lonhtmlcommon::direct_parm_link(&mt("Open, no due date"),$res->symb(),'duedate',$part); |
return &Apache::lonhtmlcommon::direct_parm_link(&mt("Open, no due date"),$res->symb(),'duedate',$part); |
} |
} |
} |
} |
if ($status == $res->PAST_DUE_ANSWER_LATER) { |
if ($status == $res->PAST_DUE_ANSWER_LATER) { |
return &mt("Answer open")." " .&Apache::lonhtmlcommon::direct_parm_link(&timeToHumanString($answer,'start'),$res->symb(),'answerdate',$part); |
return &mt("Answer open [_1]",&Apache::lonhtmlcommon::direct_parm_link(&timeToHumanString($answer,'start')),$res->symb(),'answerdate',$part); |
} |
} |
if ($status == $res->PAST_DUE_NO_ANSWER) { |
if ($status == $res->PAST_DUE_NO_ANSWER) { |
if ($res->is_practice()) { |
if ($res->is_practice()) { |
return &mt("Closed")." " . &Apache::lonhtmlcommon::direct_parm_link(&timeToHumanString($due,'start'),$res->symb(),'answerdate,duedate',$part); |
return &mt("Closed [_1]",&Apache::lonhtmlcommon::direct_parm_link(&timeToHumanString($due,'start')),$res->symb(),'answerdate,duedate',$part); |
} else { |
} else { |
return &mt("Was due")." " .&Apache::lonhtmlcommon::direct_parm_link(&timeToHumanString($due,'end'),$res->symb(),'answerdate,duedate',$part); |
return &mt("Was due [_1]",&Apache::lonhtmlcommon::direct_parm_link(&timeToHumanString($due,'end')),$res->symb(),'answerdate,duedate',$part); |
} |
} |
} |
} |
if (($status == $res->ANSWER_OPEN || $status == $res->PARTIALLY_CORRECT) |
if (($status == $res->ANSWER_OPEN || $status == $res->PARTIALLY_CORRECT) |
Line 694 sub getDescription {
|
Line 694 sub getDescription {
|
} |
} |
} |
} |
if ($due) { |
if ($due) { |
return &mt("Due")." " . &Apache::lonhtmlcommon::direct_parm_link(&timeToHumanString($due,'end'),$res->symb(),'duedate',$part) . |
return &mt("Due [_1]",&Apache::lonhtmlcommon::direct_parm_link(&timeToHumanString($due,'end')),$res->symb(),'duedate',$part) . |
" $triesString"; |
" $triesString"; |
} else { |
} else { |
return &Apache::lonhtmlcommon::direct_parm_link(&mt("No due date"),$res->symb(),'duedate',$part)." $triesString"; |
return &Apache::lonhtmlcommon::direct_parm_link(&mt("No due date"),$res->symb(),'duedate',$part)." $triesString"; |
Line 779 sub timeToHumanString {
|
Line 779 sub timeToHumanString {
|
|
|
# Less than an hour |
# Less than an hour |
if ( $delta < $hour ) { |
if ( $delta < $hour ) { |
# If so, use minutes |
# If so, use minutes; or minutes, seconds (if format requires) |
my $minutes = floor($delta / 60); |
my $minutes = floor($delta / 60); |
|
if (($format ne '') && ($format =~ /\%(T|S)/)) { |
|
my $display; |
|
if ($minutes == 1) { |
|
$display = "${prefix}1 minute"; |
|
} else { |
|
$display = "$prefix$minutes minutes"; |
|
} |
|
my $seconds = $delta % $minute; |
|
if ($seconds == 0) { |
|
$display .= $tense; |
|
} elsif ($seconds == 1) { |
|
$display .= ", 1 second$tense"; |
|
} else { |
|
$display .= ", $seconds seconds$tense"; |
|
} |
|
return $display; |
|
} |
if ($minutes == 1) { return "${prefix}1 minute$tense"; } |
if ($minutes == 1) { return "${prefix}1 minute$tense"; } |
return "$prefix$minutes minutes$tense"; |
return "$prefix$minutes minutes$tense"; |
} |
} |
|
|
# Is it less than 24 hours away? If so, |
# Is it less than 24 hours away? If so, |
# display hours + minutes |
# display hours + minutes, (and + seconds, if format specified it) |
if ( $delta < $hour * 24) { |
if ( $delta < $hour * 24) { |
my $hours = floor($delta / $hour); |
my $hours = floor($delta / $hour); |
my $minutes = floor(($delta % $hour) / $minute); |
my $minutes = floor(($delta % $hour) / $minute); |
Line 801 sub timeToHumanString {
|
Line 818 sub timeToHumanString {
|
if ($minutes == 0) { |
if ($minutes == 0) { |
$minuteString = ""; |
$minuteString = ""; |
} |
} |
|
if (($format ne '') && ($format =~ /\%(T|S)/)) { |
|
my $display = "$prefix$hourString$minuteString"; |
|
my $seconds = $delta-(($hours * $hour)+($minutes * $minute)); |
|
if ($seconds == 0) { |
|
$display .= $tense; |
|
} elsif ($seconds == 1) { |
|
$display .= ", 1 second$tense"; |
|
} else { |
|
$display .= ", $seconds seconds$tense"; |
|
} |
|
return $display; |
|
} |
return "$prefix$hourString$minuteString$tense"; |
return "$prefix$hourString$minuteString$tense"; |
} |
} |
|
|
|
# Date/time is more than 24 hours away |
|
|
my $dt = DateTime->from_epoch(epoch => $time) |
my $dt = DateTime->from_epoch(epoch => $time) |
->set_time_zone(&Apache::lonlocal::gettimezone()); |
->set_time_zone(&Apache::lonlocal::gettimezone()); |
|
|
# If there's a caller supplied format, use it. |
# If there's a caller supplied format, use it, unless it only displays |
|
# H:M:S or H:M. |
|
|
if ($format ne '') { |
if (($format ne '') && ($format ne '%T') && ($format ne '%R')) { |
my $timeStr = $dt->strftime($format); |
my $timeStr = $dt->strftime($format); |
return $timeStr.' ('.$dt->time_zone_short_name().')'; |
return $timeStr.' ('.$dt->time_zone_short_name().')'; |
} |
} |
Line 1090 sub render_long_status {
|
Line 1122 sub render_long_status {
|
} |
} |
} |
} |
|
|
if (($resource->kind() eq "res" && |
if ($resource->kind() eq "res" && |
($resource->is_problem() || $resource->is_practice()) && |
$resource->is_raw_problem() && |
!$firstDisplayed) && |
!$firstDisplayed) { |
$resource->is_raw_problem()) { |
|
if ($color) {$result .= "<font color=\"$color\"><b>"; } |
if ($color) {$result .= "<font color=\"$color\"><b>"; } |
$result .= getDescription($resource, $part); |
$result .= getDescription($resource, $part); |
if ($color) {$result .= "</b></font>"; } |
if ($color) {$result .= "</b></font>"; } |
Line 2414 sub parmval {
|
Line 2445 sub parmval {
|
} |
} |
} |
} |
my $result = $self->parmval_real($what, $symb, $recurse); |
my $result = $self->parmval_real($what, $symb, $recurse); |
my $dumper = Data::Dumper->new([$result]); |
|
$self->{PARM_CACHE}->{$hashkey} = $result; |
$self->{PARM_CACHE}->{$hashkey} = $result; |
if (wantarray) { |
if (wantarray) { |
return @{$result}; |
return @{$result}; |
Line 3994 Get the weight for the problem.
|
Line 4024 Get the weight for the problem.
|
|
|
sub printable { |
sub printable { |
|
|
&Apache::lonnet::logthis("Printable"); |
|
my ($self, $part) = @_; |
my ($self, $part) = @_; |
|
|
# Get the print open/close dates for the resource. |
# Get the print open/close dates for the resource. |
|
|
my $start = $self->parmval("printopendate", $part); |
my $start = $self->parmval("prinstartdate", $part); |
my $end = $self->parmval("printclosedate", $part); |
my $end = $self->parmval("printenddate", $part); |
my $dumper = Data::Dumper->new([$self, $part, $start, $end]); |
|
&Apache::lonnet::logthis("Start for " . $dumper->Dump); |
|
|
|
# The following cases apply: |
# The following cases apply: |
# - No dates set: Printable. |
# - No dates set: Printable. |
Line 4015 sub printable {
|
Line 4042 sub printable {
|
my $startok = 1; |
my $startok = 1; |
my $endok = 1; |
my $endok = 1; |
|
|
if ($start ne '') { |
if ((defined $start) && ($start ne '')) { |
$startok = $start <= $now; |
$startok = $start <= $now; |
} |
} |
if ($end ne '') { |
if ((defined $end) && ($end != '')) { |
$endok = $end >= $now; |
$endok = $end >= $now; |
} |
} |
return $startok && $endok; |
return $startok && $endok; |
Line 4029 sub resprintable {
|
Line 4056 sub resprintable {
|
|
|
# get parts...or realize there are no parts. |
# get parts...or realize there are no parts. |
|
|
my $parts = $self->parts(); |
my $partsref = $self->parts(); |
if ($parts == 0) { |
my @parts = @$partsref; |
|
|
|
if ((!defined(@parts)) || (scalar(@parts) == 0)) { |
return $self->printable(0); |
return $self->printable(0); |
} else { |
} else { |
foreach my $part (@$parts) { |
foreach my $part (@parts) { |
if (!$self->printable($part)) { return 0; } |
if (!$self->printable($part)) { |
|
return 0; |
|
} |
} |
} |
return 1; |
return 1; |
} |
} |