def test_get_non_private_explorations_summary_dict(self): self.save_new_default_exploration(self.EXP_ID) self.assertEqual( exp_services.get_non_private_explorations_summary_dict(), {}) rights_manager.publish_exploration(self.OWNER_ID, self.EXP_ID) self.assertEqual( exp_services.get_non_private_explorations_summary_dict(), { self.EXP_ID: { 'title': 'A title', 'category': 'A category', 'rights': { 'owner_names': [self.OWNER_NAME], 'editor_names': [], 'viewer_names': [], 'community_owned': False, 'cloned_from': None, 'status': rights_manager.EXPLORATION_STATUS_PUBLIC } } } ) rights_manager.publicize_exploration(self.user_id_admin, self.EXP_ID) self.assertEqual( exp_services.get_non_private_explorations_summary_dict(), { self.EXP_ID: { 'title': 'A title', 'category': 'A category', 'rights': { 'owner_names': [self.OWNER_NAME], 'editor_names': [], 'viewer_names': [], 'community_owned': False, 'cloned_from': None, 'status': rights_manager.EXPLORATION_STATUS_PUBLICIZED } } } )
def get(self): """Handles GET requests.""" # TODO(sll): Implement paging. explorations_dict = ( exp_services.get_non_private_explorations_summary_dict()) categories = collections.defaultdict(list) for (eid, exploration_data) in explorations_dict.iteritems(): categories[exploration_data['category']].append({ 'id': eid, 'is_public': ( exploration_data['rights']['status'] == rights_manager.EXPLORATION_STATUS_PUBLIC), 'is_publicized': ( exploration_data['rights']['status'] == rights_manager.EXPLORATION_STATUS_PUBLICIZED), 'title': exploration_data['title'], 'to_playtest': False, }) if self.user_id: playtest_dict = ( exp_services.get_explicit_viewer_explorations_summary_dict( self.user_id)) for (eid, exploration_data) in playtest_dict.iteritems(): categories[exploration_data['category']].append({ 'id': eid, 'is_public': ( exploration_data['rights']['status'] == rights_manager.EXPLORATION_STATUS_PUBLIC), 'is_publicized': ( exploration_data['rights']['status'] == rights_manager.EXPLORATION_STATUS_PUBLICIZED), 'title': exploration_data['title'], 'to_playtest': True, }) self.values.update({ 'categories': categories, }) self.render_json(self.values)
def get(self): """Handles GET requests.""" # TODO(sll): Implement paging. explorations_dict = ( exp_services.get_editable_explorations_summary_dict( self.user_id)) if (rights_manager.Actor(self.user_id).is_moderator() or self.is_super_admin): explorations_dict.update( exp_services.get_non_private_explorations_summary_dict()) categories = collections.defaultdict(list) for (eid, exploration_data) in explorations_dict.iteritems(): categories[exploration_data['category']].append({ 'id': eid, 'title': exploration_data['title'], 'can_clone': ( rights_manager.Actor(self.user_id).can_clone(eid) or self.is_super_admin), 'can_edit': ( rights_manager.Actor(self.user_id).can_edit(eid) or self.is_super_admin), 'is_private': ( exploration_data['rights']['status'] == rights_manager.EXPLORATION_STATUS_PRIVATE), 'is_public': ( exploration_data['rights']['status'] == rights_manager.EXPLORATION_STATUS_PUBLIC), 'is_publicized': ( exploration_data['rights']['status'] == rights_manager.EXPLORATION_STATUS_PUBLICIZED), 'is_cloned': bool(exploration_data['rights']['cloned_from']), }) self.values.update({ 'categories': categories, }) self.render_json(self.values)