CollectLists: regex keyword replaced by search_expression. Instead of filtereing of request.rootpage.getPageList now search.searchPages is called.
authorReimar Bauer <rb.proj AT googlemail DOT com>
Wed, 03 Feb 2010 18:10:22 +0100
changeset 490d89a77a21e55
parent 489 c00d5e661913
child 491 435dc7e10d78
CollectLists: regex keyword replaced by search_expression. Instead of filtereing of request.rootpage.getPageList now search.searchPages is called.
data/plugin/macro/CollectLists.py
     1.1 --- a/data/plugin/macro/CollectLists.py	Wed Feb 03 17:20:22 2010 +0100
     1.2 +++ b/data/plugin/macro/CollectLists.py	Wed Feb 03 18:10:22 2010 +0100
     1.3 @@ -18,14 +18,14 @@
     1.4      By using the keyword transpose the table is shown transposed. Until transpose is not part
     1.5      of the databrowser widget itselfs we don't support filter_selection by transpose=True.
     1.6      
     1.7 -    <<CollectLists(regex=^Examplepage/(.*))>
     1.8 +    <<CollectLists(search_expression=title:Examplepage/)>
     1.9  
    1.10      @copyright: 2006 by michael cohen <scudette@users.sourceforge.net> (PageDicts)
    1.11      @copyright: 2008-2010 by MoinMoin:ReimarBauer (completly rewritten)
    1.12      @license: GNU GPL, see COPYING for details.
    1.13  """
    1.14  import re
    1.15 -from MoinMoin import wikiutil
    1.16 +from MoinMoin import wikiutil, search
    1.17  from MoinMoin.Page import Page
    1.18  from MoinMoin.util.dataset import TupleDataset, Column
    1.19  from MoinMoin.wikidicts import Dict
    1.20 @@ -39,7 +39,7 @@
    1.21                        transpose=False,
    1.22                        filter_column_value=u'',
    1.23                        parser=u'text_moin_wiki',
    1.24 -                      regex=None,
    1.25 +                      search_expression=None,
    1.26                        filter_selection=u'NeverExistingDefaultFilter'):
    1.27  
    1.28      """
    1.29 @@ -65,10 +65,12 @@
    1.30          # Don't filter if syntax was wrong
    1.31          filter_column_value = u''
    1.32  
    1.33 -    if regex is None:
    1.34 -        regex = '^%s/(.*)' % pagename
    1.35 -    filterfn = re.compile(regex).search
    1.36 -    pages = request.rootpage.getPageList(exists=1, filter=filterfn)
    1.37 +    if search_expression is None:
    1.38 +        search_expression = 'title:%s/' % pagename
    1.39 +
    1.40 +    search_result = search.searchPages(request, search_expression)
    1.41 +    pages = [title.page_name for title in search_result.hits]
    1.42 +
    1.43      if not pages:
    1.44          return _("Page '%(new_pagename)s' does not exist or you don't have enough rights.") % {"new_pagename": pagename}
    1.45