Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/src/sugar/activity/activityhandle.py
blob: f255fd50a802935dcaf209954a69604dda7c61a7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
# Copyright (C) 2006-2007 Red Hat, Inc.
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2 of the License, or (at your option) any later version.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this library; if not, write to the
# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
# Boston, MA 02111-1307, USA.

"""
STABLE.
"""

class ActivityHandle(object):
    """Data structure storing simple activity metadata"""
    def __init__(
        self, activity_id=None, object_id=None, uri=None
    ):
        """Initialise the handle from activity_id
        
        activity_id -- unique id for the activity to be
            created
        object_id -- identity of the journal object 
            associated with the activity. It was used by 
            the journal prototype implementation, might 
            change when we do the real one. 
            
            When you resume an activity from the journal 
            the object_id will be passed in. It's optional 
            since new activities does not have an 
            associated object (yet).
            
            XXX Not clear how this relates to the activity
            id yet, i.e. not sure we really need both. TBF
        uri -- URI associated with the activity. Used when 
            opening an external file or resource in the 
            activity, rather than a journal object 
            (downloads stored on the file system for 
            example or web pages)
        """
        self.activity_id = activity_id
        self.object_id = object_id
        self.uri = uri

    def get_dict(self):
        """Retrieve our settings as a dictionary"""
        result = { 'activity_id' : self.activity_id }
        if self.object_id:
            result['object_id'] = self.object_id
        if self.uri:
            result['uri'] = self.uri

        return result

def create_from_dict(handle_dict):
    """Create a handle from a dictionary of parameters"""
    result = ActivityHandle(
        handle_dict['activity_id'],
        object_id = handle_dict.get('object_id'),
        uri = handle_dict.get('uri'),
    )
    return result