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)
Esempio n. 2
0
 def test_get_all_skill_ids_assigned_to_some_topic(self):
     change_list = [
         topic_domain.TopicChange({
             'cmd': topic_domain.CMD_MOVE_SKILL_ID_TO_SUBTOPIC,
             'old_subtopic_id': None,
             'new_subtopic_id': 1,
             'skill_id': self.skill_id_1
         })
     ]
     topic_services.update_topic_and_subtopic_pages(
         self.user_id_admin, self.TOPIC_ID, change_list,
         'Moved skill to subtopic.')
     topic_id = topic_fetchers.get_new_topic_id()
     self.save_new_topic(
         topic_id,
         self.user_id,
         name='Name 2',
         description='Description',
         abbreviated_name='random',
         url_fragment='name-three',
         canonical_story_ids=[],
         additional_story_ids=[],
         uncategorized_skill_ids=[self.skill_id_1, 'skill_3'],
         subtopics=[],
         next_subtopic_id=1)
     self.assertEqual(
         topic_fetchers.get_all_skill_ids_assigned_to_some_topic(),
         {self.skill_id_1, self.skill_id_2, 'skill_3'})
Esempio n. 3
0
    def get(self):
        """Returns all skill IDs linked to some topic."""

        skill_ids = topic_fetchers.get_all_skill_ids_assigned_to_some_topic()

        skills = skill_fetchers.get_multi_skills(skill_ids, strict=False)

        skill_dicts = [skill.to_dict() for skill in skills]
        self.values.update({'skills': skill_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)