Пример #1
0
    def get(self, thread_id):
        """Handles GET requests."""
        messages = feedback_services.get_messages(thread_id)
        author_ids = [m.author_id for m in messages]
        authors_settings = user_services.get_users_settings(author_ids)

        message_ids = [m.message_id for m in messages]
        feedback_services.update_messages_read_by_the_user(
            self.user_id, thread_id, message_ids)

        message_summary_list = []
        suggestion = suggestion_services.get_suggestion_by_id(thread_id)
        suggestion_thread = feedback_services.get_thread(thread_id)

        exploration_id = feedback_services.get_exp_id_from_thread_id(thread_id)
        if suggestion:
            exploration = exp_fetchers.get_exploration_by_id(exploration_id)
            current_content_html = (
                exploration.states[suggestion.change.state_name].content.html)
            suggestion_summary = {
                'suggestion_html':
                suggestion.change.new_value['html'],
                'current_content_html':
                current_content_html,
                'description':
                suggestion_thread.subject,
                'author_username':
                authors_settings[0].username,
                'author_picture_data_url':
                (authors_settings[0].profile_picture_data_url),
                'created_on_msecs':
                utils.get_time_in_millisecs(messages[0].created_on)
            }
            message_summary_list.append(suggestion_summary)
            messages.pop(0)
            authors_settings.pop(0)

        for m, author_settings in python_utils.ZIP(messages, authors_settings):

            if author_settings is None:
                author_username = None
                author_picture_data_url = None
            else:
                author_username = author_settings.username
                author_picture_data_url = (
                    author_settings.profile_picture_data_url)

            message_summary = {
                'message_id': m.message_id,
                'text': m.text,
                'updated_status': m.updated_status,
                'author_username': author_username,
                'author_picture_data_url': author_picture_data_url,
                'created_on_msecs': utils.get_time_in_millisecs(m.created_on)
            }
            message_summary_list.append(message_summary)

        self.render_json({'message_summary_list': message_summary_list})
Пример #2
0
    def get(self, thread_id):
        suggestion_id = thread_id
        suggestion = suggestion_services.get_suggestion_by_id(suggestion_id)

        messages = [m.to_dict() for m in feedback_services.get_messages(
            thread_id)]
        message_ids = [message['message_id'] for message in messages]
        feedback_services.update_messages_read_by_the_user(
            self.user_id, thread_id, message_ids)
        self.values.update({
            'messages': messages,
            'suggestion': suggestion.to_dict() if suggestion else None
        })
        self.render_json(self.values)
Пример #3
0
 def get(self, exploration_id, thread_id):  # pylint: disable=unused-argument
     suggestion = feedback_services.get_suggestion(exploration_id,
                                                   thread_id)
     messages = [
         m.to_dict()
         for m in feedback_services.get_messages(exploration_id, thread_id)
     ]
     message_ids = [message['message_id'] for message in messages]
     feedback_services.update_messages_read_by_the_user(
         self.user_id, exploration_id, thread_id, message_ids)
     self.values.update({
         'messages':
         messages,
         'suggestion':
         suggestion.to_dict() if suggestion else None
     })
     self.render_json(self.values)
Пример #4
0
    def get(self, thread_id):
        if constants.USE_NEW_SUGGESTION_FRAMEWORK:
            suggestion = suggestion_services.get_suggestion_by_id(thread_id)
        else:
            suggestion = feedback_services.get_suggestion(thread_id)

        messages = [
            m.to_dict() for m in feedback_services.get_messages(thread_id)
        ]
        message_ids = [message['message_id'] for message in messages]
        feedback_services.update_messages_read_by_the_user(
            self.user_id, thread_id, message_ids)
        self.values.update({
            'messages':
            messages,
            'suggestion':
            suggestion.to_dict() if suggestion else None
        })
        self.render_json(self.values)
Пример #5
0
    def get(self, thread_id):
        if not constants.ENABLE_GENERALIZED_FEEDBACK_THREADS:
            suggestion_id = 'exploration.%s' % thread_id
        else:
            suggestion_id = thread_id
        suggestion = suggestion_services.get_suggestion_by_id(suggestion_id)

        messages = [
            m.to_dict() for m in feedback_services.get_messages(thread_id)
        ]
        message_ids = [message['message_id'] for message in messages]
        feedback_services.update_messages_read_by_the_user(
            self.user_id, thread_id, message_ids)
        self.values.update({
            'messages':
            messages,
            'suggestion':
            suggestion.to_dict() if suggestion else None
        })
        self.render_json(self.values)
Пример #6
0
    def get(self, thread_id):
        suggestion_id = thread_id
        suggestion = suggestion_services.get_suggestion_by_id(suggestion_id)

        message_dicts = [
            message.to_dict()
            for message in feedback_services.get_messages(thread_id)
        ]
        message_ids = [message['message_id'] for message in message_dicts]
        if self.user_id:
            feedback_services.update_messages_read_by_the_user(
                self.user_id, thread_id, message_ids)

        self.values.update({
            'messages':
            replace_user_id_with_username_in_dict(
                message_dicts, [('author_id', 'author_username')]),
            'suggestion':
            suggestion.to_dict() if suggestion else None
        })
        self.render_json(self.values)
Пример #7
0
    def test_update_messages_read_by_the_user(self):
        feedback_services.create_thread(
            'exploration', self.EXP_ID_1, self.user_id,
            self.EXPECTED_THREAD_DICT['subject'], 'not used here')
        threads = feedback_services.get_all_threads(
            'exploration', self.EXP_ID_1, False)
        thread_id = threads[0].id

        messages = feedback_services.get_messages(thread_id)
        message_ids = [message.message_id for message in messages]

        # The viewer has not read in messages yet.
        self.assertEqual(self._get_all_messages_read(
            self.viewer_id, thread_id), [])

        feedback_services.update_messages_read_by_the_user(
            self.viewer_id, thread_id, message_ids)

        # Check if the message is added to the read section of the viewer.
        self.assertEqual(self._get_all_messages_read(
            self.viewer_id, thread_id), message_ids)