Show
Ignore:
Timestamp:
09/05/09 17:30:02 (16 months ago)
Author:
mbooth
Message:

The plugin is now just about usable. Admin side of it is complete and you can submit new and edit existing tickets (albeit with a patch to Trac itself).

Location:
trunk/multiproduct
Files:
2 added
3 modified

Legend:

Unmodified
Added
Removed
  • trunk/multiproduct

    • Property svn:ignore set to
      MultiProduct.egg-info
  • trunk/multiproduct/multiproduct/main.py

    r103 r104  
    1111 
    1212from multiproduct.model import schema, schema_ver 
     13 
     14__all__ = ['MultiProductPlugin'] 
    1315 
    1416 
  • trunk/multiproduct/multiproduct/model.py

    r103 r104  
    77from datetime import datetime 
    88 
    9 from trac.config import Option 
    109from trac.core import * 
    1110from trac.db import Table, Column 
    1211from trac.resource import ResourceNotFound 
    13 from trac.ticket.api import TicketSystem, ITicketManipulator 
     12from trac.ticket.api import TicketSystem 
    1413from trac.ticket.model import simplify_whitespace 
    1514from trac.util import embedded_numbers, sorted 
     
    1716from trac.util.translation import _ 
    1817 
    19  
    20 class TicketExtensions(Component): 
    21     """Provides some extensions to the ticket model behaviour, 
    22     including extra validation.""" 
    23  
    24     implements(ITicketManipulator) 
    25  
    26     # Config options 
    27  
    28     default_product = Option('ticket', 'default_product', '', 
    29         """Default product for newly created tickets.""") 
    30  
    31     # ITicketManipulator methods 
    32  
    33     def prepare_ticket(self, req, ticket, fields, actions): 
    34         return None 
    35  
    36     def validate_ticket(self, req, ticket): 
    37         db = self.env.get_db_cnx() 
    38  
    39         # Default the owner field to the product owner, if left blank 
    40         if ticket.values.get('product') and not ticket.values.get('owner'): 
    41             try: 
    42                 product = Product(self.env, ticket['product'], db=db) 
    43                 if product.owner: 
    44                     ticket['owner'] = product.owner 
    45             except ResourceNotFound, e: 
    46                 # No such product exists 
    47                 pass 
    48         return [] 
    4918 
    5019class Product(object):