From 597cb100bcaccc37c1614b5cfb013da2c43d541d Mon Sep 17 00:00:00 2001 From: Tomeu Vizoso Date: Mon, 19 Nov 2007 18:41:35 +0000 Subject: #4662 Correctly fix properties not in the model. --- diff --git a/NEWS b/NEWS index 18a9131..e1c96ab 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,5 @@ +* #4662 Correctly fix properties not in the model. (tomeu) + Snapshot ea0764a9e9 * #4662 Add the 'source' property to the model. (marco) diff --git a/src/olpc/datastore/model.py b/src/olpc/datastore/model.py index acabae3..cdaee9f 100644 --- a/src/olpc/datastore/model.py +++ b/src/olpc/datastore/model.py @@ -399,6 +399,5 @@ defaultModel = Model().addFields( ('icon-color', 'string'), ('preview', 'external'), ('buddies', 'text'), - ('source', 'text'), ) diff --git a/src/olpc/datastore/xapianindex.py b/src/olpc/datastore/xapianindex.py index 06041aa..dfef53c 100644 --- a/src/olpc/datastore/xapianindex.py +++ b/src/olpc/datastore/xapianindex.py @@ -104,6 +104,12 @@ class IndexManager(object): datamodel = kwargs.get('model', model.defaultModel) datamodel.apply(self) + # configure the model according to the database + for field_name in self.write_index._field_actions: + if field_name not in datamodel.fields: + datamodel.addField(field_name, 'string') + self.fields.add(field_name) + # store a reference self.datamodel = datamodel @@ -308,6 +314,7 @@ class IndexManager(object): d = {} add_anything = False for k,v in props.iteritems(): + k = str(k) p, added = self.datamodel.fromstring(k, v, allowAddition=True) if added is True: -- cgit v0.9.1