Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/sugar
diff options
context:
space:
mode:
authorTomeu Vizoso <tomeu@tomeuvizoso.net>2007-09-10 15:58:01 (GMT)
committer Tomeu Vizoso <tomeu@tomeuvizoso.net>2007-09-10 15:58:01 (GMT)
commite9449d0ab047108d137283ed711574f1ef236684 (patch)
tree66d3e55c3eaac0c367bb436b8a6f96c5203575b9 /sugar
parentccb0aaaa2884ba573aba88167cdee1ea28350ec2 (diff)
Do sync the DS creates.
Diffstat (limited to 'sugar')
-rw-r--r--sugar/activity/activity.py19
1 files changed, 14 insertions, 5 deletions
diff --git a/sugar/activity/activity.py b/sugar/activity/activity.py
index f734c61..9e14088 100644
--- a/sugar/activity/activity.py
+++ b/sugar/activity/activity.py
@@ -404,12 +404,14 @@ class Activity(Window, gtk.Container):
raise NotImplementedError
def _internal_save_cb(self):
+ logging.debug('Activity._internal_save_cb')
self._updating_jobject = False
if self._closing:
self._cleanup_jobject()
self.destroy()
def _internal_save_error_cb(self, err):
+ logging.debug('Activity._internal_save_error_cb')
self._updating_jobject = False
if self._closing:
self._cleanup_jobject()
@@ -466,6 +468,7 @@ class Activity(Window, gtk.Container):
logging.debug('Activity.save: %r' % self._jobject.object_id)
if self._updating_jobject:
+ logging.info('Activity.save: still processing a previous request.')
return
buddies_dict = self._get_buddies()
@@ -488,14 +491,20 @@ class Activity(Window, gtk.Container):
self._jobject.file_path = file_path
except NotImplementedError:
pass
- self._updating_jobject = True
- datastore.write(self._jobject,
- transfer_ownership=True,
- reply_handler=self._internal_save_cb,
- error_handler=self._internal_save_error_cb)
+
+ # Cannot call datastore.write async for creates: https://dev.laptop.org/ticket/3071
+ if self._jobject.object_id is None:
+ datastore.write(self._jobject, transfer_ownership=True)
+ else:
+ self._updating_jobject = True
+ datastore.write(self._jobject,
+ transfer_ownership=True,
+ reply_handler=self._internal_save_cb,
+ error_handler=self._internal_save_error_cb)
def copy(self):
logging.debug('Activity.copy: %r' % self._jobject.object_id)
+ self._preview = self._get_preview()
self.save()
self._jobject.object_id = None