Ignore:
Timestamp:
Oct 28, 2010 6:10:51 PM (14 years ago)
Author:
mylan
Message:

#228: Fix overhead in parsing of filter arguments. Added test (breakage yet)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • quintagroup.plonegooglesitemaps/branches/blacklist/quintagroup/plonegooglesitemaps/browser/commonview.py

    r2940 r2941  
    8484        """Return blkack-out filtered objects 
    8585          Every record in blackout_list filter should follow the spec: 
    86              [extra filter data, separated by ':':][<filter name>:]<filter data> 
     86            [<filter name>:]<filter arguments> 
    8787          For example: 
    8888          1|  index.html 
     
    9090          3|  path:/folder_1_level/obj_in_folder 
    9191          4|  path:./folder_near_sitemap/obj_in_folder 
    92           5|  extra_arg1:extra_arg2:super_filter:super arg-1, super arg-2 
     92          5|  foo_filter:arg-1, arg-2 
    9393          
    9494          1->used default "id" filter - remove "index.html" objects; 
     
    9797              path from the root of the plone site; 
    9898          4->same to 3), but path get from the folder, where sitemap is located; 
    99           5->filter name is "super_filter" (must be registered IBlackoutFilterUtility, 
    100              named "seoptimzier.blackoutfilter.super_filter:), which get list of extra 
    101              parameters, e.g. [extra_arg1,extra_arg2] to the filterOut method in 
    102              "extras" option, and get filter arguments: super arg-1, super arg-2 
     99          5->filter name is "foo_filter" (must be registered IBlackoutFilter, 
     100             named "foo_filter"), which get filter arguments: arg-1, arg-2 
    103101           
    104           class SuperFilterUtility(object): 
    105               def filterOut(self, fdata, fargs, **kwargs): 
    106                   sitemap = kwargs.get("sitemap") 
    107                   extras = kwargs.get("extras") # [extra_arg1,extra_arg2] 
     102          class FooFilterUtility(object): 
     103              def __init__(self, context, request): 
     104                  self.context = context 
     105                  self.request = request 
     106              def filterOut(self, fdata, fargs): 
    108107                  # some logic to filter-out fdata by fargs with taking into 
    109                   # consideration extras ... 
     108                  # consideration self.context and self.request, if needed. 
    110109        """ 
    111110        blackout_list = filter(None, self.context.getBlackout_list()) 
    112111        for frec in blackout_list: 
    113             fspec = frec.split(":") 
     112            fspec = frec.split(":", 1) 
    114113            fargs = fspec.pop() 
    115114            fname = fspec and fspec.pop() or "id" 
Note: See TracChangeset for help on using the changeset viewer.