From 9da88844e0e58148d64103457d04627807f3963f Mon Sep 17 00:00:00 2001 From: Colin Kuskie Date: Sat, 15 Oct 2011 13:06:44 -0700 Subject: [PATCH] Make sure that calendar time span flags are always set. Fixes bug #12271. --- docs/changelog/7.x.x.txt | 1 + lib/WebGUI/Asset/Wobject/Calendar.pm | 13 ++++++++----- lib/WebGUI/Help/Asset_Calendar.pm | 6 +++--- t/Asset/Wobject/Calendar.t | 7 +++++-- 4 files changed, 17 insertions(+), 10 deletions(-) diff --git a/docs/changelog/7.x.x.txt b/docs/changelog/7.x.x.txt index 9a318f0da..9c9f96399 100644 --- a/docs/changelog/7.x.x.txt +++ b/docs/changelog/7.x.x.txt @@ -3,6 +3,7 @@ - fixed #12268: Point of sale form missing from cart screen. - fixed #12201: AssetReport - no selects. - fixed #12269: Login / Loginbox with encryptlogin + - fixed #12271: Calendar List View does not always show labels 7.10.23 - fixed #12225: Stock asset, multiple instances on a page diff --git a/lib/WebGUI/Asset/Wobject/Calendar.pm b/lib/WebGUI/Asset/Wobject/Calendar.pm index bc1f1ab08..f9ca644c9 100644 --- a/lib/WebGUI/Asset/Wobject/Calendar.pm +++ b/lib/WebGUI/Asset/Wobject/Calendar.pm @@ -1133,7 +1133,7 @@ sub viewList { ); ### Build the event vars - my $dtLast = $dtStart; # The DateTime of the last event + my $dtLast = WebGUI::DateTime->new(0); # The DateTime of the last event EVENT: for my $event (@events) { next EVENT unless $event && $event->canView(); my ( %eventVar, %eventDate ) @@ -1142,12 +1142,15 @@ sub viewList { # Add the change flags my $dt = $event->getDateTimeStart; if ( $dt->year > $dtLast->year ) { - $eventVar{ new_year } = 1; - } - if ( $dt->month > $dtLast->month ) { + $eventVar{ new_year } = 1; $eventVar{ new_month } = 1; + $eventVar{ new_day } = 1; } - if ( $dt->day > $dtLast->day ) { + elsif ( $dt->month > $dtLast->month ) { + $eventVar{ new_month } = 1; + $eventVar{ new_day } = 1; + } + elsif ( $dt->day > $dtLast->day ) { $eventVar{ new_day } = 1; } diff --git a/lib/WebGUI/Help/Asset_Calendar.pm b/lib/WebGUI/Help/Asset_Calendar.pm index 8282e36fc..f9c59faa8 100644 --- a/lib/WebGUI/Help/Asset_Calendar.pm +++ b/lib/WebGUI/Help/Asset_Calendar.pm @@ -241,15 +241,15 @@ our $HELP = { ], variables => [ { - name => 'newYear', + name => 'new_year', description => 'helpvar newYear', }, { - name => 'newMonth', + name => 'new_month', description => 'helpvar newMonth', }, { - name => 'newDay', + name => 'new_day', description => 'helpvar newDay', }, { diff --git a/t/Asset/Wobject/Calendar.t b/t/Asset/Wobject/Calendar.t index 30bde489f..8987e500c 100644 --- a/t/Asset/Wobject/Calendar.t +++ b/t/Asset/Wobject/Calendar.t @@ -57,8 +57,6 @@ use Data::Dumper; use WebGUI::Asset::Wobject::Calendar; use WebGUI::Asset::Event; -plan tests => 15 + scalar @icalWrapTests; - my $session = WebGUI::Test->session; # Do our work in the import node @@ -571,6 +569,9 @@ cmp_deeply( '... correct set of events in list view' ); +ok(exists $listVars->{events}->[0]->{new_year} && $listVars->{events}->[0]->{new_year}, 'first event has new_year set'); +ok(exists $listVars->{events}->[0]->{new_month} && $listVars->{events}->[0]->{new_month}, 'first event has new_month set'); +ok(exists $listVars->{events}->[0]->{new_day} && $listVars->{events}->[0]->{new_day}, 'first event has new_day set'); ###################################################################### # @@ -606,3 +607,5 @@ cmp_deeply( [], 'but getFeeds still returns a data structure.' ); + +done_testing;