From 5a34daa6eea2feeae6a07fe37bf727f0e446098b Mon Sep 17 00:00:00 2001 From: Akira Sawada Date: Tue, 12 Apr 2011 18:24:40 +0900 Subject: [PATCH] Some options of date based filter should search by day unit. bugzid:106013. --- lib/MT/Entry.pm | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/lib/MT/Entry.pm b/lib/MT/Entry.pm index ea3ddb73d3..529c6864b3 100644 --- a/lib/MT/Entry.pm +++ b/lib/MT/Entry.pm @@ -552,11 +552,20 @@ sub list_props { my $blog = MT->app ? MT->app->blog : undef; require MT::Util; my $now = MT::Util::epoch2ts( $blog, time() ); + my $from = $args->{from} || undef; + my $to = $args->{to} || undef; + my $origin = $args->{origin} || undef; + $from =~ s/\D//g; + $to =~ s/\D//g; + $origin =~ s/\D//g; + $from .= '000000' if $from; + $to .= '235959' if $to; + if ( 'range' eq $option ) { $query = [ '-and', - { op => '>', value => $args->{from} }, - { op => '<', value => $args->{to} }, + { op => '>', value => $from }, + { op => '<', value => $to }, ]; } elsif ( 'days' eq $option ) { @@ -570,10 +579,10 @@ sub list_props { ]; } elsif ( 'before' eq $option ) { - $query = { op => '<', value => $args->{origin} }; + $query = { op => '<', value => $origin . '000000' }; } elsif ( 'after' eq $option ) { - $query = { op => '>', value => $args->{origin} }; + $query = { op => '>', value => $origin . '235959' }; } elsif ( 'future' eq $option ) { $query = { op => '>', value => $now };