diff options
author | Sascha Silbe <sascha@silbe.org> | 2009-08-17 23:43:05 (GMT) |
---|---|---|
committer | Sascha Silbe <sascha@silbe.org> | 2009-08-19 20:33:06 (GMT) |
commit | bd9e5f591d3f600593132bf44a73118d2141bf16 (patch) | |
tree | c6ec0407275cb63bdf094cfaf8b0390574cc8a0d | |
parent | 543cc72ce367c565152f54baba452ed67122119a (diff) |
fix some bugs that crept in during cherry-picking
-rw-r--r-- | src/sugar/datastore/datastore.py | 28 |
1 files changed, 18 insertions, 10 deletions
diff --git a/src/sugar/datastore/datastore.py b/src/sugar/datastore/datastore.py index f7de51c..26d9c49 100644 --- a/src/sugar/datastore/datastore.py +++ b/src/sugar/datastore/datastore.py @@ -213,19 +213,27 @@ def find(query, sorting=None, limit=None, offset=None, properties=None, query['limit'] = limit if offset: query['offset'] = offset - - props_list, total_count = dbus_helpers.find(query, properties, - reply_handler, error_handler) - + + if reply_handler and error_handler: + f_reply_handler = (lambda entries, total_count: + reply_handler(_metadata_to_dsobjects(entries), total_count)) + + return dbus_helpers.find(query, properties, f_reply_handler, + error_handler) + + entries, total_count = dbus_helpers.find(query, properties) + return _metadata_to_dsobjects(entries), total_count + +def _metadata_to_dsobjects(entries) : objects = [] - for props in props_list: - object_id = props['uid'] - del props['uid'] + for properties in entries: + object_id = properties['uid'] + del properties['uid'] - ds_object = DSObject(object_id, DSMetadata(props), None) + ds_object = DSObject(object_id, DSMetadata(properties)) objects.append(ds_object) - return objects, total_count + return objects def copy(jobject, mount_point): @@ -291,7 +299,7 @@ class DatastoreListener(object): def _datastore_created_cb(self, object_id): metadata = get_properties(object_id) - self.saved.send(self, metadata=metadata) + self.created.send(self, metadata=metadata) def _datastore_updated_cb(self, object_id): metadata = get_properties(object_id) |