Beispiel #1
0
    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
                    }
                }
            }
        )
Beispiel #2
0
    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)
Beispiel #3
0
    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)