Edgewall Software

Ticket #2182: trac-patch-2182.diff

File trac-patch-2182.diff, 14.6 kB (added by trac-ja@…, 3 years ago)

The patch resolves this problem.

  • trac/attachment.py

     
    200200        'author': util.escape(attachment.author), 
    201201        'ipnr': attachment.ipnr, 
    202202        'size': util.pretty_size(attachment.size), 
    203         'time': util.format_datetime(attachment.time), 
     203        'time': util.format_datetime(attachment.time, env.config.get('i18n', 'datetime_format')), 
    204204        'href': attachment.href() 
    205205    } 
    206206    return hdf 
  • trac/db_default.py

     
    434434  ('timeline', 'ticket_show_details', 'false'), 
    435435  ('browser', 'hide_properties', 'svk:merge'), 
    436436  ('wiki', 'ignore_missing_pages', 'false'), 
     437  ('i18n', 'date_format', '%x'), 
     438  ('i18n', 'time_format', '%X'), 
     439  ('i18n', 'datetime_format', '%x %X'), 
    437440) 
    438441 
    439442default_components = ('trac.About', 'trac.attachment',  
  • trac/ticket/web_ui.py

     
    389389        req.hdf['ticket.description.formatted'] = wiki_to_html(ticket['description'], 
    390390                                                               self.env, req, db) 
    391391 
    392         req.hdf['ticket.opened'] = util.format_datetime(ticket.time_created) 
     392        req.hdf['ticket.opened'] = util.format_datetime(ticket.time_created, self.env.config.get('i18n', 'datetime_format')) 
    393393        req.hdf['ticket.opened_delta'] = util.pretty_timedelta(ticket.time_created) 
    394394        if ticket.time_changed != ticket.time_created: 
    395             req.hdf['ticket.lastmod'] = util.format_datetime(ticket.time_changed) 
     395            req.hdf['ticket.lastmod'] = util.format_datetime(ticket.time_changed, self.env.config.get('i18n', 'datetime_format')) 
    396396            req.hdf['ticket.lastmod_delta'] = util.pretty_timedelta(ticket.time_changed) 
    397397 
    398398        changelog = ticket.get_changelog(db=db) 
     
    402402        for date, author, field, old, new in changelog: 
    403403            if date != curr_date or author != curr_author: 
    404404                changes.append({ 
    405                     'date': util.format_datetime(date), 
     405                    'date': util.format_datetime(date, self.env.config.get('i18n', 'datetime_format')), 
    406406                    'author': util.escape(author), 
    407407                    'fields': {} 
    408408                }) 
  • trac/ticket/report.py

     
    351351                elif column == 'report': 
    352352                    value['report_href'] = self.env.href.report(cell) 
    353353                elif column in ['time', 'date','changetime', 'created', 'modified']: 
    354                     value['date'] = util.format_date(cell) 
    355                     value['time'] = util.format_time(cell) 
    356                     value['datetime'] = util.format_datetime(cell) 
     354                    value['date'] = util.format_date(cell, self.env.config.get('i18n', 'date_format')) 
     355                    value['time'] = util.format_time(cell, self.env.config.get('i18n', 'time_format')) 
     356                    value['datetime'] = util.format_datetime(cell, self.env.config.get('i18n', 'datetime_format')) 
    357357                    value['gmt'] = util.http_date(cell) 
    358358                prefix = 'report.items.%d.%s' % (row_idx, str(column)) 
    359359                req.hdf[prefix] = util.escape(str(cell)) 
  • trac/ticket/roadmap.py

     
    9494        hdf['description'] = wiki_to_html(milestone.description, env, req, db) 
    9595    if milestone.due: 
    9696        hdf['due'] = milestone.due 
    97         hdf['due_date'] = format_date(milestone.due) 
     97        hdf['due_date'] = format_date(milestone.due, env.config.get('i18n', 'date_format')) 
    9898        hdf['due_delta'] = pretty_timedelta(milestone.due) 
    9999        hdf['late'] = milestone.is_late 
    100100    if milestone.completed: 
    101101        hdf['completed'] = milestone.completed 
    102         hdf['completed_date'] = format_datetime(milestone.completed) 
     102        hdf['completed_date'] = format_datetime(milestone.completed, env.config.get('i18n', 'datetime_format')) 
    103103        hdf['completed_delta'] = pretty_timedelta(milestone.completed) 
    104104    return hdf 
    105105 
     
    388388 
    389389        due = req.args.get('duedate', '') 
    390390        try: 
    391             milestone.due = due and parse_date(due) or 0 
     391            milestone.due = due and parse_date(due, self.env.config.get('i18n', 'date_format')) or 0 
    392392        except ValueError, e: 
    393393            raise TracError(e, 'Invalid Date Format') 
    394394        if req.args.has_key('completed'): 
    395395            completed = req.args.get('completeddate', '') 
    396396            try: 
    397                 milestone.completed = completed and parse_date(completed) or 0 
     397                milestone.completed = completed and parse_date(completed, self.env.config.get('i18n', 'datetime_format')) or 0 
    398398            except ValueError, e: 
    399399                raise TracError(e, 'Invalid Date Format') 
    400400            if milestone.completed > time(): 
     
    438438 
    439439        from trac.util import get_date_format_hint, get_datetime_format_hint 
    440440        req.hdf['milestone'] = milestone_to_hdf(self.env, db, req, milestone) 
    441         req.hdf['milestone.date_hint'] = get_date_format_hint() 
    442         req.hdf['milestone.datetime_hint'] = get_datetime_format_hint() 
    443         req.hdf['milestone.datetime_now'] = format_datetime() 
     441        req.hdf['milestone.date_hint'] = get_date_format_hint(self.env.config.get('i18n', 'date_format')) 
     442        req.hdf['milestone.datetime_hint'] = get_datetime_format_hint(self.env.config.get('i18n', 'datetime_format')) 
     443        req.hdf['milestone.datetime_now'] = format_datetime(None, self.env.config.get('i18n', 'datetime_format')) 
    444444 
    445445    def _render_view(self, req, db, milestone): 
    446446        req.hdf['title'] = 'Milestone %s' % milestone.name 
  • trac/ticket/query.py

     
    534534                    ticket['changed'] = True 
    535535            for field, value in ticket.items(): 
    536536                if field == 'time': 
    537                     ticket[field] = escape(format_datetime(value)) 
     537                    ticket[field] = escape(format_datetime(value, self.env.config.get('i18n', 'datetime_format'))) 
    538538                elif field == 'description': 
    539539                    ticket[field] = wiki_to_html(value or '', self.env, req, db) 
    540540                else: 
  • trac/versioncontrol/web_ui/util.py

     
    4545            message = '--' 
    4646        changes[rev] = { 
    4747            'date_seconds': changeset.date, 
    48             'date': format_datetime(changeset.date), 
     48            'date': format_datetime(changeset.date, env.config.get('i18n', 'datetime_format')), 
    4949            'age': pretty_timedelta(changeset.date), 
    5050            'author': changeset.author or 'anonymous', 
    5151            'message': message, 
  • trac/versioncontrol/web_ui/changeset.py

     
    153153        req.hdf['title'] = '[%s]' % chgset.rev 
    154154        req.hdf['changeset'] = { 
    155155            'revision': chgset.rev, 
    156             'time': util.format_datetime(chgset.date), 
     156            'time': util.format_datetime(chgset.date, self.env.config.get('i18n', 'datetime_format')), 
    157157            'author': util.escape(chgset.author or 'anonymous'), 
    158158            'message': wiki_to_html(chgset.message or '--', self.env, req, 
    159159                                    escape_newlines=True) 
  • trac/versioncontrol/web_ui/browser.py

     
    170170        req.hdf['file'] = {   
    171171            'rev': node.rev,   
    172172            'changeset_href': util.escape(self.env.href.changeset(node.rev)), 
    173             'date': util.format_datetime(changeset.date), 
     173            'date': util.format_datetime(changeset.date, self.env.config.get('i18n', 'datetime_format')), 
    174174            'age': util.pretty_timedelta(changeset.date), 
    175175            'author': changeset.author or 'anonymous', 
    176176            'message': wiki_to_html(changeset.message or '--', self.env, req, 
  • trac/Search.py

     
    183183            req.hdf['search.result'] = [ 
    184184                { 'href': escape(result[0]), 
    185185                  'title': result[1], 
    186                   'date': format_datetime(result[2]), 
     186                  'date': format_datetime(result[2], self.env.config.get('i18n', 'datetime_format')), 
    187187                  'author': escape(result[3]), 
    188188                  'excerpt': result[4] 
    189189                } for result in results] 
  • trac/Timeline.py

     
    9494        t = time.localtime() 
    9595        if req.args.has_key('from'): 
    9696            try: 
    97                 t = time.strptime(req.args.get('from'), '%x') 
     97                t = time.strptime(req.args.get('from'), self.env.config.get('i18n', 'date_format')) 
    9898            except: 
    9999                pass 
    100100 
     
    103103            daysback = max(0, int(req.args.get('daysback', ''))) 
    104104        except ValueError: 
    105105            daysback = int(self.config.get('timeline', 'default_daysback')) 
    106         req.hdf['timeline.from'] = format_date(fromdate) 
     106        req.hdf['timeline.from'] = format_date(fromdate, self.env.config.get('i18n', 'date_format')) 
    107107        req.hdf['timeline.daysback'] = daysback 
    108108 
    109109        available_filters = [] 
     
    152152        for kind, href, title, date, author, message in events: 
    153153            event = {'kind': kind, 'title': title, 'href': escape(href), 
    154154                     'author': escape(author or 'anonymous'), 
    155                      'date': format_date(date), 
     155                     'date': format_date(date, self.env.config.get('i18n', 'date_format')), 
    156156                     'time': format_time(date, '%H:%M'), 
    157157                     'message': message} 
    158158 
  • trac/wiki/web_ui.py

     
    241241        for version,t,author,comment,ipnr in page.get_history(): 
    242242            if version == page.version: 
    243243                if t: 
    244                     info['time'] = format_datetime(t) 
     244                    info['time'] = format_datetime(t, self.env.config.get('i18n', 'datetime_format')) 
    245245                    info['time_delta'] = pretty_timedelta(t) 
    246246                info['author'] = escape(author or 'anonymous') 
    247247                info['comment'] = escape(comment or '--') 
     
    333333                                                      version=version, 
    334334                                                      action='diff')), 
    335335                'version': version, 
    336                 'time': format_datetime(t), 
     336                'time': format_datetime(t, self.env.config.get('i18n', 'datetime_format')), 
    337337                'time_delta': pretty_timedelta(t), 
    338338                'author': escape(author), 
    339339                'comment': wiki_to_oneliner(comment or '', self.env, db), 
  • trac/wiki/macros.py

     
    113113        prevdate = None 
    114114 
    115115        for name, time in cursor: 
    116             date = format_date(time) 
     116            date = format_date(time, self.env.config.get('i18n', 'date_format')) 
    117117            if date != prevdate: 
    118118                if prevdate: 
    119119                    buf.write('</ul>') 
  • trac/util.py

     
    204204def format_time(t=None, format='%X', gmt=False): 
    205205    return format_datetime(t, format, gmt) 
    206206 
    207 def get_date_format_hint(): 
     207def get_date_format_hint(format='%x'): 
    208208    t = time.localtime(0) 
    209209    t = (1999, 10, 29, t[3], t[4], t[5], t[6], t[7], t[8]) 
    210     tmpl = time.strftime('%x', t) 
     210    tmpl = time.strftime(format, t) 
    211211    return tmpl.replace('1999', 'YYYY', 1).replace('99', 'YY', 1) \ 
    212212               .replace('10', 'MM', 1).replace('29', 'DD', 1) 
    213213 
    214 def get_datetime_format_hint(): 
     214def get_datetime_format_hint(format='%x %X'): 
    215215    t = time.localtime(0) 
    216216    t = (1999, 10, 29, 23, 59, 58, t[6], t[7], t[8]) 
    217     tmpl = time.strftime('%x %X', t) 
     217    tmpl = time.strftime(format, t) 
    218218    return tmpl.replace('1999', 'YYYY', 1).replace('99', 'YY', 1) \ 
    219219               .replace('10', 'MM', 1).replace('29', 'DD', 1) \ 
    220220               .replace('23', 'hh', 1).replace('59', 'mm', 1) \ 
     
    233233           weekdays[t.tm_wday], t.tm_mday, months[t.tm_mon - 1], t.tm_year, 
    234234           t.tm_hour, t.tm_min, t.tm_sec) 
    235235 
    236 def parse_date(text): 
     236def parse_date(text, default_format='%x %X'): 
    237237    seconds = None 
    238238    text = text.strip() 
    239     for format in ['%x %X', '%x, %X', '%X %x', '%X, %x', '%x', '%c', 
     239    for format in [default_format, '%x %X', '%x, %X', '%X %x', '%X, %x', '%x', '%c', 
    240240                   '%b %d, %Y']: 
    241241        try: 
    242242            date = time.strptime(text, format) 
  • trac/web/main.py

     
    149149    from trac import __version__ 
    150150    hdf['trac'] = { 
    151151        'version': __version__, 
    152         'time': format_datetime(), 
     152        'time': format_datetime(None, env.config.get('i18n', 'datetime_format')), 
    153153        'time.gmt': http_date() 
    154154    } 
    155155    hdf['trac.href'] = {