예제 #1
0
def notify_comment(**kwargs):
    """文章有评论时消息通知作者"""

    actor = kwargs['request'].user
    obj = kwargs['comment'].content_object

    notification_handler(actor, obj.user, 'C', obj)
예제 #2
0
 def test_notification(self):
     """单个通知"""
     Notification.objects.mark_all_as_read()
     obj = News.objects.create(user=self.user, content="内容示例", reply=True)
     notification_handler(self.other_user, self.user, "C",
                          obj)  # other_user评论了user
     assert Notification.objects.unread().count() == 1
예제 #3
0
def notify_comment(**kwargs):
    """文章有评论时候通知作者"""
    from django_comments.models import Comment
    actor = kwargs["request"].user
    obj = kwargs["comment"].content_object  # 评论的实体对象(实现由外键关联)

    notification_handler(actor, obj.user, "C", obj)
예제 #4
0
def notify_comments(**kwargs):
    """文章有评论时通知作者"""
    # 从参数中提取动作执行者,即哪个用户给此文章评论
    actor = kwargs["request"].user
    # from django_comments.models import Comment | Comment模型类 中的通用外键
    obj = kwargs["comment"].content_object

    notification_handler(actor, obj.user, "C", obj)
예제 #5
0
 def switch_like(self, user):
     """点赞或取消赞"""
     if user in self.liked.all():  # 如果用户已经赞过,则取消赞
         self.liked.remove(user)
     else:  # 如果用户没有赞过,则添加赞
         self.liked.add(user)
         # # 通知楼主
         notification_handler(user, self.user, 'L', self, id_value=str(self.uuid_id), key='social_update')
예제 #6
0
def notify_comment(**kwargs):
    """文章有评论时通知作者"""
    # kwargs['request'].user django-comments 传递的参数
    actor = kwargs['request'].user
    # kwargs['comment']获取 django-comments  实例  content_object通用外键 关联到其他类
    obj = kwargs['comment'].content_object

    notification_handler(actor, obj.user, 'C', obj)
예제 #7
0
 def switch_like(self, user):
     """
     点赞或者取消赞
     """
     if user in self.liked.all():
         self.liked.remove(user)
     else:
         self.liked.add(user)
         notification_handler(user, self.user, 'L', self, id_value=str(self.uuid_id), key='social_update')
예제 #8
0
파일: views.py 프로젝트: lujiawei94/zanhu
def accept_answer(request):
    """接受回答, AJAX POST
    已经被接受的回答不能取消"""
    answer_id = request.POST["answer"]
    answer = Answer.objects.get(pk=answer_id)
    if answer.question.user.username != request.user.username:
        raise PermissionDenied
    answer.accept_answer()
    notification_handler(request.user, answer.user, 'W', answer)
    return JsonResponse({'status': 'true'})
예제 #9
0
 def switch_like(self, user):
     """点赞或取消赞"""
     if user in self.liked.all():
         self.liked.remove(user)
     else:
         self.liked.add(user)
         # 通知楼主
         notification_handler(user,
                              self.user,
                              "L",
                              self,
                              id_value=str(self.uuid_id),
                              key="social_update")
예제 #10
0
 def switch_like(self, user):
     '''点赞或取消赞'''
     # 赞过则取消
     # liked多对多外键字段 直接.all() 获取获取数据
     if user in self.liked.all():
         self.liked.remove(user)
     # 未赞 则点赞
     else:
         self.liked.add(user)
         # 点赞时通知楼主
         # user 为点赞用户,self.user为动态作者 verb为L action_object 为 当前这条动态 为self
         # id_value key 为必须参数  key值不同则 notifications.JS触发不同
         notification_handler(user, self.user, "L", self, id_value=str(self.uuid_id), key="social_update")
예제 #11
0
파일: models.py 프로젝트: lujiawei94/zanhu
 def switch_like(self, user):  # user是哪个用户在点赞
     """点赞或取消赞"""
     if user in self.liked.all():
         self.liked.remove(user)
     else:
         self.liked.add(user)
         # 通知楼主
         if user.username != self.user.username:
             notification_handler(user,
                                  self.user,
                                  'L',
                                  self,
                                  id_value=str(self.uuid_id),
                                  key='social_update')
예제 #12
0
def accept_answer(request):
    """
    接受回答,AJAX POST请求
    已经被接受的回答用户不能取消
    """
    answer_id = request.POST["answer"]
    answer = Answer.objects.get(pk=answer_id)
    # 如果当前登录用户不是提问者,抛出权限拒绝错误
    if answer.question.user.username != request.user.username:
        raise PermissionDenied
    answer.accept_answer()
    # 通知回答者
    notification_handler(request.user, answer.user, 'W', answer)
    return JsonResponse({'status': 'true'}, status=200)
예제 #13
0
 def switch_like(self, user):
     #若用户已经点赞,则取消点赞
     if user in self.liked.all():
         self.liked.remove(user)
     #若用户没有点赞则点赞
     else:
         self.liked.add(user)
         #通知楼主
         notification_handler(user,
                              self.user,
                              'L',
                              self,
                              id_value=str(self.uuid_id),
                              key='social_update')
예제 #14
0
 def reply_this(self, user, text):
     #获取父级记录
     parent = self.get_parent()
     News.objects.create(
         user=user,
         reply=True,
         parent=parent,
         content=text,
     )
     notification_handler(user,
                          parent.user,
                          'R',
                          parent,
                          id_value=str(parent.uuid_id),
                          key='social_update')
예제 #15
0
파일: models.py 프로젝트: lujiawei94/zanhu
 def reply_this(self, user, text):
     """
     回复首页的动态
     :param user: 登录的用户
     :param text: 评论内容
     :return: None
     """
     parent = self.get_parent()
     News.objects.create(user=user, content=text, reply=True, parent=parent)
     notification_handler(user,
                          parent.user,
                          'R',
                          parent,
                          id_value=str(parent.uuid_id),
                          key='social_update')
예제 #16
0
    def reply_this(self, user, text):
        """
        回复首页的动态
        user -> 登录的用户
        test -> 回复的内容
        """
        # 获取父记录 获取动态
        parent = self.get_parent()

        News.objects.create(
            user=user,
            content=text,
            reply=True,
            parent=parent
        )
        notification_handler(user, parent.user, "R", parent, id_value=str(parent.uuid_id), key="social_update")
예제 #17
0
 def switch_like(self, user):
     '''点赞或取消赞'''
     # 赞过则取消
     # liked多对多外键字段 直接.all() 获取获取数据
     if user in self.liked.all(
     ):  # self.liked 多对多外键,通过外键查询关联表User的多条记录 相当于User.object.all()
         self.liked.remove(user)
     # 未赞 则点赞
     else:
         self.liked.add(user)
         # 添加赞时通知 楼主
         notification_handler(user,
                              self.user,
                              'L',
                              self,
                              id_value=str(self.uuid_id),
                              key="social_update")
예제 #18
0
def accept_answer(request):
    """
    接受回答,Ajax Post 请求
    已经被接受的答案用户不能取消
    """
    answer_id = request.POST["answer"]
    answer = Answer.objects.get(uuid_id=answer_id)

    # 如果当前登录用户不是提问者,抛出拒绝错误
    if answer.question.user.username != request.user.username:
        raise PermissionDenied

    answer.accept_answer()

    # 通知回答者
    # answer: 动作的对象
    notification_handler(request.user, answer.user, "W", answer)
    return JsonResponse({"status": "true"})
예제 #19
0
def accept_answer(request):
    """
    接受 ajax post 请求
    已经被接受的回答,用户不能取消,只能更换其他更好的唯一回答
    """
    answer_id = request.POST["answer"]
    answer = Answer.objects.get(pk=answer_id)

    # 验证当前登录用户为问题发起人
    if answer.question.user.username != request.user.username:
        # 注意这里需要用值且类型均相同作为判断,不建议用对象做是否相等的判断
        raise PermissionDenied

    answer.accpet_answer()

    # 通知回答者
    notification_handler(request.user, answer.user, "W", answer)

    return JsonResponse({"status": "true"})
예제 #20
0
    def reply_this(self, user_reply, text_reply):
        """
        回复首页的动态
        :param user_reply: 当前登录的用户
        :param text_reply: 回复的内容
		:return: None
        """
        parent_obj = self.get_parent()
        News.objects.create(
            # uuid_id =uuid.uuid4(),
            reply=True,
            user=user_reply,
            content=text_reply,
            parent=parent_obj)
        notification_handler(user_reply,
                             parent_obj.user,
                             "R",
                             parent_obj,
                             id_value=str(parent_obj.uuid_id),
                             key="social_update")
예제 #21
0
파일: views.py 프로젝트: Pysuper/ZanHu
def notify_comment(**kwargs):
    """文章有评论时,通知作者"""
    actor = kwargs["request"].user
    obj = kwargs["comment"].content_object  # 获取通用外键

    notification_handler(actor, obj.user, "C", obj)