All pastes #981032 Raw Edit

Something

public text v1 · immutable
·published 2008-04-11 14:25 UTC
rendered paste body
------------------- tracbacks.py ---------------------

import re

from genshi.builder import tag

from trac.core import *
from trac.ticket import ITicketChangeListener, Ticket

class TracBacksPlugin(Component):
    implements(ITicketChangeListener)

    # ITicketChangeListener methods

    def ticket_created(self, ticket):
        # Note that we don't check for tracbacks on ticket
        # creation - it's got to be in a comment. Maybe we
        # can fix this in a later version of the ticket.
        pass

    def ticket_changed(self, ticket, comment, author, old_values):
        print '#'*80
        print ">>>> Ticket", ticket, "has changed"
        print "comment: ", comment
        print "author: ", author
        print "old_values", old_values
        if "trackback" not in comment:
            ticket.save_changes(author, "trackback")
            print "left a trackback"
        print '#'*80

    def ticket_deleted(self, ticket):
        pass


----------------------- traceback -------------------------

10:24:23 AM Trac[__init__] ERROR: columns ticket, time, field are not unique
Traceback (most recent call last):
  File "/home/trac/lib/python2.5/site-packages/Trac-0.11b2-py2.5.egg/trac/web/main.py", line 419, in _dispatch_request
    dispatcher.dispatch(req)
  File "/home/trac/lib/python2.5/site-packages/Trac-0.11b2-py2.5.egg/trac/web/main.py", line 196, in dispatch
    resp = chosen_handler.process_request(req)
  File "/home/trac/lib/python2.5/site-packages/Trac-0.11b2-py2.5.egg/trac/ticket/web_ui.py", line 157, in process_request
    return self._process_ticket_request(req)
  File "/home/trac/lib/python2.5/site-packages/Trac-0.11b2-py2.5.egg/trac/ticket/web_ui.py", line 457, in _process_ticket_request
    self._do_save(req, ticket, action)
  File "/home/trac/lib/python2.5/site-packages/Trac-0.11b2-py2.5.egg/trac/ticket/web_ui.py", line 944, in _do_save
    cnum=internal_cnum):
  File "/home/trac/lib/python2.5/site-packages/Trac-0.11b2-py2.5.egg/trac/ticket/model.py", line 276, in save_changes
    listener.ticket_changed(self, comment, author, old_values)
  File "build/bdist.linux-i686/egg/tracbacks/tracbacks.py", line 28, in ticket_changed
    ticket.save_changes(author, "trackback")
  File "/home/trac/lib/python2.5/site-packages/Trac-0.11b2-py2.5.egg/trac/ticket/model.py", line 264, in save_changes
    (self.id, when_ts, author, cnum, comment))
  File "/home/trac/lib/python2.5/site-packages/Trac-0.11b2-py2.5.egg/trac/db/util.py", line 50, in execute
    return self.cursor.execute(sql_escape_percent(sql), args)
  File "/home/trac/lib/python2.5/site-packages/Trac-0.11b2-py2.5.egg/trac/db/sqlite_backend.py", line 58, in execute
    args or [])
  File "/home/trac/lib/python2.5/site-packages/Trac-0.11b2-py2.5.egg/trac/db/sqlite_backend.py", line 50, in _rollback_on_error
    return function(self, *args, **kwargs)
IntegrityError: columns ticket, time, field are not unique