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