diff options
Diffstat (limited to 'tutorius/creator.py')
-rw-r--r-- | tutorius/creator.py | 28 |
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) |