diff options
author | Tomeu Vizoso <tomeu@tomeuvizoso.net> | 2007-08-21 10:12:13 (GMT) |
---|---|---|
committer | Tomeu Vizoso <tomeu@tomeuvizoso.net> | 2007-08-21 10:12:13 (GMT) |
commit | 254433a3935cfa736f10aa918435ed5e11f4a53c (patch) | |
tree | 11c10737583e4a83cec4262e84d949e0dff2473e /sugar/activity/activity.py | |
parent | 0408ea189d3ed0134b2fb9bc0ae54c75b9d950cd (diff) |
Save the sharing info about the activity to the datastore.
Diffstat (limited to 'sugar/activity/activity.py')
-rw-r--r-- | sugar/activity/activity.py | 29 |
1 files changed, 25 insertions, 4 deletions
diff --git a/sugar/activity/activity.py b/sugar/activity/activity.py index 553b1a1..ccc8b90 100644 --- a/sugar/activity/activity.py +++ b/sugar/activity/activity.py @@ -25,9 +25,11 @@ import logging import os import time import tempfile +from hashlib import sha1 import gtk, gobject import dbus +import json from sugar import util from sugar.presence import presenceservice @@ -276,9 +278,15 @@ class Activity(Window, gtk.Container): self._jobject.metadata['activity'] = self.get_service_name() self._jobject.metadata['activity_id'] = self.get_id() self._jobject.metadata['keep'] = '0' - #self._jobject.metadata['buddies'] = '' self._jobject.metadata['preview'] = '' - self._jobject.metadata['icon-color'] = profile.get_color().to_string() + + if self._shared_activity is not None: + icon_color = self._shared_activity.props.color + else: + icon_color = profile.get_color().to_string() + + self._jobject.metadata['icon-color'] = icon_color + self._jobject.file_path = '' datastore.write(self._jobject, reply_handler=self._internal_jobject_create_cb, @@ -394,7 +402,15 @@ class Activity(Window, gtk.Container): return base64.b64encode(preview_data) def _get_buddies(self): - return '' + if self._shared_activity is not None: + buddies = {} + for buddy in self._shared_activity.get_joined_buddies(): + if not buddy.props.owner: + buddy_id = sha1(buddy.props.key).hexdigest() + buddies[buddy_id] = [buddy.props.nick, buddy.props.color] + return buddies + else: + return {} def save(self): """Request that the activity is saved to the Journal.""" @@ -402,11 +418,16 @@ class Activity(Window, gtk.Container): if self._updating_jobject: return - #self.metadata['buddies'] = self._get_buddies() + buddies_dict = self._get_buddies() + if buddies_dict: + self.metadata['buddies_id'] = json.write(buddies_dict.keys()) + self.metadata['buddies'] = json.write(self._get_buddies()) + if self._preview is None: self.metadata['preview'] = '' else: self.metadata['preview'] = self._preview + try: if self._jobject.file_path: self.write_file(self._jobject.file_path) |