def get(self): """Handles GET requests for group pages.""" # TODO(sll): Support index pages for other language codes. group_name = self.normalized_request.get('group_name') activity_list = [] header_i18n_id = '' if group_name == feconf.LIBRARY_GROUP_RECENTLY_PUBLISHED: recently_published_summary_dicts = ( summary_services.get_recently_published_exp_summary_dicts( feconf.RECENTLY_PUBLISHED_QUERY_LIMIT_FULL_PAGE)) if recently_published_summary_dicts: activity_list = recently_published_summary_dicts header_i18n_id = feconf.LIBRARY_CATEGORY_RECENTLY_PUBLISHED elif group_name == feconf.LIBRARY_GROUP_TOP_RATED: top_rated_activity_summary_dicts = ( summary_services.get_top_rated_exploration_summary_dicts( [constants.DEFAULT_LANGUAGE_CODE], feconf.NUMBER_OF_TOP_RATED_EXPLORATIONS_FULL_PAGE)) if top_rated_activity_summary_dicts: activity_list = top_rated_activity_summary_dicts header_i18n_id = feconf.LIBRARY_CATEGORY_TOP_RATED_EXPLORATIONS preferred_language_codes = [constants.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 self.values.update({ 'activity_list': activity_list, 'header_i18n_id': header_i18n_id, 'preferred_language_codes': preferred_language_codes, }) self.render_json(self.values)
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_exp_summary_dicts( feconf.RECENTLY_PUBLISHED_QUERY_LIMIT_FOR_LIBRARY_PAGE)) top_rated_activity_summary_dicts = ( summary_services.get_top_rated_exploration_summary_dicts( [feconf.DEFAULT_LANGUAGE_CODE], feconf.NUMBER_OF_TOP_RATED_EXPLORATIONS_FOR_LIBRARY_PAGE)) 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_i18n_id': feconf.LIBRARY_CATEGORY_RECENTLY_PUBLISHED, 'has_full_results_page': True, 'full_results_url': feconf.LIBRARY_RECENTLY_PUBLISHED_URL, 'protractor_id': 'recently-published', }) if top_rated_activity_summary_dicts: summary_dicts_by_category.insert(0, { 'activity_summary_dicts': top_rated_activity_summary_dicts, 'categories': [], 'header_i18n_id': ( feconf.LIBRARY_CATEGORY_TOP_RATED_EXPLORATIONS), 'has_full_results_page': True, 'full_results_url': feconf.LIBRARY_TOP_RATED_URL, 'protractor_id': 'top-rated', }) if featured_activity_summary_dicts: summary_dicts_by_category.insert(0, { 'activity_summary_dicts': featured_activity_summary_dicts, 'categories': [], 'header_i18n_id': feconf.LIBRARY_CATEGORY_FEATURED_ACTIVITIES, 'has_full_results_page': False, 'full_results_url': None, }) self.values.update({ 'activity_summary_dicts_by_category': ( summary_dicts_by_category), 'preferred_language_codes': preferred_language_codes, }) self.render_json(self.values)
def get(self): """Handles GET requests for group pages.""" # TODO(sll): Support index pages for other language codes. group_name = self.request.get('group_name') activity_list = [] header_i18n_id = '' if group_name == feconf.LIBRARY_GROUP_RECENTLY_PUBLISHED: recently_published_summary_dicts = ( summary_services.get_recently_published_exp_summary_dicts( feconf.RECENTLY_PUBLISHED_QUERY_LIMIT_FULL_PAGE)) if recently_published_summary_dicts: activity_list = recently_published_summary_dicts header_i18n_id = feconf.LIBRARY_CATEGORY_RECENTLY_PUBLISHED elif group_name == feconf.LIBRARY_GROUP_TOP_RATED: top_rated_activity_summary_dicts = ( summary_services.get_top_rated_exploration_summary_dicts( [feconf.DEFAULT_LANGUAGE_CODE], feconf.NUMBER_OF_TOP_RATED_EXPLORATIONS_FULL_PAGE)) if top_rated_activity_summary_dicts: activity_list = top_rated_activity_summary_dicts header_i18n_id = feconf.LIBRARY_CATEGORY_TOP_RATED_EXPLORATIONS # TODO: create a Splash controller and implement this properly. elif group_name == feconf.LIBRARY_CATEGORY_SPLASH_PAGE_FEATURED: splash_page_featured_exploration_ids = [ '0', 'yvqBFOQNDz5e', 'BvpDpLSmO2Iu', 'gC4_ggkWar-L' ] activity_list = (summary_services. get_displayable_exp_summary_dicts_matching_ids( splash_page_featured_exploration_ids)) else: return self.PageNotFoundException 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 self.values.update({ 'activity_list': activity_list, 'header_i18n_id': header_i18n_id, 'preferred_language_codes': preferred_language_codes, }) self.render_json(self.values)
def get(self): """Handles GET requests for group pages.""" # TODO(sll): Support index pages for other language codes. group_name = self.request.get('group_name') activity_list = [] header_i18n_id = '' if group_name == feconf.LIBRARY_GROUP_RECENTLY_PUBLISHED: recently_published_summary_dicts = ( summary_services.get_recently_published_exp_summary_dicts( feconf.RECENTLY_PUBLISHED_QUERY_LIMIT_FULL_PAGE)) if recently_published_summary_dicts: activity_list = recently_published_summary_dicts header_i18n_id = feconf.LIBRARY_CATEGORY_RECENTLY_PUBLISHED elif group_name == feconf.LIBRARY_GROUP_TOP_RATED: top_rated_activity_summary_dicts = ( summary_services.get_top_rated_exploration_summary_dicts( [feconf.DEFAULT_LANGUAGE_CODE], feconf.NUMBER_OF_TOP_RATED_EXPLORATIONS_FULL_PAGE)) if top_rated_activity_summary_dicts: activity_list = top_rated_activity_summary_dicts header_i18n_id = feconf.LIBRARY_CATEGORY_TOP_RATED_EXPLORATIONS # TODO: create a Splash controller and implement this properly. elif group_name == feconf.LIBRARY_CATEGORY_SPLASH_PAGE_FEATURED: splash_page_featured_exploration_ids = [ '0', 'yvqBFOQNDz5e', 'BvpDpLSmO2Iu', 'gC4_ggkWar-L'] activity_list = ( summary_services.get_displayable_exp_summary_dicts_matching_ids( splash_page_featured_exploration_ids)) else: return self.PageNotFoundException 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 self.values.update({ 'activity_list': activity_list, 'header_i18n_id': header_i18n_id, 'preferred_language_codes': preferred_language_codes, }) self.render_json(self.values)
def get(self): """Handles GET requests for group pages.""" # TODO(sll): Support index pages for other language codes. group_name = self.request.get('group_name') activity_list = [] header_i18n_id = '' if group_name == feconf.LIBRARY_GROUP_RECENTLY_PUBLISHED: recently_published_summary_dicts = ( summary_services.get_recently_published_exp_summary_dicts( feconf.RECENTLY_PUBLISHED_QUERY_LIMIT_FULL_PAGE)) if recently_published_summary_dicts: activity_list = recently_published_summary_dicts header_i18n_id = feconf.LIBRARY_CATEGORY_RECENTLY_PUBLISHED elif group_name == feconf.LIBRARY_GROUP_TOP_RATED: top_rated_activity_summary_dicts = ( summary_services.get_top_rated_exploration_summary_dicts( [feconf.DEFAULT_LANGUAGE_CODE], feconf.NUMBER_OF_TOP_RATED_EXPLORATIONS_FULL_PAGE)) if top_rated_activity_summary_dicts: activity_list = top_rated_activity_summary_dicts header_i18n_id = feconf.LIBRARY_CATEGORY_TOP_RATED_EXPLORATIONS else: return self.PageNotFoundException 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 self.values.update({ 'activity_list': activity_list, 'header_i18n_id': header_i18n_id, 'preferred_language_codes': preferred_language_codes, }) self.render_json(self.values)
def test_for_recently_published_explorations(self): """Tests for recently published explorations.""" self.process_and_flush_pending_tasks() recently_published_exploration_summaries = ( summary_services.get_recently_published_exp_summary_dicts( feconf.RECENTLY_PUBLISHED_QUERY_LIMIT_FOR_LIBRARY_PAGE)) test_summary_1 = { 'status': 'public', 'thumbnail_bg_color': '#a33f40', 'community_owned': False, 'tags': [], 'thumbnail_icon_url': '/subjects/Lightbulb.svg', 'language_code': constants.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': '/subjects/Lightbulb.svg', 'language_code': constants.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': '/subjects/Lightbulb.svg', 'language_code': constants.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, [exp_domain.ExplorationChange({ 'cmd': 'edit_exploration_property', 'property_name': 'title', 'new_value': 'New title' })], 'Changed title.') self.process_and_flush_pending_tasks() recently_published_exploration_summaries = ( summary_services.get_recently_published_exp_summary_dicts( feconf.RECENTLY_PUBLISHED_QUERY_LIMIT_FOR_LIBRARY_PAGE)) self.assertEqual( recently_published_exploration_summaries[1]['title'], 'New title') self.assertDictContainsSubset( test_summary_3, recently_published_exploration_summaries[0])
def test_for_recently_published_explorations(self): """ Tests for recently published explorations. """ recently_published_exploration_summaries = ( summary_services.get_recently_published_exp_summary_dicts( feconf.RECENTLY_PUBLISHED_QUERY_LIMIT_FOR_LIBRARY_PAGE)) 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_exp_summary_dicts( feconf.RECENTLY_PUBLISHED_QUERY_LIMIT_FOR_LIBRARY_PAGE)) self.assertEqual( recently_published_exploration_summaries[1]['title'], 'New title') self.assertDictContainsSubset( test_summary_3, recently_published_exploration_summaries[0])