示例#1
0
文件: views.py 项目: hfercc/wboard
def private_message_list(request):
    kind = request.GET.get("kind", "") or request.POST.get("kind", "")
    objects = PrivateMessage.objects.filter_messages(request.user, kind)
    if kind == "all":
        utils.mark_read(objects)
        common.kv.ChannelKV(request.user).send_unread()
    user_id = request.GET.get("user_id", "") or request.POST.get("user_id", "")
    if user_id:
        objects = objects.filter(sender=user_id) + objects.filter(receiver=user_id)
    if not objects and request.method == "GET":
        raise Http404
    objects = utils.paginate_to_dict(objects, request)
    objects.update({"kind": kind})
    return objects
示例#2
0
文件: views.py 项目: hfercc/wboard
def history(request):
    id = request.POST.get("id", "")
    limit = int(request.POST.get("limit", 20))
    since_id = int(request.POST.get("since_id", 0))
    since_time = PrivateMessage.objects.get(id=since_id).created_time if since_id else datetime.now()
    print since_time
    if id:
        condition = ((Q(sender=request.user.id) & Q(receiver=id)) | (Q(receiver=request.user.id) & Q(sender=id))) & (
            Q(created_time__lt=since_time)
        )
    else:
        condition = Q(receiver=request.user.id) & Q(has_read=False)
    query_set = PrivateMessage.objects.filter(condition)
    result = {"objects": [i.message(request.user) for i in query_set[:limit]]}
    utils.mark_read(PrivateMessage.objects.filter(condition))
    return result
示例#3
0
文件: views.py 项目: hfercc/wboard
def notifications_list(request):
	kind = request.GET.get('kind','') or request.POST.get('kind','')
	if kind == 'all':
		args = {}
	elif kind == 'unread':
		args = {'has_read': False}
	else:
		raise Http404
	print args
	objects = []
	for i in ('status', 'comment'):
		q = get_class(i).objects.notifications(request.user).filter(**args)
		if kind == 'all':
			utils.mark_read(q)
			common.kv.ChannelKV(request.user).send_unread()
		objects += q
	notifications = utils.paginate_to_dict(
			objects,
			request
	)
	return notifications