示例#1
0
    def get(self, classroom_url_fragment):
        """Handles GET requests."""

        classroom = classroom_services.get_classroom_by_url_fragment(
            classroom_url_fragment)

        topic_ids = classroom.topic_ids
        topic_summaries = topic_services.get_multi_topic_summaries(topic_ids)
        topic_rights = topic_services.get_multi_topic_rights(topic_ids)
        public_topic_summary_dicts = [
            summary.to_dict() for ind, summary in enumerate(topic_summaries)
            if summary is not None and topic_rights[ind].topic_is_published
        ]
        private_topic_summary_dicts = [
            summary.to_dict() for ind, summary in enumerate(topic_summaries)
            if summary is not None and not topic_rights[ind].topic_is_published
        ]

        self.values.update({
            'public_topic_summary_dicts': public_topic_summary_dicts,
            'private_topic_summary_dicts': private_topic_summary_dicts,
            'topic_list_intro': classroom.topic_list_intro,
            'course_details': classroom.course_details,
            'name': classroom.name
        })
        self.render_json(self.values)
示例#2
0
    def get(self) -> None:
        # Please use type casting here instead of type ignore[union-attr] once
        # this attribute `normalized_request` has been type annotated in the
        # parent class BaseHandler.
        classroom_url_fragment = self.normalized_request.get( # type: ignore[union-attr]
            'classroom_url_fragment')
        classroom = classroom_services.get_classroom_by_url_fragment( # type: ignore[no-untyped-call]
            classroom_url_fragment)

        if not classroom:
            raise self.PageNotFoundException
示例#3
0
 def test_can_get_classroom_by_url_fragment(self):
     topic_id = topic_services.get_new_topic_id()
     config_services.set_property(
         self.user_id_admin, 'classroom_pages_data', [{
             'name': 'math',
             'url_fragment': 'math',
             'topic_ids': [topic_id],
             'course_details': '',
             'topic_list_intro': ''
         }])
     classroom = classroom_services.get_classroom_by_url_fragment('math')
     self.assertEqual(classroom.name, 'math')
     self.assertEqual(classroom.url_fragment, 'math')
     self.assertEqual(classroom.topic_ids, [topic_id])
 def test_can_get_classroom_by_url_fragment(self) -> None:
     topic_id = topic_fetchers.get_new_topic_id(
     )  # type: ignore[no-untyped-call]
     config_services.set_property(self.user_id_admin,
                                  'classroom_pages_data',
                                  [{
                                      'name': 'math',
                                      'url_fragment': 'math',
                                      'topic_ids': [topic_id],
                                      'course_details': '',
                                      'topic_list_intro': ''
                                  }])
     classroom = classroom_services.get_classroom_by_url_fragment('math')
     assert classroom is not None
     self.assertEqual(classroom.name, 'math')
     self.assertEqual(classroom.url_fragment, 'math')
     self.assertEqual(classroom.topic_ids, [topic_id])
示例#5
0
    def get(self, classroom_url_fragment):
        """Handles GET requests."""

        classroom = classroom_services.get_classroom_by_url_fragment(
            classroom_url_fragment)

        topic_ids = classroom.topic_ids
        topic_summaries = topic_fetchers.get_multi_topic_summaries(topic_ids)
        topic_rights = topic_fetchers.get_multi_topic_rights(topic_ids)
        topic_summary_dicts = []
        for index, summary in enumerate(topic_summaries):
            if summary is not None:
                topic_summary_dict = summary.to_dict()
                topic_summary_dict['is_published'] = (
                    topic_rights[index].topic_is_published)
                topic_summary_dicts.append(topic_summary_dict)

        self.values.update({
            'topic_summary_dicts': topic_summary_dicts,
            'topic_list_intro': classroom.topic_list_intro,
            'course_details': classroom.course_details,
            'name': classroom.name
        })
        self.render_json(self.values)
示例#6
0
文件: classroom.py 项目: mfr88/oppia
    def get(self, classroom_url_fragment):
        """Handles GET requests."""

        if not constants.ENABLE_NEW_STRUCTURE_PLAYERS:
            raise self.PageNotFoundException

        classroom = classroom_services.get_classroom_by_url_fragment(
            classroom_url_fragment)

        topic_ids = classroom.topic_ids
        topic_summaries = topic_services.get_multi_topic_summaries(topic_ids)
        topic_rights = topic_services.get_multi_topic_rights(topic_ids)
        topic_summary_dicts = [
            summary.to_dict() for ind, summary in enumerate(topic_summaries)
            if summary is not None and topic_rights[ind].topic_is_published
        ]

        self.values.update({
            'topic_summary_dicts': topic_summary_dicts,
            'topic_list_intro': classroom.topic_list_intro,
            'course_details': classroom.course_details,
            'name': classroom.name
        })
        self.render_json(self.values)
 def test_return_none_when_classroom_cannot_be_found(self):
     classroom = classroom_services.get_classroom_by_url_fragment('bio')
     self.assertIsNone(classroom)