Changeset 375

Show
Ignore:
Timestamp:
02/16/08 12:10:47 (2 years ago)
Author:
lazaridis_com
Message:

re #152, simplified query fieldset, placed within one file

Location:
infra/tracx/tracx
Files:
1 removed
1 modified

Legend:

Unmodified
Added
Removed
  • infra/tracx/tracx/query.py

    r240 r375  
    4141     
    4242    def __init__(self): 
    43         # on module import, override existent method with new one           
    44         import patchticketqueryfields 
    45         #if Query.get_columns != get_columns_new:  
    46         #    get_columns_old = Query.get_columns 
    47         #    Query.get_columns = get_columns_new 
    48  
     43        # on module import, override existent method with new one 
     44        get_default_columns_patch() 
     45        from_string_patch() 
     46        pass 
     47         
     48#TODO trac:#4190 - replace dummies to force component initialization 
    4949    # IEnvironmentSetupParticipant     
    50     def environment_created(self): 
    51         pass 
    52         """Called when a new Trac environment is created.""" 
    53  
    54     def environment_needs_upgrade(self, db): 
    55         #self.post_init() 
    56         return False 
    57    
    58     def upgrade_environment(self, db): 
    59         pass 
     50    def environment_created(self):           pass 
     51    def environment_needs_upgrade(self, db): return False 
     52    def upgrade_environment(self, db):       pass 
    6053     
    6154#------------------------------------------------------------------------------ 
     55 
     56get_default_columns_old = Query.get_default_columns 
     57    
     58def get_default_columns_new(self, *args): 
     59    """ Overrides trac.ticket.query.Query.get_default_columns 
     60    """ 
     61        
     62    # call original function 
     63    cols = get_default_columns_old(self, *args) 
     64     
     65    # retrieve user defined fieldsets 
     66    fieldsets = QueryFieldsets(self.env).get_fieldsets()     
     67     
     68    if hasattr(self, 'fieldset'): 
     69    #if self.fieldset: 
     70        if fieldsets.has_key(self.fieldset): 
     71            cols = fieldsets[self.fieldset] 
     72        else: 
     73            self.env.log.debug('fieldset %s not defined, please check trac.ini', self.fieldset) 
     74    else: 
     75        if fieldsets.has_key('default'): 
     76            cols = fieldsets['default'] 
     77 
     78             
     79    return cols 
     80 
     81def get_default_columns_patch(): 
     82    if Query.get_default_columns != get_default_columns_new:  
     83        get_default_columns_old = Query.get_default_columns 
     84        Query.get_default_columns = get_default_columns_new 
     85 
     86#------------------------------------------------------------------------------ 
     87 
     88from_string_old = Query.from_string 
     89 
     90def from_string_new(cls,env, string, **kw): 
     91    """ Overrides the default behaviour of trac.ticket.query.Query 
     92    """ 
     93 
     94    # call original method to instantiate a query object 
     95    query = from_string_old(env, string, **kw)     
     96    
     97    # retrieve the fieldset parameter from the query-string 
     98    fieldset = '' 
     99    filters = string.split('&') 
     100    for keyval in filters: 
     101        param, value = keyval.split('=') 
     102        param = str(param) 
     103        if param == 'fieldset': 
     104            fieldset = value 
     105 
     106    # set the fieldset attribute on the query-object 
     107    setattr(query, 'fieldset', fieldset) 
     108     
     109    #remove the fieldset which has gone into the contraints 
     110    query.constraints.pop('fieldset', '') 
     111     
     112    return query 
     113     
     114def from_string_patch(): 
     115    if Query.from_string != from_string_new:  
     116        from_string_old = Query.from_string 
     117        Query.from_string = classmethod(from_string_new )