def setUp(self): super(AugmentedSkillSummaryTests, self).setUp() current_time = datetime.datetime.utcnow() self.time_in_millisecs = utils.get_time_in_millisecs(current_time) self.augmented_skill_summary = skill_domain.AugmentedSkillSummary( 'skill_id', 'description', 'en', 1, 1, 1, ['topic1'], ['math'], current_time, current_time)
def _get_augmented_skill_summaries_in_batches( num_skills_to_fetch, urlsafe_start_cursor, sort_by): """Returns all the Augmented skill summaries after attaching topic and classroom. Returns: 3-tuple(augmented_skill_summaries, urlsafe_start_cursor, more). Where: augmented_skill_summaries: list(AugmentedSkillSummary). The list of skill summaries. urlsafe_start_cursor: str or None. A query cursor pointing to the next batch of results. If there are no more results, this might be None. more: bool. If True, there are (probably) more results after this batch. If False, there are no further results after this batch. """ skill_summaries, new_urlsafe_start_cursor, more = ( _get_skill_summaries_in_batches( num_skills_to_fetch, urlsafe_start_cursor, sort_by)) assigned_skill_ids = collections.defaultdict(lambda: { 'topic_names': [], 'classroom_names': [] }) all_topic_models = topic_models.TopicModel.get_all() all_topics = [topic_fetchers.get_topic_from_model(topic_model) if topic_model is not None else None for topic_model in all_topic_models] topic_classroom_dict = {} all_classrooms_dict = config_domain.CLASSROOM_PAGES_DATA.value for classroom in all_classrooms_dict: for topic_id in classroom['topic_ids']: topic_classroom_dict[topic_id] = classroom['name'] for topic in all_topics: for skill_id in topic.get_all_skill_ids(): assigned_skill_ids[skill_id]['topic_names'].append(topic.name) assigned_skill_ids[skill_id]['classroom_names'].append( topic_classroom_dict.get(topic.id, None)) augmented_skill_summaries = [] for skill_summary in skill_summaries: topic_names = [] classroom_names = [] if skill_summary.id in assigned_skill_ids: topic_names = assigned_skill_ids[skill_summary.id]['topic_names'] classroom_names = ( assigned_skill_ids[skill_summary.id]['classroom_names']) augmented_skill_summary = skill_domain.AugmentedSkillSummary( skill_summary.id, skill_summary.description, skill_summary.language_code, skill_summary.version, skill_summary.misconception_count, skill_summary.worked_examples_count, topic_names, classroom_names, skill_summary.skill_model_created_on, skill_summary.skill_model_last_updated) augmented_skill_summaries.append(augmented_skill_summary) return augmented_skill_summaries, new_urlsafe_start_cursor, more