示例#1
0
    def test_flush_migration_bot_contributions_action(self):
        created_exploration_ids = ['exp_1', 'exp_2']
        edited_exploration_ids = ['exp_3', 'exp_4']
        user_services.create_user_contributions(feconf.MIGRATION_BOT_USER_ID,
                                                created_exploration_ids,
                                                edited_exploration_ids)

        migration_bot_contributions_model = (
            user_services.get_user_contributions(feconf.MIGRATION_BOT_USER_ID))
        self.assertEqual(
            migration_bot_contributions_model.created_exploration_ids,
            created_exploration_ids)
        self.assertEqual(
            migration_bot_contributions_model.edited_exploration_ids,
            edited_exploration_ids)
        self.login(self.ADMIN_EMAIL, is_super_admin=True)
        csrf_token = self.get_new_csrf_token()

        self.post_json('/adminhandler',
                       {'action': 'flush_migration_bot_contribution_data'},
                       csrf_token=csrf_token)

        migration_bot_contributions_model = (
            user_services.get_user_contributions(feconf.MIGRATION_BOT_USER_ID))
        self.assertEqual(
            migration_bot_contributions_model.created_exploration_ids, [])
        self.assertEqual(
            migration_bot_contributions_model.edited_exploration_ids, [])
示例#2
0
 def setUp(self):
     super(UserContributionsTests, self).setUp()
     self.signup(self.OWNER_EMAIL, self.OWNER_USERNAME)
     self.owner_id = self.get_user_id_from_email(self.OWNER_EMAIL)
     self.user_contributions = user_services.get_user_contributions(
         self.owner_id)
     self.user_contributions.validate()
示例#3
0
    def test_update_user_contributions(self):
        user_services.update_user_contributions(self.owner_id, ['e1'], ['e2'])

        contributions = user_services.get_user_contributions(self.owner_id)
        self.assertEqual(contributions.user_id, self.owner_id)
        self.assertEqual(contributions.created_exploration_ids, ['e1'])
        self.assertEqual(contributions.edited_exploration_ids, ['e2'])
示例#4
0
文件: profile.py 项目: ivanDad/oppiaV
    def get(self, username):
        """Handles GET requests."""
        if not username:
            raise self.PageNotFoundException

        user_settings = user_services.get_user_settings_from_username(username)
        if not user_settings:
            raise self.PageNotFoundException

        created_exp_summary_dicts = []
        edited_exp_summary_dicts = []

        subscriber_ids = subscription_services.get_all_subscribers_of_creator(
            user_settings.user_id)
        is_already_subscribed = (self.user_id in subscriber_ids)
        is_user_visiting_own_profile = (self.user_id == user_settings.user_id)

        user_contributions = user_services.get_user_contributions(
            user_settings.user_id)
        if user_contributions:
            created_exp_summary_dicts = (
                summary_services.
                get_displayable_exp_summary_dicts_matching_ids(
                    user_contributions.created_exploration_ids))
            edited_exp_summary_dicts = (
                summary_services.
                get_displayable_exp_summary_dicts_matching_ids(
                    user_contributions.edited_exploration_ids))
        profile_is_of_current_user = (self.username == username)

        self.values.update({
            'profile_is_of_current_user':
            profile_is_of_current_user,
            'profile_username':
            user_settings.username,
            'user_bio':
            user_settings.user_bio,
            'subject_interests':
            user_settings.subject_interests,
            'first_contribution_msec':
            (user_settings.first_contribution_msec
             if user_settings.first_contribution_msec else None),
            'profile_picture_data_url':
            user_settings.profile_picture_data_url,
            'user_impact_score':
            user_services.get_user_impact_score(user_settings.user_id),
            'created_exp_summary_dicts':
            created_exp_summary_dicts,
            'edited_exp_summary_dicts':
            edited_exp_summary_dicts,
            'is_already_subscribed':
            is_already_subscribed,
            'is_user_visiting_own_profile':
            is_user_visiting_own_profile
        })
        self.render_json(self.values)
示例#5
0
    def map(item):
        user_contributions = user_services.get_user_contributions(item.id)
        user_is_creator = user_contributions and (
            user_contributions.created_exploration_ids
            or user_contributions.edited_exploration_ids)

        if user_is_creator:
            user_services.update_user_default_dashboard(
                item.id, constants.DASHBOARD_TYPE_CREATOR)
        else:
            user_services.update_user_default_dashboard(
                item.id, constants.DASHBOARD_TYPE_LEARNER)
示例#6
0
文件: main.py 项目: vinayb21/oppia
    def get(self):
        if self.user_id and user_services.has_fully_registered(self.user_id):
            user_contributions = user_services.get_user_contributions(
                self.user_id)

            # 'Creator' is a user who has created or edited an exploration.
            user_is_creator = (
                len(user_contributions.created_exploration_ids) > 0 or
                len(user_contributions.edited_exploration_ids) > 0)
            if user_is_creator:
                self.redirect(feconf.DASHBOARD_URL)
            else:
                self.redirect(feconf.LIBRARY_INDEX_URL)
        else:
            self.redirect(feconf.SPLASH_URL)
示例#7
0
文件: main.py 项目: DSeanLaw/oppia
    def get(self):
        if self.user_id and user_services.has_fully_registered(self.user_id):
            user_contributions = user_services.get_user_contributions(
                self.user_id)

            # 'Creator' is a user who has created or edited an exploration.
            user_is_creator = (
                user_contributions is not None and
                (len(user_contributions.created_exploration_ids) > 0 or
                 len(user_contributions.edited_exploration_ids) > 0))
            if user_is_creator:
                self.redirect(feconf.DASHBOARD_URL)
            else:
                self.redirect(feconf.LIBRARY_INDEX_URL)
        else:
            self.redirect(feconf.SPLASH_URL)
示例#8
0
文件: profile.py 项目: DSeanLaw/oppia
    def get(self, username):
        """Handles GET requests."""
        if not username:
            raise self.PageNotFoundException

        user_settings = user_services.get_user_settings_from_username(username)
        if not user_settings:
            raise self.PageNotFoundException

        created_exp_summary_dicts = []
        edited_exp_summary_dicts = []

        subscriber_ids = subscription_services.get_all_subscribers_of_creator(
            user_settings.user_id)
        is_already_subscribed = (self.user_id in subscriber_ids)
        is_user_visiting_own_profile = (self.user_id == user_settings.user_id)

        user_contributions = user_services.get_user_contributions(
            user_settings.user_id)
        if user_contributions:
            created_exp_summary_dicts = (
                summary_services.get_displayable_exp_summary_dicts_matching_ids(
                    user_contributions.created_exploration_ids))
            edited_exp_summary_dicts = (
                summary_services.get_displayable_exp_summary_dicts_matching_ids(
                    user_contributions.edited_exploration_ids))
        profile_is_of_current_user = (self.username == username)

        self.values.update({
            'profile_is_of_current_user': profile_is_of_current_user,
            'profile_username': user_settings.username,
            'user_bio': user_settings.user_bio,
            'subject_interests': user_settings.subject_interests,
            'first_contribution_msec': (
                user_settings.first_contribution_msec
                if user_settings.first_contribution_msec else None),
            'profile_picture_data_url': user_settings.profile_picture_data_url,
            'user_impact_score':user_services.get_user_impact_score(
                user_settings.user_id),
            'created_exp_summary_dicts': created_exp_summary_dicts,
            'edited_exp_summary_dicts': edited_exp_summary_dicts,
            'is_already_subscribed': is_already_subscribed,
            'is_user_visiting_own_profile': is_user_visiting_own_profile
        })
        self.render_json(self.values)
示例#9
0
    def reduce(key, version_and_exp_ids):
        """Implements the reduce function for this job."""
        created_exploration_ids = set()
        edited_exploration_ids = set()

        edits = [ast.literal_eval(v) for v in version_and_exp_ids]
        for edit in edits:
            edited_exploration_ids.add(edit['exploration_id'])
            if edit['version_string'] == '1':
                created_exploration_ids.add(edit['exploration_id'])

        if user_services.get_user_contributions(key, strict=False) is not None:
            user_services.update_user_contributions(
                key, list(created_exploration_ids),
                list(edited_exploration_ids))
        else:
            user_services.create_user_contributions(
                key, list(created_exploration_ids),
                list(edited_exploration_ids))
示例#10
0
    def get(self, username):
        """Handles GET requests."""
        if not username:
            raise self.PageNotFoundException

        user_settings = user_services.get_user_settings_from_username(username)
        if not user_settings:
            raise self.PageNotFoundException

        created_exploration_summary_dicts = []
        edited_exploration_summary_dicts = []

        user_contributions = user_services.get_user_contributions(
            user_settings.user_id)
        if user_contributions:
            created_exploration_summary_dicts = (
                summary_services.
                get_displayable_exp_summary_dicts_matching_ids(
                    user_contributions.created_exploration_ids))
            edited_exploration_summary_dicts = (
                summary_services.
                get_displayable_exp_summary_dicts_matching_ids(
                    user_contributions.edited_exploration_ids))

        self.values.update({
            'user_bio':
            user_settings.user_bio,
            'subject_interests':
            user_settings.subject_interests,
            'first_contribution_msec':
            (user_settings.first_contribution_msec
             if user_settings.first_contribution_msec else None),
            'profile_picture_data_url':
            user_settings.profile_picture_data_url,
            'user_impact_score':
            user_services.get_user_impact_score(user_settings.user_id),
            'created_exploration_summary_dicts':
            (created_exploration_summary_dicts),
            'edited_exploration_summary_dicts':
            (edited_exploration_summary_dicts)
        })
        self.render_json(self.values)
示例#11
0
    def reduce(key, version_and_exp_ids):

        created_exploration_ids = set()
        edited_exploration_ids = set()

        edits = [ast.literal_eval(v) for v in version_and_exp_ids]

        for edit in edits:
            edited_exploration_ids.add(edit['exploration_id'])
            if edit['version_string'] == '1':
                created_exploration_ids.add(edit['exploration_id'])

        if user_services.get_user_contributions(key, strict=False) is not None:
            user_services.update_user_contributions(
                key, list(created_exploration_ids), list(
                    edited_exploration_ids))
        else:
            user_services.create_user_contributions(
                key, list(created_exploration_ids), list(
                    edited_exploration_ids))
示例#12
0
文件: profile.py 项目: dpaparis/oppia
    def get(self, username):
        """Handles GET requests."""
        if not username:
            raise self.PageNotFoundException

        user_settings = user_services.get_user_settings_from_username(username)
        if not user_settings:
            raise self.PageNotFoundException

        created_exploration_summary_dicts = []
        edited_exploration_summary_dicts = []

        user_contributions = user_services.get_user_contributions(
            user_settings.user_id)
        if user_contributions:
            created_exploration_summary_dicts = (
                exp_services.get_displayable_exp_summary_dicts_matching_ids(
                    user_contributions.created_exploration_ids,
                    user_settings.user_id))
            edited_exploration_summary_dicts = (
                exp_services.get_displayable_exp_summary_dicts_matching_ids(
                    user_contributions.edited_exploration_ids,
                    user_settings.user_id))

        self.values.update({
            'user_bio': user_settings.user_bio,
            'subject_interests': user_settings.subject_interests,
            'first_contribution_msec': (
                user_settings.first_contribution_msec
                if user_settings.first_contribution_msec else None),
            'profile_picture_data_url': user_settings.profile_picture_data_url,
            'user_impact_score':user_services.get_user_impact_score(
                user_settings.user_id),
            'created_exploration_summary_dicts': (
                created_exploration_summary_dicts),
            'edited_exploration_summary_dicts': (
                edited_exploration_summary_dicts)
        })
        self.render_json(self.values)