Changeset 604


Ignore:
Timestamp:
10/18/08 19:53:21 (5 years ago)
Author:
dgynn
Message:

added filter which puts custom field values in a 'wiki_custom' dict available to be used by templates

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/plugins/wikitoolsplugin/tracwikitools/customfields/web_ui.py

    r585 r604  
    55 
    66from trac.core import * 
    7 from trac.web.api import ITemplateStreamFilter 
     7from trac.web.api import ITemplateStreamFilter, IRequestFilter 
    88from trac.wiki.api import IWikiPageManipulator, IWikiChangeListener 
    99from trac.resource import get_resource_url 
     
    1515       
    1616class WikiCustomFieldModule(Component): 
    17     implements(IWikiPageManipulator, ITemplateStreamFilter, IWikiChangeListener) 
     17    implements(IWikiPageManipulator, ITemplateStreamFilter, IWikiChangeListener, IRequestFilter) 
    1818    page_type = ResourceProperty('wiki_type', default_value='wiki-page') 
    1919     
     
    4242        return [] 
    4343         
     44    # IRequestFilter methods 
     45    def pre_process_request(self, req, handler): 
     46        return handler 
     47 
     48    def post_process_request(self, req, template, data, content_type): 
     49        if data.has_key('page') and data['page'].resource: 
     50            resource = data['page'].resource 
     51            wcf_system = WikiCustomFieldsSystem(self.env) 
     52            wcf={} 
     53            for resource_property, renderer, field_data in wcf_system.get_wiki_custom_fields(resource, req=req): 
     54                wcf[resource_property.name] = resource_property.get(resource, req=req).value 
     55            data['wiki_custom'] = wcf 
     56 
     57        return template, data, content_type 
     58 
    4459    # ITemplateStreamFilter methods 
    4560    def filter_stream(self, req, method, filename, stream, data): 
Note: See TracChangeset for help on using the changeset viewer.