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
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
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