# HG changeset patch
# Parent e44f51de5a9ef32c96ed814c182eec8b0e54b251
Restore list type lost in previous changeset(s) and add `user_time` for
custom (i18n aware) date/time formatting and parsing available after [10571].
diff --git a/trac/ticket/query.py b/trac/ticket/query.py
|
a
|
b
|
|
| 1067 | 1067 | add_warning(req, error) |
| 1068 | 1068 | |
| 1069 | 1069 | context = web_context(req, 'query') |
| 1070 | | owner_field = query.fields.by_name('owner', None) |
| | 1070 | owner_field = [query.fields.by_name('owner', None)] |
| 1071 | 1071 | if owner_field: |
| 1072 | 1072 | TicketSystem(self.env).eventually_restrict_owner(owner_field[0]) |
| 1073 | 1073 | data = query.template_data(context, tickets, orig_list, orig_time, req) |
diff --git a/trac/ticket/web_ui.py b/trac/ticket/web_ui.py
|
a
|
b
|
|
| 37 | 37 | from trac.ticket.notification import TicketNotifyEmail |
| 38 | 38 | from trac.timeline.api import ITimelineEventProvider |
| 39 | 39 | from trac.util import as_bool, as_int, get_reporter_id |
| 40 | | from trac.util.datefmt import format_datetime, format_date, format_datetime, from_utimestamp, \ |
| 41 | | get_date_format_hint, get_datetime_format_hint, \ |
| 42 | | pretty_timedelta, parse_date, to_utimestamp, utc |
| | 40 | from trac.util.datefmt import format_datetime, format_date, format_datetime, \ |
| | 41 | from_utimestamp, get_date_format_hint, \ |
| | 42 | get_datetime_format_hint, pretty_timedelta, \ |
| | 43 | parse_date, to_utimestamp, user_time, utc |
| 43 | 44 | from trac.util.text import exception_to_unicode, obfuscate_email_address, \ |
| 44 | 45 | shorten_line, to_unicode |
| 45 | 46 | from trac.util.presentation import separated |
| … |
… |
|
| 705 | 706 | fields.pop('checkbox_' + each, None) # See Ticket.populate() |
| 706 | 707 | for field, value in fields.iteritems(): |
| 707 | 708 | if field in ticket.time_fields: |
| 708 | | fields[field] = parse_date(value, req.tz, 'datetime') \ |
| | 709 | fields[field] = user_time(req, parse_date, value) \ |
| 709 | 710 | if value else None |
| 710 | 711 | ticket.populate(fields) |
| 711 | 712 | # special case for updating the Cc: field |
| … |
… |
|
| 1684 | 1685 | if format == 'age' and relative: |
| 1685 | 1686 | return pretty_timedelta(value) if value else '' |
| 1686 | 1687 | elif format == 'date': |
| 1687 | | return format_date(value, '%Y-%m-%d', tzinfo=req.tz) \ |
| 1688 | | if value else '' |
| | 1688 | return user_time(req, format_date, value) if value else '' |
| 1689 | 1689 | else: |
| 1690 | | return format_datetime(value, '%Y-%m-%d %H:%M:%S', tzinfo=req.tz) \ |
| 1691 | | if value else '' |
| | 1690 | return user_time(req, format_datetime, value) if value else '' |
| 1692 | 1691 | |
| 1693 | 1692 | def grouped_changelog_entries(self, ticket, db=None, when=None): |
| 1694 | 1693 | """Iterate on changelog entries, consolidating related changes |