Beispiel #1
0
    def _get_exploration_data(
            self, exploration_id, apply_draft=False, version=None):
        """Returns a description of the given exploration."""
        try:
            if apply_draft:
                exploration = exp_services.get_exp_with_draft_applied(
                    exploration_id, self.user_id)
            else:
                exploration = exp_services.get_exploration_by_id(
                    exploration_id, version=version)
        except:
            raise self.PageNotFoundException

        states = {}
        for state_name in exploration.states:
            state_dict = exploration.states[state_name].to_dict()
            state_dict['unresolved_answers'] = (
                stats_services.get_top_unresolved_answers_for_default_rule(
                    exploration_id, state_name))
            states[state_name] = state_dict
        exp_user_data = user_models.ExplorationUserDataModel.get(
            self.user_id, exploration_id)
        draft_changes = (exp_user_data.draft_change_list if exp_user_data
                         and exp_user_data.draft_change_list else None)
        is_version_of_draft_valid = (
            exp_services.is_version_of_draft_valid(
                exploration_id, exp_user_data.draft_change_list_exp_version)
            if exp_user_data and exp_user_data.draft_change_list_exp_version
            else None)
        exploration_email_preferences = (
            user_services.get_email_preferences_for_exploration(
                self.user_id, exploration_id))
        editor_dict = {
            'category': exploration.category,
            'exploration_id': exploration_id,
            'init_state_name': exploration.init_state_name,
            'language_code': exploration.language_code,
            'objective': exploration.objective,
            'param_changes': exploration.param_change_dicts,
            'param_specs': exploration.param_specs_dict,
            'rights': rights_manager.get_exploration_rights(
                exploration_id).to_dict(),
            'show_state_editor_tutorial_on_load': (
                self.user_id and not self.has_seen_editor_tutorial),
            'skin_customizations': exploration.skin_instance.to_dict()[
                'skin_customizations'],
            'states': states,
            'tags': exploration.tags,
            'title': exploration.title,
            'version': exploration.version,
            'is_version_of_draft_valid': is_version_of_draft_valid,
            'draft_changes': draft_changes,
            'email_preferences': exploration_email_preferences.to_dict()
        }

        return editor_dict
Beispiel #2
0
    def _get_exploration_data(self, exploration_id, version=None):
        """Returns a description of the given exploration."""
        try:
            exploration = exp_services.get_exploration_by_id(exploration_id,
                                                             version=version)
        except:
            raise self.PageNotFoundException

        states = {}
        for state_name in exploration.states:
            state_dict = exploration.states[state_name].to_dict()
            state_dict['unresolved_answers'] = (
                stats_services.get_top_unresolved_answers_for_default_rule(
                    exploration_id, state_name))
            states[state_name] = state_dict

        editor_dict = {
            'category':
            exploration.category,
            'exploration_id':
            exploration_id,
            'init_state_name':
            exploration.init_state_name,
            'language_code':
            exploration.language_code,
            'objective':
            exploration.objective,
            'param_changes':
            exploration.param_change_dicts,
            'param_specs':
            exploration.param_specs_dict,
            'rights':
            rights_manager.get_exploration_rights(exploration_id).to_dict(),
            'show_state_editor_tutorial_on_load':
            (self.user_id and not self.user_has_started_state_editor_tutorial),
            'skin_customizations':
            exploration.skin_instance.to_dict()['skin_customizations'],
            'states':
            states,
            'tags':
            exploration.tags,
            'title':
            exploration.title,
            'version':
            exploration.version,
        }

        if feconf.SHOW_SKIN_CHOOSER:
            editor_dict['all_skin_ids'] = (
                skins_services.Registry.get_all_skin_ids())
            editor_dict['default_skin_id'] = exploration.default_skin

        return editor_dict
Beispiel #3
0
    def _get_exploration_data(
            self, exploration_id, apply_draft=False, version=None):
        """Returns a description of the given exploration."""
        try:
            if apply_draft:
                exploration = exp_services.get_exp_with_draft_applied(
                    exploration_id, self.user_id)
            else:
                exploration = exp_services.get_exploration_by_id(
                    exploration_id, version=version)
        except:
            raise self.PageNotFoundException

        states = {}
        for state_name in exploration.states:
            state_dict = exploration.states[state_name].to_dict()
            state_dict['unresolved_answers'] = (
                stats_services.get_top_unresolved_answers_for_default_rule(
                    exploration_id, state_name))
            states[state_name] = state_dict
        exp_user_data = user_models.ExplorationUserDataModel.get(
            self.user_id, exploration_id)
        draft_changes = (exp_user_data.draft_change_list if exp_user_data
                         and exp_user_data.draft_change_list else None)
        is_version_of_draft_valid = (
            exp_services.is_version_of_draft_valid(
                exploration_id, exp_user_data.draft_change_list_exp_version)
            if exp_user_data and exp_user_data.draft_change_list_exp_version
            else None)
        editor_dict = {
            'category': exploration.category,
            'exploration_id': exploration_id,
            'init_state_name': exploration.init_state_name,
            'language_code': exploration.language_code,
            'objective': exploration.objective,
            'param_changes': exploration.param_change_dicts,
            'param_specs': exploration.param_specs_dict,
            'rights': rights_manager.get_exploration_rights(
                exploration_id).to_dict(),
            'show_state_editor_tutorial_on_load': (
                self.user_id and not self.has_seen_editor_tutorial),
            'skin_customizations': exploration.skin_instance.to_dict()[
                'skin_customizations'],
            'states': states,
            'tags': exploration.tags,
            'title': exploration.title,
            'version': exploration.version,
            'is_version_of_draft_valid': is_version_of_draft_valid,
            'draft_changes': draft_changes
        }

        return editor_dict
    def test_get_top_unresolved_answers(self):
        self.assertEquals(
            stats_services.get_top_unresolved_answers_for_default_rule(
                'eid', 'sid'), {})

        event_services.AnswerSubmissionEventHandler.record(
            'eid', 1, 'sid', self.DEFAULT_RULESPEC_STR, 'a1')
        self.assertEquals(
            stats_services.get_top_unresolved_answers_for_default_rule(
                'eid', 'sid'), {'a1': 1})

        event_services.AnswerSubmissionEventHandler.record(
            'eid', 1, 'sid', self.DEFAULT_RULESPEC_STR, 'a1')
        self.assertEquals(
            stats_services.get_top_unresolved_answers_for_default_rule(
                'eid', 'sid'), {'a1': 2})

        event_services.DefaultRuleAnswerResolutionEventHandler.record(
            'eid', 'sid', ['a1'])
        self.assertEquals(
            stats_services.get_top_unresolved_answers_for_default_rule(
                'eid', 'sid'), {})
Beispiel #5
0
    def test_get_top_unresolved_answers(self):
        self.assertEquals(
            stats_services.get_top_unresolved_answers_for_default_rule(
                'eid', 'sid'), {})

        event_services.AnswerSubmissionEventHandler.record(
            'eid', 1, 'sid', self.DEFAULT_RULESPEC_STR, 'a1')
        self.assertEquals(
            stats_services.get_top_unresolved_answers_for_default_rule(
                'eid', 'sid'), {'a1': 1})

        event_services.AnswerSubmissionEventHandler.record(
            'eid', 1, 'sid', self.DEFAULT_RULESPEC_STR, 'a1')
        self.assertEquals(
            stats_services.get_top_unresolved_answers_for_default_rule(
                'eid', 'sid'), {'a1': 2})

        event_services.DefaultRuleAnswerResolutionEventHandler.record(
            'eid', 'sid', ['a1'])
        self.assertEquals(
            stats_services.get_top_unresolved_answers_for_default_rule(
                'eid', 'sid'), {})
Beispiel #6
0
    def _get_exploration_data(self, exploration_id, version=None):
        """Returns a description of the given exploration."""
        try:
            exploration = exp_services.get_exploration_by_id(
                exploration_id, version=version)
        except:
            raise self.PageNotFoundException

        states = {}
        for state_name in exploration.states:
            state_dict = exploration.states[state_name].to_dict()
            state_dict['unresolved_answers'] = (
                stats_services.get_top_unresolved_answers_for_default_rule(
                    exploration_id, state_name))
            states[state_name] = state_dict

        editor_dict = {
            'category': exploration.category,
            'exploration_id': exploration_id,
            'init_state_name': exploration.init_state_name,
            'language_code': exploration.language_code,
            'objective': exploration.objective,
            'param_changes': exploration.param_change_dicts,
            'param_specs': exploration.param_specs_dict,
            'rights': rights_manager.get_exploration_rights(
                exploration_id).to_dict(),
            'show_state_editor_tutorial_on_load': (
                self.user_id and not
                self.user_has_started_state_editor_tutorial),
            'skin_customizations': exploration.skin_instance.to_dict()[
                'skin_customizations'],
            'states': states,
            'tags': exploration.tags,
            'title': exploration.title,
            'version': exploration.version,
        }

        if feconf.SHOW_SKIN_CHOOSER:
            editor_dict['all_skin_ids'] = (
                skins_services.Registry.get_all_skin_ids())
            editor_dict['default_skin_id'] = exploration.default_skin

        return editor_dict
Beispiel #7
0
    def _get_exploration_data(self, exploration_id):
        """Returns a description of the given exploration."""
        try:
            exploration = exp_services.get_exploration_by_id(exploration_id)
        except:
            raise self.PageNotFoundException

        states = {}
        for state_name in exploration.states:
            state_frontend_dict = exploration.export_state_to_frontend_dict(
                state_name)
            state_frontend_dict['unresolved_answers'] = (
                stats_services.get_top_unresolved_answers_for_default_rule(
                    exploration_id, state_name))
            states[state_name] = state_frontend_dict

        editor_dict = {
            'exploration_id': exploration_id,
            'init_state_name': exploration.init_state_name,
            'category': exploration.category,
            'objective': exploration.objective,
            'title': exploration.title,
            'states': states,
            'param_changes': exploration.param_change_dicts,
            'param_specs': exploration.param_specs_dict,
            'version': exploration.version,
            'rights': rights_manager.get_exploration_rights(
                exploration_id).to_dict(),
        }

        if feconf.SHOW_SKIN_CHOOSER:
            editor_dict['all_skin_ids'] = (
                skins_services.Registry.get_all_skin_ids())
            editor_dict['default_skin_id'] = exploration.default_skin

        return editor_dict