Opened 6 years ago

Closed 6 years ago

Last modified 6 years ago

#17831 closed Bug (duplicate)

Admin's date list filter's "This month/year" and "Today" are incorrect when USE_TZ is set (with the postgres backend).

Reported by: Glenn Washburn <development@…> Owned by: nobody
Component: contrib.admin Version: 1.4-beta-1
Severity: Release blocker Keywords:
Cc: Triage Stage: Unreviewed
Has patch: no Needs documentation: no
Needs tests: no Patch needs improvement: no
Easy pickings: no UI/UX: no

Description (last modified by Julien Phalip)

This may be applicable to other backends, but I'm not sure.

When using USE_TZ the backend connection is set to use UTC. So __year/__month/__day lookup filters will filter where the UTC timestamp has a year/month/day of the lookup value. However, what's really desired is to use the timestamp at the current timezone. For example, the current code when filtering for "today" datetimes which are not in UTC can potentially return a list of matching records where the set of days being displayed is more than one.

Change History (4)

comment:1 Changed 6 years ago by Julien Phalip

Description: modified (diff)
Severity: NormalRelease blocker

I haven't been able to review this fully but this seems like a potential release blocker.

comment:2 Changed 6 years ago by Anssi Kääriäinen

This is related to #17260, if not duplicate. Fixing this generally is going to be probably somewhat hard. I have one idea, though: you could manually add/subtract the offset from the datetime when doing the filtering. It is not perfect (DST not taken into account correctly). But it might be easy enough to do for 1.4.

comment:3 Changed 6 years ago by Aymeric Augustin

Resolution: duplicate
Status: newclosed

Indeed, this has the same root cause as #17260, which is a known limitation of the current implementation of time zone support.

Until now, #17260 didn't include "date_filter on a DateTimeField" in the list of problems; I've added it.

comment:4 Changed 6 years ago by Aymeric Augustin

In fact, the patch I prepared for #17830 fixes this too.

Note: See TracTickets for help on using tickets.
Back to Top