Opened 14 years ago
Last modified 9 years ago
#6285 closed defect
Combined two patches in #4720 and #6221. — at Initial Version
Reported by: | Owned by: | Stephen Hansen | |
---|---|---|---|
Priority: | lowest | Component: | TicketCreationStatusPlugin |
Severity: | trivial | Keywords: | |
Cc: | Trac Release: | 0.11 |
Description
from trac.core import Component, implements from trac.ticket.api import ITicketChangeListener from trac.config import Option
def get_type_default(raw_options, type):
for option, value in raw_options:
if option == 'default_' + type:
return value
return None
class TicketCreationStatus(Component):
implements(ITicketChangeListener)
default_status = Option('ticketcreationstatus', 'default', None,
doc="""Determines the status for tickets (if not otherwise modified).""")
owned_status = Option('ticketcreationstatus', 'owned', None,
doc="""Determines the status for tickets that start out owned.""")
owned_by_user_status = Option('ticketcreationstatus', 'owned_by_user', None,
doc="""Determines the status for tickets that start out owned by user.""")
# ITicketChangeListener methods
def ticket_created(self, ticket):
status = None default_type_status = get_type_default(self.config.options('ticketcreationstatus'), tickettype)
if self.owned_by_user_status:
if ticketowner? == ticketreporter?:
status = self.owned_by_user_status
if not status and self.owned_status:
if ticketowner? != :
status = self.owned_status
if not status and default_type_status:
status = default_type_status
if not status and self.default_status:
status = self.default_status
if status is not None:
db = self.env.get_db_cnx() cursor = db.cursor() cursor.execute("update ticket set status=%s where id=%s", (status, ticket.id)) db.commit()
def ticket_changed(self, ticket, comment, author, old_values):
pass
def ticket_deleted(self, ticket):
pass