--- loncom/interface/lonprintout.pm 2013/06/04 23:12:09 1.633 +++ loncom/interface/lonprintout.pm 2014/01/20 02:43:41 1.638 @@ -1,7 +1,7 @@ # The LearningOnline Network # Printout # -# $Id: lonprintout.pm,v 1.633 2013/06/04 23:12:09 raeburn Exp $ +# $Id: lonprintout.pm,v 1.638 2014/01/20 02:43:41 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -27,7 +27,6 @@ # package Apache::lonprintout; use strict; -use POSIX; use Apache::Constants qw(:common :http); use Apache::lonxml; use Apache::lonnet; @@ -47,7 +46,6 @@ use File::Basename; use HTTP::Response; use LONCAPA::map(); -use POSIX qw(ctime); use Apache::lonlocal; use Carp; use LONCAPA; @@ -494,7 +492,7 @@ RESOURCE_SELECTOR # # @return ($open, $close) # -# @note If open/close dates are not defined they will be retunred as undef +# @note If open/close dates are not defined they will be returned as undef # @note It is possible for there to be no overlap in which case -1,-1 # will be returned. # @note The algorithm used is to take the latest open date and the earliest end date. @@ -524,7 +522,7 @@ sub compute_open_window { # If no overlap...both are -1 as promised. - if (defined($earliest_close) && defined($latest_open) + if (($earliest_close ne '') && ($latest_open ne '') && ($earliest_close < $latest_open)) { $latest_open = -1; $earliest_close = -1; @@ -572,11 +570,13 @@ sub printable { # # @return (opendate, closedate) # -# @note If open/close dates are not defined they will be retunred as undef +# @note If open/close dates are not defined they will be returned as undef # @note It is possible for there to be no overlap in which case -1,-1 # will be returned. # @note The algorithm used is to take the latest open date and the earliest end date. -# +# For consistency with &printable() in lonnavmaps.pm determination of start +# date for printing checks printstartdate param first, then, if not set, +# opendate param, then, if not set, contentopen param. sub get_print_dates { my $res = shift; @@ -595,7 +595,18 @@ sub get_print_dates { foreach my $part (@parts) { my $partopen = $res->parmval('printstartdate', $part); my $partclose = $res->parmval('printenddate', $part); - + if (!$partopen) { + $partopen = $res->parmval('opendate',$part); + } + if (!$partopen) { + $partopen = $res->parmval('contentopen',$part); + } + if ($partopen) { + push(@open_dates, $partopen); + } + if ($partclose) { + push(@close_dates, $partclose); + } push(@open_dates, $partopen); push(@close_dates, $partclose); } @@ -603,13 +614,6 @@ sub get_print_dates { ($open_date, $close_date) = &compute_open_window(\@open_dates, \@close_dates); - if ($open_date) { - $open_date = POSIX::strftime('%D', localtime($open_date)); - } - if ($close_date) { - $close_date = POSIX::strftime('%D', localtime($close_date)); - } - return ($open_date, $close_date); } @@ -4055,7 +4059,7 @@ sub printHelper { &Apache::lonenc::check_encrypt(&Apache::lonnet::clutter($url)); my $navmap = Apache::lonnavmaps::navmap->new(); my $res = $navmap->getBySymb($symb); - $res_printable = $res->resprintable() | $userCanPrint; #printability in course context + $res_printable = $res->resprintable() || $userCanPrint; #printability in course context ($res_printstartdate, $res_printenddate) = &get_print_dates($res); ($course_open, $course_close) = &course_print_dates($res); ($map_open, $map_close) = &map_print_dates($res); @@ -4135,13 +4139,13 @@ sub printHelper { my $start_new_option; if ($perm{'pav'}) { $start_new_option = - "