You could look at the sources for the ticket class... And another handy trick is to use pythons dir() function to introspect on objects.
Ex: print dir(ticket) Ben On Jan 6, 2012 1:00 PM, "Andrius Ilgunas" <[email protected]> wrote: > Hi all, > > In my first attempt at writing a plugin, I came across the error: > > <code> > AttributeError: 'Ticket' object has no attribute 'desc' > </code> > > Background: > I'd like to run a script when a new ticket is created, and oddly, it > seems that there is no plugin already written to do that. If there > is, would you kindly point me in that direction? > > Otherwise, my question is: What attributes exist for the ticket > object when creating a new ticket (i.e. when the ITicketChangeListener > is implemented?) > > I'm GUESSING at the attribute names, and I got lucky that there's one > called "id". So I presumed that there would also be one called > "[Dd]escription" or "[Dd]esc". But apparently, none of those > attributes exist (yet?) > > Below is what I have written so far, and it is functional (sans the > desc attribute.) > > Any pointers to a solution would be more than helpful! > > <code> > class TracRunOtherPlugin(Component): > """ Executes a program on the host server.""" > > implements(ITicketChangeListener) > > # ITicketChangeListener Interface > def ticket_created(self, ticket): > # Called when a ticket is created > self.log.info('Ticket created: %r' % ticket) > > # Build the command string > file_str='/var/www/qa/autoGenerateTest.php' > args = ''.join([str(ticket.id), ' ', str(ticket.desc), ]) > cmd_str = ''.join([file_str, ' ', args, ]) > > # Execute the command > retcode = subprocess.call(cmd_str,shell=True) > > # Return an error if any > if retcode !=0: > sys.exit("Error while executing " + cmd_str + " Aborting") > > > def ticket_changed(self, ticket, comment, author, old_values): > # Called when a ticket is modified. > # > # `old_values` is a dictionary containing the previous values of > the > # fields that have changed. > self.log.info('Ticket modified: %r' % ticket) > > def ticket_deleted(self, ticket): > # Called when a ticket is deleted. > self.log.info('Ticket deleted: %r' % ticket) > </code> > > -- > You received this message because you are subscribed to the Google Groups > "Trac Development" group. > To post to this group, send email to [email protected]. > To unsubscribe from this group, send email to > [email protected]. > For more options, visit this group at > http://groups.google.com/group/trac-dev?hl=en. > > -- You received this message because you are subscribed to the Google Groups "Trac Development" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/trac-dev?hl=en.
