Edgewall Software

Changeset 4045

Show
Ignore:
Timestamp:
10/26/06 12:38:29 (3 years ago)
Author:
cboos
Message:

datetime fixes for the TracQuery module, plus fixed a typo in query.html.

Location:
trunk
Files:
3 modified

Legend:

Unmodified
Added
Removed
  • trunk/templates/query.html

    r4007 r4045  
    118118                            value="$field_name" 
    119119                            disabled="${(field.type == 'radio' and 
    120                                          constraints[fieldname] and 
     120                                         constraints[field_name] and 
    121121                                         len(constraints[field_name])) or None}"> 
    122122                      ${field.label} 
  • trunk/templates/query.rss

    r4009 r4045  
    1616      <guid isPermaLink="false">$href</guid> 
    1717      <title>#$result.id: $result.summary</title> 
    18       <pubDate py:if="result.time">${http_date(fromtimestamp(result.time))}</pubDate> 
     18      <pubDate py:if="result.time">${http_date(result.time)}</pubDate> 
    1919      <author py:if="result.reporter">$result.reporter</author> 
    2020      <description>${unicode(result.description)}</description> 
  • trunk/trac/ticket/query.py

    r4022 r4045  
    1616# Author: Christopher Lenz <cmlenz@gmx.de> 
    1717 
     18from datetime import datetime, timedelta 
    1819import re 
    1920from StringIO import StringIO 
    20 import time 
    2121 
    2222from trac.core import * 
     
    2626from trac.ticket.api import TicketSystem 
    2727from trac.ticket.model import Ticket 
     28from trac.util.datefmt import to_timestamp, utc 
    2829from trac.util.html import escape, html, unescape 
    2930from trac.util.text import shorten_line, CRLF 
     
    175176                elif name == 'reporter': 
    176177                    val = val or 'anonymous' 
    177                 elif name in ['changetime', 'time']: 
    178                     val = int(val) 
     178                elif name in ('changetime', 'time'): 
     179                    val = datetime.fromtimestamp(int(val), utc) 
    179180                elif val is None: 
    180181                    val = '--' 
     
    333334                    sql.append("%s.value" % name) 
    334335            elif col in ['t.milestone', 't.version']: 
    335                 time_col = name == 'milestone' and 'milestone.due' or 'version.time' 
     336                time_col = name == 'milestone' and 'milestone.due' or \ 
     337                           'version.time' 
    336338                if desc: 
    337339                    sql.append("COALESCE(%s,0)=0 DESC,%s DESC,%s DESC" 
     
    404406                # Mark tickets added or changed since the query was first 
    405407                # executed 
    406                 if int(ticket['time']) > orig_time: 
     408                if ticket['time'] > orig_time: 
    407409                    ticket['added'] = True 
    408                 elif int(ticket['changetime']) > orig_time: 
     410                elif ticket['changetime'] > orig_time: 
    409411                    ticket['changed'] = True 
    410             for field, value in ticket.items(): 
    411                 if field == self.group: 
    412                     groups.setdefault(value, []).append(ticket) 
    413                     if not groupsequence or groupsequence[-1] != value: 
    414                         groupsequence.append(value) 
    415                 if field == 'time': 
    416                     ticket[field] = value 
    417                 elif field == 'description': 
    418                     ticket[field] = \ 
    419                                   wiki_to_html(value or '', self.env, req, db) 
    420                 else: 
    421                     ticket[field] = value 
     412            if self.group: 
     413                group_key = ticket[self.group] 
     414                groups.setdefault(group_key, []).append(ticket) 
     415                if not groupsequence or groupsequence[-1] != group_key: 
     416                    groupsequence.append(group_key) 
     417            description = ticket.get('description') 
     418            if description: 
     419                ticket['description'] = wiki_to_html(description, self.env, 
     420                                                     req, db) 
    422421        groupsequence = [(value, groups[value]) for value in groupsequence] 
    423422 
     
    558557        # The most recent query is stored in the user session; 
    559558        orig_list = rest_list = None 
    560         orig_time = int(time.time()) 
     559        orig_time = datetime.now(utc) 
     560        query_time = int(req.session.get('query_time', 0)) 
     561        query_time = datetime.fromtimestamp(query_time, utc) 
    561562        query_constraints = unicode(query.constraints) 
    562563        if query_constraints != req.session.get('query_constraints') \ 
    563                 or int(req.session.get('query_time', 0)) < orig_time - 3600: 
     564                or query_time < orig_time - timedelta(hours=1): 
    564565            # New or outdated query, (re-)initialize session vars 
    565566            req.session['query_constraints'] = query_constraints 
     
    570571                         for id in req.session.get('query_tickets', '').split()] 
    571572            rest_list = orig_list[:] 
    572             orig_time = int(req.session.get('query_time', 0)) 
     573            orig_time = query_time 
    573574 
    574575        # Find out which tickets originally in the query results no longer 
     
    607608 
    608609        req.session['query_href'] = query.get_href(req) 
    609         req.session['query_time'] = orig_time 
     610        req.session['query_time'] = to_timestamp(orig_time) 
    610611        req.session['query_tickets'] = ' '.join([str(t['id']) for t in tickets]) 
    611612