Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/tutorius/creator.py
diff options
context:
space:
mode:
Diffstat (limited to 'tutorius/creator.py')
-rw-r--r--tutorius/creator.py28
1 files changed, 20 insertions, 8 deletions
diff --git a/tutorius/creator.py b/tutorius/creator.py
index 9b1b9bf..6ba7011 100644
--- a/tutorius/creator.py
+++ b/tutorius/creator.py
@@ -44,6 +44,8 @@ from dbus import SessionBus
from dbus.service import method, Object, BusName
from .dbustools import ignore
+from jarabe.model import bundleregistry
+
import logging
LOGGER = logging.getLogger("creator")
@@ -410,14 +412,24 @@ class Creator(Object):
vault.INI_NAME_PROPERTY: tutorial_name,
vault.INI_VERSION_PROPERTY: '1',
}
- # FIXME : The environment does not dispose of the appropriate
- # variables to inform the creator at this point. We will
- # need to iterate inside all the actions and remember
- # their sources.
-
- # FIXME : I insist. This is a hack.
- related_activities_dict = {}
- related_activities_dict['calculate'] = '27'
+
+ related_activities_dict ={}
+ activity_set = set()
+
+ for state_name in self._tutorial.get_state_dict().keys():
+ for action in self._tutorial.get_action_dict(state_name).values():
+ if action.source is not None:
+ activity_set.add(action.source)
+
+ for event,next_state in self._tutorial.get_transition_dict(state_name).values():
+ if event.source is not None:
+ activity_set.add(event.source)
+
+ reg = bundleregistry.get_registry()
+ for activity_name in activity_set:
+ bundle = reg.get_bundle(activity_name)
+ if bundle is not None:
+ related_activities_dict[activity_name] = str(bundle.get_activity_version())
self._metadata['activities'] = dict(related_activities_dict)