Save the sharing info about the activity to the datastore.

This commit is contained in:
Tomeu Vizoso 2007-08-21 12:12:13 +02:00
parent 0408ea189d
commit 254433a393

View File

@ -25,9 +25,11 @@ import logging
import os import os
import time import time
import tempfile import tempfile
from hashlib import sha1
import gtk, gobject import gtk, gobject
import dbus import dbus
import json
from sugar import util from sugar import util
from sugar.presence import presenceservice 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'] = self.get_service_name()
self._jobject.metadata['activity_id'] = self.get_id() self._jobject.metadata['activity_id'] = self.get_id()
self._jobject.metadata['keep'] = '0' self._jobject.metadata['keep'] = '0'
#self._jobject.metadata['buddies'] = ''
self._jobject.metadata['preview'] = '' 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 = '' self._jobject.file_path = ''
datastore.write(self._jobject, datastore.write(self._jobject,
reply_handler=self._internal_jobject_create_cb, reply_handler=self._internal_jobject_create_cb,
@ -394,7 +402,15 @@ class Activity(Window, gtk.Container):
return base64.b64encode(preview_data) return base64.b64encode(preview_data)
def _get_buddies(self): 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): def save(self):
"""Request that the activity is saved to the Journal.""" """Request that the activity is saved to the Journal."""
@ -402,11 +418,16 @@ class Activity(Window, gtk.Container):
if self._updating_jobject: if self._updating_jobject:
return 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: if self._preview is None:
self.metadata['preview'] = '' self.metadata['preview'] = ''
else: else:
self.metadata['preview'] = self._preview self.metadata['preview'] = self._preview
try: try:
if self._jobject.file_path: if self._jobject.file_path:
self.write_file(self._jobject.file_path) self.write_file(self._jobject.file_path)