Пример #1
0
    def get(self):
        """Handles GET requests."""
        # TODO(sll): Support index pages for other language codes.
        summary_dicts_by_category = summary_services.get_library_groups(
            [feconf.DEFAULT_LANGUAGE_CODE])
        recently_published_summary_dicts = (
            summary_services.get_recently_published_exploration_summary_dicts(
            ))
        top_rated_activity_summary_dicts = (
            summary_services.get_top_rated_exploration_summary_dicts(
                [feconf.DEFAULT_LANGUAGE_CODE]))
        featured_activity_summary_dicts = (
            summary_services.get_featured_activity_summary_dicts(
                [feconf.DEFAULT_LANGUAGE_CODE]))

        preferred_language_codes = [feconf.DEFAULT_LANGUAGE_CODE]
        if self.user_id:
            user_settings = user_services.get_user_settings(self.user_id)
            preferred_language_codes = user_settings.preferred_language_codes

        if recently_published_summary_dicts:
            summary_dicts_by_category.insert(
                0, {
                    'activity_summary_dicts': recently_published_summary_dicts,
                    'categories': [],
                    'header': feconf.LIBRARY_CATEGORY_RECENTLY_PUBLISHED,
                })
        if top_rated_activity_summary_dicts:
            summary_dicts_by_category.insert(
                0, {
                    'activity_summary_dicts': top_rated_activity_summary_dicts,
                    'categories': [],
                    'header': feconf.LIBRARY_CATEGORY_TOP_RATED_EXPLORATIONS,
                })
        if featured_activity_summary_dicts:
            summary_dicts_by_category.insert(
                0, {
                    'activity_summary_dicts': featured_activity_summary_dicts,
                    'categories': [],
                    'header': feconf.LIBRARY_CATEGORY_FEATURED_ACTIVITIES,
                })

        self.values.update({
            'activity_summary_dicts_by_category': (summary_dicts_by_category),
            'preferred_language_codes':
            preferred_language_codes,
        })
        self.render_json(self.values)
Пример #2
0
    def get(self):
        """Handles GET requests."""
        # TODO(sll): Support index pages for other language codes.
        summary_dicts_by_category = summary_services.get_library_groups([
            feconf.DEFAULT_LANGUAGE_CODE])
        recently_published_summary_dicts = (
            summary_services.get_recently_published_exploration_summary_dicts())
        top_rated_activity_summary_dicts = (
            summary_services.get_top_rated_exploration_summary_dicts(
                [feconf.DEFAULT_LANGUAGE_CODE]))
        featured_activity_summary_dicts = (
            summary_services.get_featured_activity_summary_dicts(
                [feconf.DEFAULT_LANGUAGE_CODE]))

        preferred_language_codes = [feconf.DEFAULT_LANGUAGE_CODE]
        if self.user_id:
            user_settings = user_services.get_user_settings(self.user_id)
            preferred_language_codes = user_settings.preferred_language_codes

        if recently_published_summary_dicts:
            summary_dicts_by_category.insert(0, {
                'activity_summary_dicts': recently_published_summary_dicts,
                'categories': [],
                'header': feconf.LIBRARY_CATEGORY_RECENTLY_PUBLISHED,
            })
        if top_rated_activity_summary_dicts:
            summary_dicts_by_category.insert(0, {
                'activity_summary_dicts': top_rated_activity_summary_dicts,
                'categories': [],
                'header': feconf.LIBRARY_CATEGORY_TOP_RATED_EXPLORATIONS,
            })
        if featured_activity_summary_dicts:
            summary_dicts_by_category.insert(0, {
                'activity_summary_dicts': featured_activity_summary_dicts,
                'categories': [],
                'header': feconf.LIBRARY_CATEGORY_FEATURED_ACTIVITIES,
            })

        self.values.update({
            'activity_summary_dicts_by_category': (
                summary_dicts_by_category),
            'preferred_language_codes': preferred_language_codes,
        })
        self.render_json(self.values)
Пример #3
0
    def test_for_recently_published_explorations(self):
        """ Tests for recently published explorations.
        """

        recently_published_exploration_summaries = (
            summary_services.get_recently_published_exploration_summary_dicts())
        test_summary_1 = {
            'status': 'public',
            'thumbnail_bg_color': '#a33f40',
            'community_owned': False,
            'tags': [],
            'thumbnail_icon_url': '/images/subjects/Lightbulb.svg',
            'language_code': feconf.DEFAULT_LANGUAGE_CODE,
            'id': self.EXP_ID_1,
            'category': u'A category',
            'ratings': feconf.get_empty_ratings(),
            'title': u'A title',
            'num_views': 0,
            'objective': u'An objective'
        }
        test_summary_2 = {
            'status': 'public',
            'thumbnail_bg_color': '#a33f40',
            'community_owned': False,
            'tags': [],
            'thumbnail_icon_url': '/images/subjects/Lightbulb.svg',
            'language_code': feconf.DEFAULT_LANGUAGE_CODE,
            'id': self.EXP_ID_2,
            'category': u'A category',
            'ratings': feconf.get_empty_ratings(),
            'title': u'A title',
            'num_views': 0,
            'objective': u'An objective'
        }
        test_summary_3 = {
            'status': 'public',
            'thumbnail_bg_color': '#a33f40',
            'community_owned': False,
            'tags': [],
            'thumbnail_icon_url': '/images/subjects/Lightbulb.svg',
            'language_code': feconf.DEFAULT_LANGUAGE_CODE,
            'id': self.EXP_ID_3,
            'category': u'A category',
            'ratings': feconf.get_empty_ratings(),
            'title': u'A title',
            'num_views': 0,
            'objective': u'An objective'
        }

        self.assertDictContainsSubset(
            test_summary_3, recently_published_exploration_summaries[0])
        self.assertDictContainsSubset(
            test_summary_1, recently_published_exploration_summaries[1])
        self.assertDictContainsSubset(
            test_summary_2, recently_published_exploration_summaries[2])

        # Test that editing an exploration does not change its
        # 'recently-published' status.
        exp_services.update_exploration(
            self.albert_id, self.EXP_ID_1, [{
                'cmd': 'edit_exploration_property',
                'property_name': 'title',
                'new_value': 'New title'
            }], 'Changed title.')

        recently_published_exploration_summaries = (
            summary_services.get_recently_published_exploration_summary_dicts())
        self.assertEqual(
            recently_published_exploration_summaries[1]['title'], 'New title')
        self.assertDictContainsSubset(
            test_summary_3, recently_published_exploration_summaries[0])
Пример #4
0
    def test_for_recently_published_explorations(self):
        """ Tests for recently published explorations.
        """

        recently_published_exploration_summaries = (
            summary_services.get_recently_published_exploration_summary_dicts(
            ))
        test_summary_1 = {
            'status':
            'public',
            'thumbnail_bg_color':
            '#a33f40',
            'community_owned':
            False,
            'tags': [],
            'thumbnail_icon_url':
            self.get_static_asset_url('/images/subjects/Lightbulb.svg'),
            'language_code':
            feconf.DEFAULT_LANGUAGE_CODE,
            'id':
            self.EXP_ID_1,
            'category':
            u'A category',
            'ratings':
            feconf.get_empty_ratings(),
            'title':
            u'A title',
            'num_views':
            0,
            'objective':
            u'An objective'
        }
        test_summary_2 = {
            'status':
            'public',
            'thumbnail_bg_color':
            '#a33f40',
            'community_owned':
            False,
            'tags': [],
            'thumbnail_icon_url':
            self.get_static_asset_url('/images/subjects/Lightbulb.svg'),
            'language_code':
            feconf.DEFAULT_LANGUAGE_CODE,
            'id':
            self.EXP_ID_2,
            'category':
            u'A category',
            'ratings':
            feconf.get_empty_ratings(),
            'title':
            u'A title',
            'num_views':
            0,
            'objective':
            u'An objective'
        }
        test_summary_3 = {
            'status':
            'public',
            'thumbnail_bg_color':
            '#a33f40',
            'community_owned':
            False,
            'tags': [],
            'thumbnail_icon_url':
            self.get_static_asset_url('/images/subjects/Lightbulb.svg'),
            'language_code':
            feconf.DEFAULT_LANGUAGE_CODE,
            'id':
            self.EXP_ID_3,
            'category':
            u'A category',
            'ratings':
            feconf.get_empty_ratings(),
            'title':
            u'A title',
            'num_views':
            0,
            'objective':
            u'An objective'
        }

        self.assertDictContainsSubset(
            test_summary_3, recently_published_exploration_summaries[0])
        self.assertDictContainsSubset(
            test_summary_1, recently_published_exploration_summaries[1])
        self.assertDictContainsSubset(
            test_summary_2, recently_published_exploration_summaries[2])

        # Test that editing an exploration does not change its
        # 'recently-published' status.
        exp_services.update_exploration(self.albert_id, self.EXP_ID_1,
                                        [{
                                            'cmd': 'edit_exploration_property',
                                            'property_name': 'title',
                                            'new_value': 'New title'
                                        }], 'Changed title.')

        recently_published_exploration_summaries = (
            summary_services.get_recently_published_exploration_summary_dicts(
            ))
        self.assertEqual(recently_published_exploration_summaries[1]['title'],
                         'New title')
        self.assertDictContainsSubset(
            test_summary_3, recently_published_exploration_summaries[0])