diff options
author | Sascha Silbe <sascha@silbe.org> | 2009-08-17 23:43:05 (GMT) |
---|---|---|
committer | Sascha Silbe <sascha@silbe.org> | 2009-08-17 23:43:05 (GMT) |
commit | 67faf3925f52d80086260bce89f0160ae44a7162 (patch) | |
tree | 5e272b34bc672fb758c1729ff922e0b98c008ab8 | |
parent | 90f3e96a7b87f40e9a2a829784229c389444a310 (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) |