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)
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
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])
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)
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)