Changeset 77

Show
Ignore:
Timestamp:
11/02/06 05:35:09 (2 years ago)
Author:
lazaridis_com
Message:

closes #46, implemented possibility to define multiple query-result-fieldsets (defined within trac.in), called via paramether "fieldset=name"

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • infra/trac-dev/trac/ticket/query.py

    r76 r77  
    4444 
    4545    def __init__(self, env, constraints=None, order=None, desc=0, group=None, 
    46                  groupdesc = 0, verbose=0): 
     46                 groupdesc = 0, verbose=0, fieldset=None): 
    4747        self.env = env 
    4848        self.constraints = constraints or {} 
     
    5252        self.groupdesc = groupdesc 
    5353        self.verbose = verbose 
     54        self.fieldset = fieldset 
    5455        self.fields = TicketSystem(self.env).get_ticket_fields(True) 
    5556        self.cols = [] # lazily initialized 
     
    6566    def from_string(cls, env, req, string, **kw): 
    6667        filters = string.split('&') 
    67         kw_strs = ['order', 'group'] 
     68        kw_strs = ['order', 'group', 'fieldset'] 
    6869        kw_bools = ['desc', 'groupdesc', 'verbose'] 
    6970        constraints = {} 
     
    112113        cols += [f['name'] for f in self.fields if f['type'] != 'textarea'] 
    113114 
    114         # user definable default display fields 
    115         cols = QueryModule(self.env).default_display_fields 
    116  
     115        # user defineable query result display fields       
     116        fieldsets = QueryModule(self.env).get_fieldsets() 
     117        if self.fieldset: 
     118            if fieldsets.has_key(self.fieldset): 
     119                cols = fieldsets[self.fieldset] 
     120        else: 
     121            if fieldsets.has_key('default'): 
     122                cols = fieldsets['default'] 
     123 
     124        #TODO: what does this do? 
    117125        for col in ('reporter', 'keywords', 'cc'): 
    118126            if col in cols: 
     
    439447               IContentConverter) 
    440448 
    441     # introducing option 
    442     from trac.config import ListOption 
    443                     
    444     default_display_fields = ListOption('query', 'default_display_fields', 
    445     'id,summary,status,owner,type,priority,milestone,changetime', doc= 
    446     """(dev-status: draft) Fields to display in query results 
    447     possible values: 
    448     id,summary,status,owner,type,priority,milestone,changetime,time""")                
     449    def get_fieldsets(self): 
     450        """ (dev-status: beta) returns a dictionary of user-defined fieldsets 
     451         
     452        Those fieldsets are defined in trac-ini within the section 
     453         
     454        [ticket-query-fieldsets]         
     455        fieldsetname=id,summary,owner,changetime 
     456        anothersetname=id,summary,time 
     457        default=id,summary 
     458         
     459        specify a query parameter &fieldset=fieldsetname 
     460         
     461        if fieldset is ommited, the default fieldset is used 
     462        if default is unspecified, the standard-trac fieldset is used 
     463         
     464        """ 
     465 
     466        config = self.config['ticket-query-fieldsets'] 
     467         
     468        fieldsets = {} 
     469        for option, value in config.options(): 
     470            fieldsets[option] = config.getlist(option, sep=',') 
     471 
     472        return fieldsets            
    449473 
    450474    # IContentConverter methods