------------------- 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