예제 #1
0
    def get(self):
        """Handles GET requests."""
        learner_progress_in_topics_and_stories = (
            learner_progress_services.get_topics_and_stories_progress(
                self.user_id)[0])

        all_topic_summary_dicts = (
            learner_progress_services.get_displayable_topic_summary_dicts(
                self.user_id,
                learner_progress_in_topics_and_stories.all_topic_summaries))

        completed_chapters_count = 0
        for topic in all_topic_summary_dicts:
            for story in topic['canonical_story_summary_dict']:
                completed_chapters_count += (len(
                    story_fetchers.get_completed_nodes_in_story(
                        self.user_id, story['id'])))

        self.render_json({
            'completed_chapters_count': completed_chapters_count,
        })
예제 #2
0
    def get(self):
        """Handles GET requests."""
        (learner_progress, number_of_nonexistent_activities) = (
            learner_progress_services.get_activity_progress(self.user_id))

        completed_exp_summary_dicts = (
            summary_services.get_displayable_exp_summary_dicts(
                learner_progress.completed_exp_summaries))

        incomplete_exp_summary_dicts = (
            summary_services.get_displayable_exp_summary_dicts(
                learner_progress.incomplete_exp_summaries))

        completed_collection_summary_dicts = (
            learner_progress_services.get_collection_summary_dicts(
                learner_progress.completed_collection_summaries))
        incomplete_collection_summary_dicts = (
            learner_progress_services.get_collection_summary_dicts(
                learner_progress.incomplete_collection_summaries))

        completed_story_summary_dicts = (
            learner_progress_services.get_displayable_story_summary_dicts(
                self.user_id, learner_progress.completed_story_summaries))

        learnt_topic_summary_dicts = (
            learner_progress_services.get_displayable_topic_summary_dicts(
                self.user_id, learner_progress.learnt_topic_summaries))
        partially_learnt_topic_summary_dicts = (
            learner_progress_services.get_displayable_topic_summary_dicts(
                self.user_id,
                learner_progress.partially_learnt_topic_summaries))

        exploration_playlist_summary_dicts = (
            summary_services.get_displayable_exp_summary_dicts(
                learner_progress.exploration_playlist_summaries))
        collection_playlist_summary_dicts = (
            learner_progress_services.get_collection_summary_dicts(
                learner_progress.collection_playlist_summaries))

        topics_to_learn_summary_dicts = (
            learner_progress_services.get_displayable_topic_summary_dicts(
                self.user_id, learner_progress.topics_to_learn_summaries))
        all_topic_summary_dicts = (
            learner_progress_services.get_displayable_topic_summary_dicts(
                self.user_id, learner_progress.all_topic_summaries))
        untracked_topic_summary_dicts = (
            learner_progress_services.
            get_displayable_untracked_topic_summary_dicts(
                self.user_id, learner_progress.untracked_topic_summaries))

        full_thread_ids = subscription_services.get_all_threads_subscribed_to(
            self.user_id)
        if len(full_thread_ids) > 0:
            thread_summaries, number_of_unread_threads = (
                feedback_services.get_exp_thread_summaries(
                    self.user_id, full_thread_ids))
        else:
            thread_summaries, number_of_unread_threads = [], 0

        creators_subscribed_to = (
            subscription_services.get_all_creators_subscribed_to(self.user_id))
        creators_settings = user_services.get_users_settings(
            creators_subscribed_to)
        subscription_list = []

        for index, creator_settings in enumerate(creators_settings):
            subscription_summary = {
                'creator_picture_data_url':
                (creator_settings.profile_picture_data_url),
                'creator_username':
                creator_settings.username,
                'creator_impact': (user_services.get_user_impact_score(
                    creators_subscribed_to[index]))
            }

            subscription_list.append(subscription_summary)

        self.values.update({
            'completed_explorations_list':
            completed_exp_summary_dicts,
            'completed_collections_list':
            completed_collection_summary_dicts,
            'completed_stories_list':
            completed_story_summary_dicts,
            'learnt_topics_list':
            learnt_topic_summary_dicts,
            'incomplete_explorations_list':
            incomplete_exp_summary_dicts,
            'incomplete_collections_list':
            incomplete_collection_summary_dicts,
            'partially_learnt_topics_list':
            (partially_learnt_topic_summary_dicts),
            'exploration_playlist':
            exploration_playlist_summary_dicts,
            'collection_playlist':
            collection_playlist_summary_dicts,
            'topics_to_learn_list':
            topics_to_learn_summary_dicts,
            'all_topics_list':
            all_topic_summary_dicts,
            'untracked_topics':
            untracked_topic_summary_dicts,
            'number_of_nonexistent_activities':
            (number_of_nonexistent_activities),
            'completed_to_incomplete_collections':
            (learner_progress.completed_to_incomplete_collections),
            'completed_to_incomplete_stories':
            (learner_progress.completed_to_incomplete_stories),
            'learnt_to_partially_learnt_topics':
            (learner_progress.learnt_to_partially_learnt_topics),
            'thread_summaries': [s.to_dict() for s in thread_summaries],
            'number_of_unread_threads':
            number_of_unread_threads,
            'subscription_list':
            subscription_list
        })
        self.render_json(self.values)
예제 #3
0
    def get(self):
        """Handles GET requests."""
        (learner_progress_in_topics_and_stories,
         number_of_nonexistent_topics_and_stories) = (
             learner_progress_services.get_topics_and_stories_progress(
                 self.user_id))

        completed_story_sumamries = (
            learner_progress_in_topics_and_stories.completed_story_summaries)
        completed_story_summary_dicts = (
            learner_progress_services.get_displayable_story_summary_dicts(
                self.user_id, completed_story_sumamries))

        learnt_topic_summary_dicts = (
            learner_progress_services.get_displayable_topic_summary_dicts(
                self.user_id,
                learner_progress_in_topics_and_stories.learnt_topic_summaries))
        partially_learnt_topic_summaries = (
            learner_progress_in_topics_and_stories.
            partially_learnt_topic_summaries  # pylint: disable=line-too-long
        )
        partially_learnt_topic_summary_dicts = (
            learner_progress_services.get_displayable_topic_summary_dicts(
                self.user_id, partially_learnt_topic_summaries))

        topics_to_learn_summaries = (
            learner_progress_in_topics_and_stories.topics_to_learn_summaries)
        topics_to_learn_summary_dicts = (
            learner_progress_services.get_displayable_topic_summary_dicts(
                self.user_id, topics_to_learn_summaries))
        all_topic_summary_dicts = (
            learner_progress_services.get_displayable_topic_summary_dicts(
                self.user_id,
                learner_progress_in_topics_and_stories.all_topic_summaries))
        untracked_topic_sumamries = (
            learner_progress_in_topics_and_stories.untracked_topic_summaries)
        untracked_topic_summary_dicts = (
            learner_progress_services.
            get_displayable_untracked_topic_summary_dicts(
                self.user_id, untracked_topic_sumamries))

        completed_to_incomplete_stories = (
            learner_progress_in_topics_and_stories.
            completed_to_incomplete_stories  # pylint: disable=line-too-long
        )
        learnt_to_partially_learnt_topics = (
            learner_progress_in_topics_and_stories.
            learnt_to_partially_learnt_topics  # pylint: disable=line-too-long
        )
        self.values.update({
            'completed_stories_list':
            completed_story_summary_dicts,
            'learnt_topics_list':
            learnt_topic_summary_dicts,
            'partially_learnt_topics_list':
            (partially_learnt_topic_summary_dicts),
            'topics_to_learn_list':
            topics_to_learn_summary_dicts,
            'all_topics_list':
            all_topic_summary_dicts,
            'untracked_topics':
            untracked_topic_summary_dicts,
            'number_of_nonexistent_topics_and_stories':
            (number_of_nonexistent_topics_and_stories),
            'completed_to_incomplete_stories':
            completed_to_incomplete_stories,
            'learnt_to_partially_learnt_topics':
            (learnt_to_partially_learnt_topics),
        })
        self.render_json(self.values)