Example #1
0
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")))
Example #2
0
 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
Example #3
0
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")))
Example #4
0
 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
Example #5
0
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")))
Example #6
0
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})
Example #7
0
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)
Example #8
0
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)
Example #9
0
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
    })
Example #10
0
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
    })
Example #11
0
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
        })
Example #12
0
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
    })
Example #13
0
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")))
Example #14
0
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)