当前位置: 首页>>代码示例>>Python>>正文


Python model.Comment类代码示例

本文整理汇总了Python中website.project.model.Comment的典型用法代码示例。如果您正苦于以下问题:Python Comment类的具体用法?Python Comment怎么用?Python Comment使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


在下文中一共展示了Comment类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: get_comment

    def get_comment(self, check_permissions=True):
        pk = self.kwargs[self.comment_lookup_url_kwarg]
        try:
            comment = Comment.find_one(Q('_id', 'eq', pk) & Q('root_target', 'ne', None))
        except NoResultsFound:
            raise NotFound

        # Deleted root targets still appear as tuples in the database and are included in
        # the above query, requiring an additional check
        if isinstance(comment.root_target.referent, TrashedFileNode):
            comment.root_target = None
            comment.save()

        if comment.root_target is None:
            raise NotFound

        if isinstance(comment.root_target.referent, StoredFileNode):
            root_target = comment.root_target
            referent = root_target.referent

            if referent.provider == 'osfstorage':
                try:
                    StoredFileNode.find(
                        Q('node', 'eq', comment.node._id) &
                        Q('_id', 'eq', referent._id) &
                        Q('is_file', 'eq', True)
                    )
                except NoResultsFound:
                    Comment.update(Q('root_target', 'eq', root_target), data={'root_target': None})
                    raise NotFound
            else:
                if referent.provider == 'dropbox':
                    # referent.path is the absolute path for the db file, but wb requires the relative path
                    referent = DropboxFile.load(referent._id)
                url = waterbutler_api_url_for(comment.node._id, referent.provider, referent.path, meta=True)
                waterbutler_request = requests.get(
                    url,
                    cookies=self.request.COOKIES,
                    headers={'Authorization': self.request.META.get('HTTP_AUTHORIZATION')},
                )

                if waterbutler_request.status_code == 401:
                    raise PermissionDenied

                if waterbutler_request.status_code == 404:
                    Comment.update(Q('root_target', 'eq', root_target), data={'root_target': None})
                    raise NotFound

                if is_server_error(waterbutler_request.status_code):
                    raise ServiceUnavailableError(detail='Could not retrieve files information at this time.')

                try:
                    waterbutler_request.json()['data']
                except KeyError:
                    raise ServiceUnavailableError(detail='Could not retrieve files information at this time.')

        if check_permissions:
            # May raise a permission denied
            self.check_object_permissions(self.request, comment)
        return comment
开发者ID:DanielSBrown,项目名称:osf.io,代码行数:60,代码来源:views.py

示例2: setUp

 def setUp(self):
     super(TestMigrateSpam, self).setUp()
     self.generic_report = {
         'category': 'spam',
         'text': 'spammer spam',
         'date': datetime.utcnow(),
         'retracted': False
     }
     Comment.remove()
     self.user = AuthUserFactory()
     self.comment_1 = CommentFactory()
     self.comment_1.spam_status = 0
     self.comment_1.reports[self.user._id] = self.generic_report
     self.comment_1.save()
     self.comment_2 = CommentFactory()
     self.comment_2.spam_status = 0
     self.comment_2.reports[self.user._id] = self.generic_report
     self.comment_2.save()
     self.comment_3 = CommentFactory()
     self.comment_3.spam_status = 0
     self.comment_3.save()
     self.comment_4 = CommentFactory()
     self.comment_4.date_last_reported = None
     self.comment_4.spam_status = Comment.FLAGGED
     self.comment_4.reports[self.user._id] = self.generic_report
     self.comment_4.save()
     self.comment_5 = CommentFactory()
     self.comment_5.date_last_reported = None
     self.comment_5.spam_status = Comment.UNKNOWN
     self.comment_5.save()
     self.comment_6 = CommentFactory()
     self.comment_6.date_last_reported = None
     self.comment_6.spam_status = Comment.SPAM
     self.comment_6.reports[self.user._id] = self.generic_report
     self.comment_6.save()
开发者ID:545zhou,项目名称:osf.io,代码行数:35,代码来源:test_migrate_spam.py

示例3: get_paginated_response

    def get_paginated_response(self, data):
        """Add number of unread comments to links.meta when viewing list of comments filtered by
        a target node, file or wiki page."""
        response = super(CommentPagination, self).get_paginated_response(data)
        response_dict = response.data
        kwargs = self.request.parser_context['kwargs'].copy()

        if self.request.query_params.get('related_counts', False):
            target_id = self.request.query_params.get('filter[target]', None)
            node_id = kwargs.get('node_id', None)
            node = Node.load(node_id)
            user = self.request.user
            if target_id and not user.is_anonymous() and node.is_contributor(user):
                root_target = Guid.load(target_id)
                if root_target:
                    page = getattr(root_target.referent, 'root_target_page', None)
                    if page:
                        if not len(data):
                            unread = 0
                        else:
                            unread = Comment.find_n_unread(user=user, node=node, page=page, root_id=target_id)
                        if self.request.version < '2.1':
                            response_dict['links']['meta']['unread'] = unread
                        else:
                            response_dict['meta']['unread'] = unread
        return Response(response_dict)
开发者ID:alexschiller,项目名称:osf.io,代码行数:26,代码来源:pagination.py

示例4: test_comments_move_when_folder_moved_to_different_provider

    def test_comments_move_when_folder_moved_to_different_provider(self, destination_provider, destination_path):
        if self.provider == destination_provider:
            return True

        self.project.add_addon(destination_provider, auth=Auth(self.user))
        self.project.save()
        self.addon_settings = self.project.get_addon(destination_provider)
        self.addon_settings.folder = "/AddonFolder"
        self.addon_settings.save()

        source = {"path": "/subfolder/", "node": self.project, "provider": self.provider}
        destination = {
            "path": "/subfolder/",
            "node": self.project,
            "provider": destination_provider,
            "children": [{"path": "/subfolder/file.txt", "node": self.project, "provider": destination_provider}],
        }
        file_name = "file.txt"
        self._create_file_with_comment(node=source["node"], path="{}{}".format(source["path"], file_name))
        payload = self._create_payload("move", self.user, source, destination, self.file._id)
        update_file_guid_referent(self=None, node=destination["node"], event_type="addon_file_moved", payload=payload)
        self.guid.reload()

        file_node = FileNode.resolve_class(destination_provider, FileNode.FILE).get_or_create(
            destination["node"], destination_path
        )
        assert_equal(self.guid._id, file_node.get_guid()._id)
        file_comments = Comment.find(Q("root_target", "eq", self.guid._id))
        assert_equal(file_comments.count(), 1)
开发者ID:ycchen1989,项目名称:osf.io,代码行数:29,代码来源:test_comments.py

示例5: test_comments_move_when_folder_moved_to_different_provider

    def test_comments_move_when_folder_moved_to_different_provider(self, destination_provider, destination_path):
        if self.provider == destination_provider:
            return True

        self.project.add_addon(destination_provider, auth=Auth(self.user))
        self.project.save()
        self.addon_settings = self.project.get_addon(destination_provider)
        self.addon_settings.folder = '/AddonFolder'
        self.addon_settings.save()

        source = {
            'path': '/subfolder/',
            'node': self.project,
            'provider': self.provider
        }
        destination = {
            'path': '/subfolder/',
            'node': self.project,
            'provider': destination_provider,
            'children': [{
                    'path': '/subfolder/file.txt',
                    'node': self.project,
                    'provider': destination_provider
            }]
        }
        file_name = 'file.txt'
        self._create_file_with_comment(node=source['node'], path='{}{}'.format(source['path'], file_name))
        payload = self._create_payload('move', self.user, source, destination, self.file._id)
        update_file_guid_referent(self=None, node=destination['node'], event_type='addon_file_moved', payload=payload)
        self.guid.reload()

        file_node = FileNode.resolve_class(destination_provider, FileNode.FILE).get_or_create(destination['node'], destination_path)
        assert_equal(self.guid._id, file_node.get_guid()._id)
        file_comments = Comment.find(Q('root_target', 'eq', self.guid._id))
        assert_equal(file_comments.count(), 1)
开发者ID:545zhou,项目名称:osf.io,代码行数:35,代码来源:test_comments.py

示例6: test_comments_move_when_file_moved_to_osfstorage

    def test_comments_move_when_file_moved_to_osfstorage(self):
        osfstorage = self.project.get_addon('osfstorage')
        root_node = osfstorage.get_root()
        osf_file = root_node.append_file('file.txt')
        osf_file.create_version(self.user, {
            'object': '06d80e',
            'service': 'cloud',
            osfstorage_settings.WATERBUTLER_RESOURCE: 'osf',
        }, {
            'size': 1337,
            'contentType': 'img/png',
            'etag': 'abcdefghijklmnop'
        }).save()

        source = {
            'path': '/file.txt',
            'node': self.project,
            'provider': self.provider
        }
        destination = {
            'path': osf_file.path,
            'node': self.project,
            'provider': 'osfstorage'
        }
        self._create_file_with_comment(node=source['node'], path=source['path'])
        payload = self._create_payload('move', self.user, source, destination, self.file._id, destination_file_id=destination['path'].strip('/'))
        update_file_guid_referent(self=None, node=destination['node'], event_type='addon_file_moved', payload=payload)
        self.guid.reload()

        file_node = FileNode.resolve_class('osfstorage', FileNode.FILE).get_or_create(destination['node'], destination['path'])
        assert_equal(self.guid._id, file_node.get_guid()._id)
        file_comments = Comment.find(Q('root_target', 'eq', self.guid._id))
        assert_equal(file_comments.count(), 1)
开发者ID:545zhou,项目名称:osf.io,代码行数:33,代码来源:test_comments.py

示例7: get_context_data

 def get_context_data(self, **kwargs):
     item = Comment.load(self.kwargs.get('spam_id'))
     kwargs = super(SpamDetail, self).get_context_data(**kwargs)
     kwargs.setdefault('page_number', self.request.GET.get('page', 1))
     kwargs.setdefault('comment', serialize_comment(item))
     kwargs.setdefault('status', self.request.GET.get('status', u'1'))
     return kwargs
开发者ID:DanielSBrown,项目名称:osf.io,代码行数:7,代码来源:views.py

示例8: get_queryset

 def get_queryset(self):
     query = (
         Q("reports", "ne", {})
         & Q("reports", "ne", None)
         & Q("spam_status", "eq", int(self.request.GET.get("status", "1")))
     )
     return Comment.find(query).sort(self.ordering)
开发者ID:ccfair,项目名称:osf.io,代码行数:7,代码来源:views.py

示例9: test_comments_move_when_folder_moved_to_osfstorage

    def test_comments_move_when_folder_moved_to_osfstorage(self):
        osfstorage = self.project.get_addon("osfstorage")
        root_node = osfstorage.get_root()
        osf_folder = root_node.append_folder("subfolder")
        osf_file = osf_folder.append_file("file.txt")
        osf_file.create_version(
            self.user,
            {"object": "06d80e", "service": "cloud", osfstorage_settings.WATERBUTLER_RESOURCE: "osf"},
            {"size": 1337, "contentType": "img/png", "etag": "1234567890abcde"},
        ).save()

        source = {"path": "/subfolder/", "node": self.project, "provider": self.provider}
        destination = {
            "path": "/subfolder/",
            "node": self.project,
            "provider": "osfstorage",
            "children": [{"path": "/subfolder/file.txt", "node": self.project, "provider": "osfstorage"}],
        }
        file_name = "file.txt"
        self._create_file_with_comment(node=source["node"], path="{}{}".format(source["path"], file_name))
        payload = self._create_payload(
            "move", self.user, source, destination, self.file._id, destination_file_id=osf_file._id
        )
        update_file_guid_referent(self=None, node=destination["node"], event_type="addon_file_moved", payload=payload)
        self.guid.reload()

        file_node = FileNode.resolve_class("osfstorage", FileNode.FILE).get_or_create(destination["node"], osf_file._id)
        assert_equal(self.guid._id, file_node.get_guid()._id)
        file_comments = Comment.find(Q("root_target", "eq", self.guid._id))
        assert_equal(file_comments.count(), 1)
开发者ID:ycchen1989,项目名称:osf.io,代码行数:30,代码来源:test_comments.py

示例10: get_queryset

 def get_queryset(self):
     query = (
         Q('reports', 'ne', {}) &
         Q('reports', 'ne', None) &
         Q('spam_status', 'eq', int(self.request.GET.get('status', '1')))
     )
     return Comment.find(query).sort(self.ordering)
开发者ID:545zhou,项目名称:osf.io,代码行数:7,代码来源:views.py

示例11: form_valid

 def form_valid(self, form):
     spam_id = self.kwargs.get('spam_id')
     item = Comment.load(spam_id)
     try:
         if int(form.cleaned_data.get('confirm')) == Comment.SPAM:
             item.confirm_spam()
             item.is_deleted = True
             log_message = 'Confirmed SPAM: {}'.format(spam_id)
             log_action = CONFIRM_SPAM
         else:
             item.confirm_ham()
             item.is_deleted = False
             log_message = 'Confirmed HAM: {}'.format(spam_id)
             log_action = CONFIRM_HAM
         item.save()
     except AttributeError:
         raise Http404('Spam with id "{}" not found.'.format(spam_id))
     update_admin_log(
         user_id=self.request.user.id,
         object_id=spam_id,
         object_repr='Comment',
         message=log_message,
         action_flag=log_action
     )
     return super(SpamDetail, self).form_valid(form)
开发者ID:fredtoh,项目名称:osf.io,代码行数:25,代码来源:views.py

示例12: test_find_unread_new_comments

 def test_find_unread_new_comments(self):
     project = ProjectFactory()
     user = UserFactory()
     project.add_contributor(user)
     project.save()
     comment = CommentFactory(node=project, user=project.creator)
     n_unread = Comment.find_n_unread(user=user, node=project)
     assert_equal(n_unread, 1)
开发者ID:AllisonLBowers,项目名称:osf.io,代码行数:8,代码来源:test_comments.py

示例13: test_find_unread_does_not_include_deleted_comments

 def test_find_unread_does_not_include_deleted_comments(self):
     project = ProjectFactory()
     user = AuthUserFactory()
     project.add_contributor(user)
     project.save()
     comment = CommentFactory(node=project, user=project.creator, is_deleted=True)
     n_unread = Comment.find_n_unread(user=user, node=project)
     assert_equal(n_unread, 0)
开发者ID:AllisonLBowers,项目名称:osf.io,代码行数:8,代码来源:test_comments.py

示例14: get_context_data

 def get_context_data(self, **kwargs):
     spam_id = self.kwargs.get("spam_id")
     try:
         kwargs.setdefault("comment", serialize_comment(Comment.load(spam_id)))
     except AttributeError:
         raise Http404("Spam with id {} not found.".format(spam_id))
     kwargs.setdefault("page_number", self.request.GET.get("page", "1"))
     kwargs.setdefault("status", self.request.GET.get("status", "1"))
     return super(EmailFormView, self).get_context_data(**kwargs)
开发者ID:ccfair,项目名称:osf.io,代码行数:9,代码来源:views.py

示例15: test_find_unread_includes_edited_comments

    def test_find_unread_includes_edited_comments(self):
        project = ProjectFactory()
        user = AuthUserFactory()
        project.add_contributor(user)
        project.save()
        comment = CommentFactory(node=project, user=project.creator)

        url = project.api_url_for("update_comments_timestamp")
        payload = {"page": "node", "rootId": project._id}
        res = self.app.put_json(url, payload, auth=user.auth)
        user.reload()
        n_unread = Comment.find_n_unread(user=user, node=project, page="node")
        assert_equal(n_unread, 0)

        # Edit previously read comment
        comment.edit(auth=Auth(project.creator), content="edited", save=True)
        n_unread = Comment.find_n_unread(user=user, node=project, page="node")
        assert_equal(n_unread, 1)
开发者ID:ycchen1989,项目名称:osf.io,代码行数:18,代码来源:test_comments.py


注:本文中的website.project.model.Comment类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。