Opened 15 years ago

Last modified 9 years ago

#6221 closed enhancement

different starting states for different ticket types — at Initial Version

Reported by: zooli Owned by: Stephen Hansen
Priority: normal Component: TicketCreationStatusPlugin
Severity: normal Keywords:
Cc: Trac Release: 0.11

Description

i've modified a little bit your code, to have the ability to use different starting states for different ticket types

the code is:

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.""")

    def ticket_created(self, ticket):
        status = None
        default_type_status = get_type_default(self.config.options('ticketcreationstatus'), ticket['type'])
        
        if self.owned_status:     
            if ticket['owner']:
                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 

usage:

default_%type% = %defaultfortype%

Change History (0)

Note: See TracTickets for help on using tickets.