Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/sugar/datastore
diff options
context:
space:
mode:
authorTomeu Vizoso <tomeu@tomeuvizoso.net>2007-03-04 10:27:33 (GMT)
committer Tomeu Vizoso <tomeu@tomeuvizoso.net>2007-03-04 10:27:33 (GMT)
commita585221b164ef353634afd407af5d330931e36f4 (patch)
tree8908aba3d058495ed9a1b00f0dc4468c7a92fe37 /sugar/datastore
parent559d21d4d26da6bb4d42389852a447a562eab15a (diff)
Added object update to the datastore.
Diffstat (limited to 'sugar/datastore')
-rw-r--r--sugar/datastore/datastore.py12
1 files changed, 8 insertions, 4 deletions
diff --git a/sugar/datastore/datastore.py b/sugar/datastore/datastore.py
index 33deadc..f62e7af 100644
--- a/sugar/datastore/datastore.py
+++ b/sugar/datastore/datastore.py
@@ -91,10 +91,14 @@ def write(obj):
metadata = obj.get_metadata().copy()
metadata['file-path'] = obj.get_file_path()
metadata['object-type'] = obj.get_object_type()
- logging.debug(str(metadata))
- object_path = _data_store.create(dbus.Dictionary(metadata))
- dbus_object = _bus.get_object(DS_DBUS_SERVICE, object_path)
- return dbus_object.get_properties(['handle'])['handle']
+
+ if obj.get_handle():
+ _data_store.update(int(obj.get_handle()), dbus.Dictionary(metadata))
+ return obj.get_handle()
+ else:
+ object_path = _data_store.create(dbus.Dictionary(metadata))
+ dbus_object = _bus.get_object(DS_DBUS_SERVICE, object_path)
+ return dbus_object.get_properties(['handle'])['handle']
def find(query):
object_paths = _data_store.find(query)