def get(self): """Handles GET requests.""" skill_summaries = skill_services.get_all_skill_summaries() skill_ids_assigned_to_some_topic = ( topic_fetchers.get_all_skill_ids_assigned_to_some_topic()) merged_skill_ids = skill_services.get_merged_skill_ids() untriaged_skill_summaries = ( skill_services.get_untriaged_skill_summaries( skill_summaries, skill_ids_assigned_to_some_topic, merged_skill_ids)) untriaged_short_skill_summaries = [ skill_domain.ShortSkillSummary.from_skill_summary(skill_summary) for skill_summary in untriaged_skill_summaries ] categorized_skills = ( skill_services.get_categorized_skill_ids_and_descriptions()) self.values.update({ 'untriaged_skill_summary_dicts': [ short_skill_summary.to_dict() for short_skill_summary in untriaged_short_skill_summaries ], 'categorized_skills_dict': categorized_skills.to_dict() }) self.render_json(self.values)
def get(self): """Handles GET requests.""" topic_summaries = topic_services.get_all_topic_summaries() topic_summary_dicts = [ summary.to_dict() for summary in topic_summaries ] skill_summaries = skill_services.get_all_skill_summaries() skill_summary_dicts = [ summary.to_dict() for summary in skill_summaries ] skill_ids_assigned_to_some_topic = ( topic_services.get_all_skill_ids_assigned_to_some_topic()) merged_skill_ids = (skill_services.get_merged_skill_ids()) topic_rights_dict = topic_services.get_all_topic_rights() for topic_summary in topic_summary_dicts: if topic_rights_dict[topic_summary['id']]: topic_rights = topic_rights_dict[topic_summary['id']] if topic_rights: topic_summary['is_published'] = ( topic_rights.topic_is_published) topic_summary['can_edit_topic'] = ( topic_services.check_can_edit_topic( self.user, topic_rights)) untriaged_skill_summary_dicts = [] mergeable_skill_summary_dicts = [] for skill_summary_dict in skill_summary_dicts: skill_id = skill_summary_dict['id'] if (skill_id not in skill_ids_assigned_to_some_topic) and ( skill_id not in merged_skill_ids): untriaged_skill_summary_dicts.append(skill_summary_dict) if (skill_id in skill_ids_assigned_to_some_topic) and ( skill_id not in merged_skill_ids): mergeable_skill_summary_dicts.append(skill_summary_dict) can_delete_topic = (role_services.ACTION_DELETE_TOPIC in self.user.actions) can_create_topic = (role_services.ACTION_CREATE_NEW_TOPIC in self.user.actions) can_delete_skill = (role_services.ACTION_DELETE_ANY_SKILL in self.user.actions) can_create_skill = (role_services.ACTION_CREATE_NEW_SKILL in self.user.actions) self.values.update({ 'untriaged_skill_summary_dicts': untriaged_skill_summary_dicts, 'mergeable_skill_summary_dicts': mergeable_skill_summary_dicts, 'topic_summary_dicts': topic_summary_dicts, 'can_delete_topic': can_delete_topic, 'can_create_topic': can_create_topic, 'can_delete_skill': can_delete_skill, 'can_create_skill': can_create_skill }) self.render_json(self.values)
def test_load_new_structures_data(self): self.set_admins([self.ADMIN_USERNAME]) self.login(self.ADMIN_EMAIL, is_super_admin=True) csrf_token = self.get_new_csrf_token() self.post_json('/adminhandler', {'action': 'generate_dummy_new_structures_data'}, csrf_token=csrf_token) topic_summaries = topic_services.get_all_topic_summaries() self.assertEqual(len(topic_summaries), 2) for summary in topic_summaries: if summary.name == 'Dummy Topic 1': topic_id = summary.id story_id = (topic_fetchers.get_topic_by_id( topic_id).canonical_story_references[0].story_id) self.assertIsNotNone( story_fetchers.get_story_by_id(story_id, strict=False)) skill_summaries = skill_services.get_all_skill_summaries() self.assertEqual(len(skill_summaries), 3) questions, _, _ = (question_fetchers. get_questions_and_skill_descriptions_by_skill_ids( 10, [ skill_summaries[0].id, skill_summaries[1].id, skill_summaries[2].id ], '')) self.assertEqual(len(questions), 3) self.logout()
def test_get_all_skill_summaries(self): skill_summaries = skill_services.get_all_skill_summaries() self.assertEqual(len(skill_summaries), 1) self.assertEqual(skill_summaries[0].id, self.SKILL_ID) self.assertEqual(skill_summaries[0].description, 'Description') self.assertEqual(skill_summaries[0].misconception_count, 1)
def get(self): """Handles GET requests.""" topic_summaries = topic_services.get_all_topic_summaries() topic_summary_dicts = [ summary.to_dict() for summary in topic_summaries ] skill_summaries = skill_services.get_all_skill_summaries() skill_summary_dicts = [ summary.to_dict() for summary in skill_summaries ] topic_rights_dict = topic_services.get_all_topic_rights() for topic_summary in topic_summary_dicts: topic_rights = topic_rights_dict[topic_summary['id']] if topic_rights: topic_summary['is_published'] = ( topic_rights.topic_is_published) can_delete_topic = (role_services.ACTION_DELETE_TOPIC in self.user.actions) can_create_topic = (role_services.ACTION_CREATE_NEW_TOPIC in self.user.actions) self.values.update({ 'skill_summary_dicts': skill_summary_dicts, 'topic_summary_dicts': topic_summary_dicts, 'can_delete_topic': can_delete_topic, 'can_create_topic': can_create_topic }) self.render_json(self.values)
def test_generate_dummy_skill_and_questions_data(self): self.set_admins([self.ADMIN_USERNAME]) self.login(self.ADMIN_EMAIL, is_super_admin=True) csrf_token = self.get_new_csrf_token() self.post_json( '/adminhandler', { 'action': 'generate_dummy_new_skill_data' }, csrf_token=csrf_token) skill_summaries = skill_services.get_all_skill_summaries() self.assertEqual(len(skill_summaries), 1) questions, _, _ = ( question_fetchers.get_questions_and_skill_descriptions_by_skill_ids( 20, [skill_summaries[0].id], '') ) self.assertEqual(len(questions), 15) self.logout()
def get(self): """Handles GET requests.""" topic_summaries = topic_services.get_all_topic_summaries() topic_summary_dicts = [ summary.to_dict() for summary in topic_summaries ] skill_summaries = skill_services.get_all_skill_summaries() skill_summary_dicts = [ summary.to_dict() for summary in skill_summaries ] self.values.update({ 'skill_summary_dicts': skill_summary_dicts, 'topic_summary_dicts': topic_summary_dicts }) self.render_json(self.values)
def get(self): """Handles GET requests.""" topic_summaries = topic_services.get_all_topic_summaries() topic_summary_dicts = [ summary.to_dict() for summary in topic_summaries] skill_summaries = skill_services.get_all_skill_summaries() skill_summary_dicts = [ summary.to_dict() for summary in skill_summaries] topic_rights_dict = topic_services.get_all_topic_rights() for topic_summary in topic_summary_dicts: topic_rights = topic_rights_dict[topic_summary['id']] if topic_rights: topic_summary['topic_is_published'] = ( topic_rights.topic_is_published) self.values.update({ 'skill_summary_dicts': skill_summary_dicts, 'topic_summary_dicts': topic_summary_dicts }) self.render_json(self.values)
def get(self): """Handles GET requests.""" topic_summaries = topic_fetchers.get_all_topic_summaries() topic_summary_dicts = [ summary.to_dict() for summary in topic_summaries ] skill_summaries = skill_services.get_all_skill_summaries() skill_summary_dicts = [ summary.to_dict() for summary in skill_summaries ] skill_ids_assigned_to_some_topic = ( topic_fetchers.get_all_skill_ids_assigned_to_some_topic()) merged_skill_ids = (skill_services.get_merged_skill_ids()) topic_rights_dict = topic_fetchers.get_all_topic_rights() for topic_summary in topic_summary_dicts: if topic_rights_dict[topic_summary['id']]: topic_rights = topic_rights_dict[topic_summary['id']] if topic_rights: topic_summary['is_published'] = ( topic_rights.topic_is_published) topic_summary['can_edit_topic'] = ( topic_services.check_can_edit_topic( self.user, topic_rights)) all_classrooms_dict = config_domain.CLASSROOM_PAGES_DATA.value all_classroom_names = [ classroom['name'] for classroom in all_classrooms_dict ] topic_classroom_dict = {} for classroom in all_classrooms_dict: for topic_id in classroom['topic_ids']: topic_classroom_dict[topic_id] = classroom['name'] for topic_summary_dict in topic_summary_dicts: topic_summary_dict['classroom'] = topic_classroom_dict.get( topic_summary_dict['id'], None) mergeable_skill_summary_dicts = [] untriaged_skill_summaries = ( skill_services.get_untriaged_skill_summaries( skill_summaries, skill_ids_assigned_to_some_topic, merged_skill_ids)) categorized_skills = ( skill_services.get_categorized_skill_ids_and_descriptions()) for skill_summary_dict in skill_summary_dicts: skill_id = skill_summary_dict['id'] if (skill_id in skill_ids_assigned_to_some_topic) and ( skill_id not in merged_skill_ids): mergeable_skill_summary_dicts.append(skill_summary_dict) can_delete_topic = (role_services.ACTION_DELETE_TOPIC in self.user.actions) can_create_topic = (role_services.ACTION_CREATE_NEW_TOPIC in self.user.actions) can_delete_skill = (role_services.ACTION_DELETE_ANY_SKILL in self.user.actions) can_create_skill = (role_services.ACTION_CREATE_NEW_SKILL in self.user.actions) self.values.update({ 'untriaged_skill_summary_dicts': [ skill_summary.to_dict() for skill_summary in untriaged_skill_summaries ], 'mergeable_skill_summary_dicts': mergeable_skill_summary_dicts, 'topic_summary_dicts': topic_summary_dicts, 'total_skill_count': len(skill_summary_dicts), 'all_classroom_names': all_classroom_names, 'can_delete_topic': can_delete_topic, 'can_create_topic': can_create_topic, 'can_delete_skill': can_delete_skill, 'can_create_skill': can_create_skill, 'categorized_skills_dict': categorized_skills.to_dict() }) self.render_json(self.values)
def get(self): """Handles GET requests.""" topic_summaries = topic_services.get_all_topic_summaries() topic_summary_dicts = [ summary.to_dict() for summary in topic_summaries] skill_summaries = skill_services.get_all_skill_summaries() skill_summary_dicts = [ summary.to_dict() for summary in skill_summaries] skill_ids_assigned_to_some_topic = ( topic_services.get_all_skill_ids_assigned_to_some_topic()) merged_skill_ids = ( skill_services.get_merged_skill_ids()) topic_rights_dict = topic_services.get_all_topic_rights() for topic_summary in topic_summary_dicts: if topic_rights_dict[topic_summary['id']]: topic_rights = topic_rights_dict[topic_summary['id']] if topic_rights: topic_summary['is_published'] = ( topic_rights.topic_is_published) topic_summary['can_edit_topic'] = ( topic_services.check_can_edit_topic( self.user, topic_rights) ) all_classrooms_dict = config_domain.TOPIC_IDS_FOR_CLASSROOM_PAGES.value all_classroom_names = [ classroom['name'] for classroom in all_classrooms_dict] for topic_summary_dict in topic_summary_dicts: topic_summary_dict['classroom'] = None for classroom in all_classrooms_dict: if topic_summary_dict['id'] in classroom['topic_ids']: topic_summary_dict['classroom'] = classroom['name'] break untriaged_skill_summary_dicts = [] mergeable_skill_summary_dicts = [] categorized_skills_dict = {} topics = topic_fetchers.get_all_topics() for topic in topics: subtopics = topic.subtopics categorized_skills_dict[topic.name] = {} uncategorized_skills = ( skill_services.get_descriptions_of_skills( topic.uncategorized_skill_ids)[0]) skills_list = [] for skill_id in topic.uncategorized_skill_ids: skill_dict = { 'skill_id': skill_id, 'skill_description': uncategorized_skills[skill_id] } skills_list.append(skill_dict) categorized_skills_dict[topic.name]['uncategorized'] = ( skills_list) for subtopic in subtopics: skills = (skill_services.get_descriptions_of_skills( subtopic.skill_ids))[0] skills_list = [] for skill_id in subtopic.skill_ids: skill_dict = { 'skill_id': skill_id, 'skill_description': skills[skill_id] } skills_list.append(skill_dict) categorized_skills_dict[topic.name][ subtopic.title] = skills_list categorized_skills_dict['untriaged_skills'] = [] for skill_summary_dict in skill_summary_dicts: skill_id = skill_summary_dict['id'] if (skill_id not in skill_ids_assigned_to_some_topic) and ( skill_id not in merged_skill_ids): untriaged_skill_summary_dicts.append(skill_summary_dict) categorized_skills_dict['untriaged_skills'].append({ 'skill_id': skill_id, 'skill_description': skill_summary_dict['description'] }) if (skill_id in skill_ids_assigned_to_some_topic) and ( skill_id not in merged_skill_ids): mergeable_skill_summary_dicts.append(skill_summary_dict) can_delete_topic = ( role_services.ACTION_DELETE_TOPIC in self.user.actions) can_create_topic = ( role_services.ACTION_CREATE_NEW_TOPIC in self.user.actions) can_delete_skill = ( role_services.ACTION_DELETE_ANY_SKILL in self.user.actions) can_create_skill = ( role_services.ACTION_CREATE_NEW_SKILL in self.user.actions) self.values.update({ 'untriaged_skill_summary_dicts': untriaged_skill_summary_dicts, 'mergeable_skill_summary_dicts': mergeable_skill_summary_dicts, 'topic_summary_dicts': topic_summary_dicts, 'all_classroom_names': all_classroom_names, 'can_delete_topic': can_delete_topic, 'can_create_topic': can_create_topic, 'can_delete_skill': can_delete_skill, 'can_create_skill': can_create_skill, 'categorized_skills_dict': categorized_skills_dict }) self.render_json(self.values)
def get(self): """Handles GET requests.""" topic_summaries = topic_services.get_all_topic_summaries() topic_summary_dicts = [ summary.to_dict() for summary in topic_summaries ] skill_summaries = skill_services.get_all_skill_summaries() skill_summary_dicts = [ summary.to_dict() for summary in skill_summaries ] skill_ids_assigned_to_some_topic = ( topic_services.get_all_skill_ids_assigned_to_some_topic()) topic_rights_dict = topic_services.get_all_topic_rights() for topic_summary in topic_summary_dicts: if topic_rights_dict[topic_summary['id']]: topic_rights = topic_rights_dict[topic_summary['id']] if topic_rights: topic_summary['is_published'] = ( topic_rights.topic_is_published) topic_summary['can_edit_topic'] = ( topic_services.check_can_edit_topic( self.user, topic_rights)) skill_ids_for_private_skills_by_user = [ skill_rights.id for skill_rights in ( skill_services.get_unpublished_skill_rights_by_creator( self.user_id)) ] skill_ids_for_unpublished_skills = [ skill_rights.id for skill_rights in ( skill_services.get_all_unpublished_skill_rights()) ] untriaged_skill_summary_dicts = [] for skill_summary_dict in skill_summary_dicts: skill_id = skill_summary_dict['id'] if (skill_id not in skill_ids_assigned_to_some_topic) and ( skill_id not in skill_ids_for_unpublished_skills): untriaged_skill_summary_dicts.append(skill_summary_dict) unpublished_skill_summary_dicts = [ summary.to_dict() for summary in (skill_services.get_multi_skill_summaries( skill_ids_for_private_skills_by_user)) ] can_delete_topic = (role_services.ACTION_DELETE_TOPIC in self.user.actions) can_create_topic = (role_services.ACTION_CREATE_NEW_TOPIC in self.user.actions) can_create_skill = (role_services.ACTION_CREATE_NEW_SKILL in self.user.actions) self.values.update({ 'untriaged_skill_summary_dicts': untriaged_skill_summary_dicts, 'unpublished_skill_summary_dicts': unpublished_skill_summary_dicts, 'topic_summary_dicts': topic_summary_dicts, 'can_delete_topic': can_delete_topic, 'can_create_topic': can_create_topic, 'can_create_skill': can_create_skill }) self.render_json(self.values)