flask_table icon indicating copy to clipboard operation
flask_table copied to clipboard

No timezone support for DatetimeCol

Open satwell opened this issue 5 years ago • 0 comments

I have datetime objects in UTC that I'd like to display in a local timezone with flask_table. I was expecting to be able to set BABEL_DEFAULT_TIMEZONE as mentioned in the Flask-Babel docs, but that doesn't have any effect. The underlying problem seems to be that DatetimeCol uses babel.dates.format_datetime rather than flask_babel.format_datetime. So timezone configuration from Flask-Babel isn't used.

It's not completely obvious that just switching to flask_babel.format_datetime is the best fix, because that would break anyone using DatetimeCol without initializing Flask-Babel. Maybe this isn't so bad, since BoolCol already depends on gettext from Flask-Babel?

Or maybe flask_table should automatically fall back to plain Babel if Flask-Babel isn't initialized?

A less invasive option would be to add an optional tzinfo keyword arg to DatetimeCol and pass that through to babel.dates.format_datetime. But this wouldn't be as nice as having proper Flask-Babel integration.

Happy to work on a pull request if you can provide some guidance.

satwell avatar Nov 20 '19 22:11 satwell