Mercurial > p > roundup > code
diff roundup/backends/back_metakit.py @ 3147:dbf80d7db63f
consistent text searching behaviour (AND everywhere) [SF#1101036]
| author | Richard Jones <richard@users.sourceforge.net> |
|---|---|
| date | Sun, 13 Feb 2005 22:38:57 +0000 |
| parents | a588dab13664 |
| children | 6feac4fcf883 |
line wrap: on
line diff
--- a/roundup/backends/back_metakit.py Sun Feb 13 22:04:32 2005 +0000 +++ b/roundup/backends/back_metakit.py Sun Feb 13 22:38:57 2005 +0000 @@ -1,4 +1,4 @@ -# $Id: back_metakit.py,v 1.89 2005-01-09 19:01:09 jlgijsbers Exp $ +# $Id: back_metakit.py,v 1.90 2005-02-13 22:37:00 richard Exp $ '''Metakit backend for Roundup, originally by Gordon McMillan. Known Current Bugs: @@ -1212,7 +1212,7 @@ where = {'_isdel':0} wherehigh = {} mlcriteria = {} - regexes = {} + regexes = [] orcriteria = {} for propname, value in filterspec.items(): prop = self.ruprops.get(propname, None) @@ -1258,14 +1258,12 @@ elif isinstance(prop, hyperdb.String): 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) + regexes.append((propname, re.compile(v, re.I))) elif propname == 'id': where[propname] = int(value) elif isinstance(prop, hyperdb.Boolean): @@ -1353,7 +1351,7 @@ if regexes: def ff(row, r=regexes): - for propname, regex in r.items(): + for propname, regex in r: val = str(getattr(row, propname)) if not regex.search(val): return 0
