def messages_change_state(request): if request.method == "POST": choice = request.POST.get("choice", False) # get all message ids in the format `cb_[number]` which have a value of 'on' message_ids = [] for key, val in request.POST.items(): if key.startswith('cb_') and val == 'on': try: msgid = int(key.replace('cb_', '')) message_ids.append(msgid) except ValueError: pass if choice and message_ids: messages = Message.objects.filter( Q(user_to=request.user, is_sent=False) | Q(user_from=request.user, is_sent=True)).filter( id__in=message_ids) if choice == "a": messages.update(is_archived=True) elif choice == "d": messages.delete() elif choice == "r": messages.update(is_read=True) invalidate_template_cache("user_header", request.user.id) return HttpResponseRedirect(request.POST.get("next", reverse("messages")))
def process_commitment_card(self, user, new_user=False): # Are there any event_commitments for this user that were updated after the user's last_login timestamp? if new_user: commitments = Commitment.objects.filter(contributor__email=user.email, action__isnull=False) else: commitments = Commitment.objects.filter(updated__gt=user.last_login, contributor__email=user.email, action__isnull=False) changes = [] # If yes, apply those commitments to the user's account for commitment in commitments: try: # If there is a conflict, go with the later of: user's action date | event date uap = UserActionProgress.objects.get(action=commitment.action, user=user) if commitment.answer == "D": commitment.action.complete_for_user(user) changes.append(commitment) except UserActionProgress.DoesNotExist: if commitment.answer == "D": commitment.action.complete_for_user(user) elif commitment.answer == "C": uap, record = commitment.action.commit_for_user(user, commitment.date_committed, add_to_stream=False) # transition the guest commitment messages to user commitment messages messages = Queue.objects.filter(content_type=ContentType.objects.get_for_model(commitment), object_pk=commitment.pk) messages.update(content_type=ContentType.objects.get_for_model(uap), object_pk=uap.pk, batch_content_type=ContentType.objects.get_for_model(uap.user), batch_object_pk=uap.user.pk) changes.append(commitment) return changes
def messages_change_state(request): if request.method == "POST": choice = request.POST.get("choice", False) # get all ids, prefixed by "cb_" and after than an integer # only get the checkboxes that are "on" message_ids = filter(lambda x: x != None, [ exceptional(int)(key.replace("cb_", "")) for key in request.POST.keys() if key.startswith("cb_") and request.POST.get(key) == "on" ]) if choice and message_ids: messages = Message.objects.filter( Q(user_to=request.user, is_sent=False) | Q(user_from=request.user, is_sent=True)).filter( id__in=message_ids) if choice == "a": messages.update(is_archived=True) elif choice == "d": messages.delete() elif choice == "r": messages.update(is_read=True) invalidate_template_cache("user_header", request.user.id) return HttpResponseRedirect(request.POST.get("next", reverse("messages")))
def messages_change_state(request): if request.method == "POST": choice = request.POST.get("choice", False) # get all message ids in the format `cb_[number]` which have a value of 'on' message_ids = [] for key, val in request.POST.items(): if key.startswith('cb_') and val == 'on': try: msgid = int(key.replace('cb_', '')) message_ids.append(msgid) except ValueError: pass if choice and message_ids: messages = Message.objects.filter(Q(user_to=request.user, is_sent=False) | Q(user_from=request.user, is_sent=True)).filter(id__in=message_ids) if choice == "a": messages.update(is_archived=True) elif choice == "d": messages.delete() elif choice == "r": messages.update(is_read=True) invalidate_template_cache("user_header", request.user.id) return HttpResponseRedirect(request.POST.get("next", reverse("messages")))
def chatroom(request, pk:int): other_user = get_object_or_404(User, pk=pk) messages = Message.objects.filter( Q(receiver=request.user, sender=other_user) ) messages.update(seen=True) messages = messages | Message.objects.filter(Q(receiver=other_user, sender=request.user) ) return render(request, "chatroom.html", {"other_user": other_user, "messages": messages})
def portfolio_view(request, display='false'): messages={} if 'messages' in request.session.keys(): messages.update(request.session['messages']) del request.session['messages'] request.session.modified = True portfolio_summary, total_portfolio_profit, messages2 = purchases.get_portfolio_info(request.user) messages.update(messages2) context = {'portfolio':portfolio_summary, 'total_portfolio_profit':total_portfolio_profit, 'display': display, 'messages': messages} return render(request, 'simulator/my_portfolio.html', context)
def purchases_view(request, defaultCode=""): messages={} if 'messages' in request.session.keys(): messages.update(request.session['messages']) del request.session['messages'] request.session.modified = True purchase_summary, messages2 = purchases.get_purchases_info(request.user, False) messages.update(messages2) codes = purchases.get_unique_purchases_codes(request.user, False) context = {'purchases':purchase_summary, 'codes':codes, "defaultCode":defaultCode, 'messages': messages} return render(request, 'simulator/purchases.html', context)
def u_messages(request, username): conversations = Message.get_conversations(user=request.user) active_conversation = username messages = Message.objects.filter(user=request.user, conversation__username=username) messages.update(is_read=True) for conversation in conversations: if conversation['user'].username == username: conversation['unread'] = 0 return render(request, 'mentoring/profile.html', { 'messages': messages, 'conversations': conversations, 'active': active_conversation })
def send_messages(request, id): #to mark messages as read user_from = users.objects.get(id=request.session['user_id']) user_to = users.objects.get(id=request.POST['friend_id']) messages = Messages.objects.filter(user_from=user_to).filter( user_to=user_from) messages.update(was_read=True) my_messages = Messages.objects.filter( user_from__in=[user_from, user_to]).filter( user_to__in=[user_from, user_to]).order_by("created_at") return render(request, 'login_app/partials_send_message.html', { 'user_from': user_from, 'user_to': user_to, "messages": my_messages })
def messages(request, username): conversations = Message.get_conversations(user=request.user) users_list = User.objects.filter(is_active=True).exclude( username=request.user).order_by('username') active_conversation = username messages = Message.objects.filter(user=request.user, conversation__username=username) messages.update(is_read=True) for conversation in conversations: if conversation['user'].username == username: conversation['unread'] = 0 return render( request, 'super_admin/messenger/inbox.html', { 'messages': messages, 'conversations': conversations, 'users_list': users_list, 'active': active_conversation })
def u_inbox(request): conversations = Message.get_conversations(user=request.user) active_conversation = None messages = None if conversations: conversation = conversations[0] active_conversation = conversation['user'].username messages = Message.objects.filter(user=request.user, conversation=conversation['user']) messages.update(is_read=True) for conversation in conversations: if conversation['user'].username == active_conversation: conversation['unread'] = 0 return render(request, 'mentoring/profile.html', { 'messages': messages, 'conversations': conversations, 'active': active_conversation })
def messages_change_state(request): if request.method == "POST": choice = request.POST.get("choice", False) # get all ids, prefixed by "cb_" and after than an integer # only get the checkboxes that are "on" message_ids = filter(lambda x: x != None, [exceptional(int)(key.replace("cb_", "")) for key in request.POST.keys() if key.startswith("cb_") and request.POST.get(key) == "on"]) if choice and message_ids: messages = Message.objects.filter(Q(user_to=request.user, is_sent=False) | Q(user_from=request.user, is_sent=True)).filter(id__in=message_ids) if choice == "a": messages.update(is_archived=True) elif choice == "d": messages.delete() elif choice == "r": messages.update(is_read=True) invalidate_template_cache("user_header", request.user.id) return HttpResponseRedirect(request.POST.get("next", reverse("messages")))
def ajax_load_messages(request, pk): other_user = get_object_or_404(User, pk=pk) messages = Message.objects.filter(seen=False).filter( Q(receiver=request.user, sender=other_user) ) message_list = [{ "sender": message.sender.username, "message": message.message, "sent": message.sender == request.user } for message in messages] messages.update(seen=True) if request.method == "POST": message = json.loads(request.body) m = Message.objects.create(receiver=other_user, sender=request.user, message=message) message_list.append({ "sender": request.user.username, "message": m.message, "sent": True, }) print(message_list) return JsonResponse(message_list, safe=False)
def my_watchlist_view(request, messages={}, display='false'): messages_2 = {} wlist, messages_2 = watchlist.list_watchlist(request.user, messages_2) messages.update(messages_2) context = {'wlist': wlist, 'messages': messages_2, 'display': display} return render(request, 'simulator/my_watchlist.html', context)