diff roundup/backends/back_metakit.py @ 1631:8a908bbad1ef

A couple of form value handling changes: - multilink properties may hhave multiple form values "1", "2,4", "5", ... - string search properties are split on whitespace and match any of the values
author Richard Jones <richard@users.sourceforge.net>
date Fri, 09 May 2003 01:47:51 +0000
parents 33a0d94c7658
children ab7760caf6ff 27917dce3814
line wrap: on
line diff
--- a/roundup/backends/back_metakit.py	Thu May 08 07:07:42 2003 +0000
+++ b/roundup/backends/back_metakit.py	Fri May 09 01:47:51 2003 +0000
@@ -1,4 +1,4 @@
-# $Id: back_metakit.py,v 1.46 2003-04-20 11:58:45 kedder Exp $
+# $Id: back_metakit.py,v 1.47 2003-05-09 01:47:50 richard Exp $
 '''
    Metakit backend for Roundup, originally by Gordon McMillan.
 
@@ -944,11 +944,16 @@
                 else:
                     orcriteria[propname] = u
             elif isinstance(prop, hyperdb.String):
-                # simple glob searching
-                v = re.sub(r'([\|\{\}\\\.\+\[\]\(\)])', r'\\\1', value)
-                v = v.replace('?', '.')
-                v = v.replace('*', '.*?')
-                regexes[propname] = re.compile(v, re.I)
+                if type(value) is not type([]):
+                    value = [value]
+                m = []
+                for v in value:
+                    # simple glob searching
+                    v = re.sub(r'([\|\{\}\\\.\+\[\]\(\)])', r'\\\1', v)
+                    v = v.replace('?', '.')
+                    v = v.replace('*', '.*?')
+                    m.append(v)
+                regexes[propname] = re.compile('(%s)'%('|'.join(m)), re.I)
             elif propname == 'id':
                 where[propname] = int(value)
             elif isinstance(prop, hyperdb.Boolean):

Roundup Issue Tracker: http://roundup-tracker.org/