From bee14e1a0ba4b61c2fa3f25bfaefff829cb7ffaf Mon Sep 17 00:00:00 2001 From: Damien Elmes Date: Thu, 14 Apr 2011 03:29:39 +0900 Subject: [PATCH] make fieldNames() available for gui code too --- anki/find.py | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/anki/find.py b/anki/find.py index ed27d2095..a8dc14ddb 100644 --- a/anki/find.py +++ b/anki/find.py @@ -14,6 +14,21 @@ SEARCH_FIELD = 5 SEARCH_MODEL = 6 SEARCH_GROUP = 7 +# Tools +########################################################################## + +def fieldNames(deck, downcase=True): + fields = set() + names = [] + for m in deck.models().values(): + for f in m.fields: + if f['name'].lower() not in fields: + names.append(f['name']) + fields.add(f['name'].lower()) + if downcase: + return list(fields) + return names + # Find ########################################################################## @@ -222,17 +237,11 @@ where mid in %s and flds like ? escape '\\'""" % ( extra = "not" if isNeg else "" self.lims['fact'].append("id %s in %s" % (extra, ids2str(fids))) - def _fieldNames(self): - fields = set() - for m in self.deck.models().values(): - fields.update([f['name'].lower() for f in m.fields]) - return list(fields) - # Most of this function was written by Marcus def _parseQuery(self): tokens = [] res = [] - allowedfields = self._fieldNames() + allowedfields = fieldNames(self.deck) def addSearchFieldToken(field, value, isNeg): if field.lower() in allowedfields: res.append((field + ':' + value, isNeg, SEARCH_FIELD))