When users look for tickets resolved on a certain
date, their query doesn’t match. The date parser is
adding a time (midnight) to their search, so nothing
matches. I corrected this for our site with the
following patch to Search/Listing.
The patch looks for date ‘On’ (a.k.a. =) queries, if
they don’t specify a time, it replaces them with two
queries: one for after 00:00 and another for before
23:59 on the date specified.
Hope this helps others.
(If the patch is in the wrong format, please advise
me.)
— rt-3-0-4/html/Search/Listing.html 2003-07-12
03:24:37.000000000 -0500
+++ L2.html 2003-07-16 09:20:38.000000000 -0500
@@ -98,7 +98,24 @@
$session{‘tickets’}->ClearRestrictions;
}
}
+# If the query is ‘On’ a specific date, but has no
time with it:
+if ($ARGS{DateOp} eq ‘=’ and $ARGS{ValueOfDate} !~
/:/) {
-
# Make a new date only query for After midnight.
-
my %tmp_args;
-
$tmp_args{ValueOfDate} = "$ARGS{ValueOfDate}
00:00";
-
$tmp_args{DateOp} = ">";
-
$tmp_args{DateType} = $ARGS{DateType};
-
ProcessSearchQuery(ARGS=>\%tmp_args);
-
# Now change the actual date restriction to
before midnight.
-
# Then run it with all others.
-
$ARGS{ValueOfDate} = "$ARGS{ValueOfDate}
23:59";
-
$ARGS{DateOp} = "<";
-
ProcessSearchQuery(ARGS=>\%ARGS);
+}
+else { # The query is not ‘On’ a specific date.
ProcessSearchQuery(ARGS=>%ARGS);
+}
$session{‘tickets’}->RedoSearch();
if ( $session{‘tickets’}->DescribeRestrictions())
{
$ticketcount = $session{tickets}->CountAll();
Do you Yahoo!?
SBC Yahoo! DSL - Now only $29.95 per month!
on_date_never_matches.patch (1.06 KB)