Edgewall Software

Ticket #843: patch-changesbyuser-r1011-v2.diff

File patch-changesbyuser-r1011-v2.diff, 2.5 KB (added by pkou@…, 8 years ago)

A much more elegant patch for the issue

  • trac/Timeline.py

     
    3535    template_rss_name = 'timeline_rss.cs' 
    3636 
    3737    def get_info (self, start, stop, maxrows, tickets, 
    38                   changeset, wiki, milestone): 
     38                  changeset, wiki, milestone, foruser=''): 
    3939        cursor = self.db.cursor () 
    4040 
    4141        tickets = tickets and self.perm.has_permission(perm.TICKET_VIEW) 
     
    9292                     (start, stop)) 
    9393 
    9494        q_str = string.join(q, ' UNION ALL ') 
     95 
     96        if foruser: 
     97            if foruser == '(empty)': 
     98                q_user = "IFNULL(author, '') = ''" 
     99            else: 
     100                q_user = "author = '%s'" % foruser 
     101            q_str = "SELECT * FROM (%s) WHERE %s" % (q_str, q_user) 
     102 
    95103        q_str += ' ORDER BY time DESC' 
    96104        if maxrows: 
    97105            q_str += ' LIMIT %d' % maxrows 
     
    192200 
    193201        _from = self.args.get('from', '') 
    194202        _daysback = self.args.get('daysback', '') 
     203        foruser = self.args.get('user', '') 
    195204 
    196205        # Parse the from date and adjust the timestamp to the last second of the day 
    197206        try: 
     
    207216        self.req.hdf.setValue('timeline.from', 
    208217                              time.strftime('%x', time.localtime(_from))) 
    209218        self.req.hdf.setValue('timeline.daysback', str(daysback)) 
     219        self.req.hdf.setValue('timeline.user', foruser) 
    210220 
    211221        stop  = _from 
    212222        start = stop - daysback * 86400 
     
    229239            self.req.hdf.setValue('timeline.milestone', 'checked') 
    230240 
    231241        info = self.get_info (start, stop, maxrows, ticket, 
    232                               changeset, wiki, milestone) 
     242                              changeset, wiki, milestone, foruser) 
    233243        util.add_dictlist_to_hdf(info, self.req.hdf, 'timeline.items') 
    234244        self.req.hdf.setValue('title', 'Timeline') 
    235245 
  • templates/timeline.cs

     
    4040      if:timeline.milestone ?>checked="checked"<?cs /if ?> /> 
    4141    <label for="milestone">Milestones</label> 
    4242   </div><?cs /if ?> 
     43   <div> 
     44   <label for="user">View changes by</label> 
     45   <input type="text" size="10" id="user" name="user" 
     46       value="<?cs var:timeline.user ?>" /> (empty for all users) 
     47   </div> 
    4348  </fieldset> 
    4449  <div class="buttons"> 
    4550   <input type="submit" value="Update" />