Exemplo n.º 1
0
def start_new_conversation_from_profile(request, recipent_pk):
    recipent = get_user_model().objects.get(pk=recipent_pk)

    if request.method == 'POST':
        form = forms.StartNewConversationFromProfile(request.POST)

        if form.is_valid():
            new_conversation = Conversation(
                subject=form.cleaned_data['subject'],
                initiator=request.user,
                recipent=recipent)
            new_conversation.save()

            first_message = Message(coversation=new_conversation,
                                    sender=request.user,
                                    receiver=recipent,
                                    content=form.cleaned_data['message'])
            first_message.save()

            return redirect('conversations:conversation_panel',
                            conversation_pk=new_conversation.pk)

        else:
            # TODO add error page
            print('error creating conversation - need to have page here')

    elif request.method == 'GET':
        form = forms.StartNewConversationFromProfile()
        return render(request,
                      'conversations/start_new_conversation.html',
                      context={
                          'recipent': recipent,
                          'form': form
                      })
Exemplo n.º 2
0
def conversation_view(request, conversation_pk):
    conversation = Conversation.objects.get(pk=conversation_pk)

    if request.method == 'POST':
        user = request.user
        addressee = conversation.recipent if conversation.initiator == user else conversation.initiator
        form = forms.ReplyToConversation(request.POST)

        if form.is_valid():
            reply = Message(conversation=conversation,
                            sender=user,
                            receiver=addressee,
                            content=form.cleaned_data['message'])

            reply.save()
            return redirect('conversations:conversation_page',
                            conversation_pk=conversation_pk)

        else:
            # TODO add error page
            print('error replying - need to have page here')

    elif request.method == 'GET':
        form = forms.ReplyToConversation()
        messages = Message.objects.filter(conversation=conversation)
        return render(request,
                      'conversations/conversation_page.html',
                      context={
                          'conversation': conversation,
                          'messages': messages,
                          'form': form
                      })
Exemplo n.º 3
0
 def test_that_messages_can_be_deleted(self):
     """Tests that messages can be deleted
     """
     message = Message(**self.msg_stub)
     message.save()
     self.assertIsNotNone(message.id)
     message.delete()
     self.assertIsNone(message.id)
Exemplo n.º 4
0
 def test_that_messages_can_be_read(self):
     """Tests that messages can be read
     """
     message = Message(**self.msg_stub)
     message.save()
     self.assertIsNotNone(message.id)
     message = Message.objects.latest('sent_at')
     self.assertEqual(message.subject, self.msg_stub['subject'])
Exemplo n.º 5
0
    def test_that_messages_can_be_replied_to(self):
        """Tests that messages can be replied to.
        """
        message = Message(**self.msg_stub)
        message.save()
        self.assertIsNotNone(message.id)
        self.msg_stub['parent_msg'] = message

        reply_msg = Message(**self.msg_stub)
        reply_msg.save()
        self.assertIsNotNone(reply_msg.id)
        self.assertEqual(reply_msg.parent_msg, self.msg_stub['parent_msg'])
Exemplo n.º 6
0
    def post(self, request, *args, **kwargs):
        """Dispatch message to start a new conversation"""
        recipient_username = request.POST.get('recipient') or 'admin'
        recipient = User.objects.get(username=recipient_username)
        payload = {
            'subject': request.POST.get('subject'),
            'sender': User.objects.get(username=request.user.username),
            'body': request.POST.get('body'),
            'recipient': recipient,
        }  # create new message payload

        mesg = Message(**payload)
        mesg.sent_at = timezone.now()
        mesg.save()

        alert.add_message(
            request, alert.SUCCESS,
            'New conversation started with {}.'.format(recipient.username))

        return redirect(reverse('message', kwargs={'m_id': mesg.id}))
Exemplo n.º 7
0
    def post(self, request, m_id):
        """Dispatch a reply to a conversation"""
        recipient_username = request.POST.get('recipient') or 'admin'
        recipient = User.objects.get(username=recipient_username)
        parent_msg_id = request.POST.get('parent_msg')

        message = Message.objects.get(id=int(parent_msg_id))
        message.replied_at = timezone.now()
        message.save()  # update replied at
        parent_msg_id = Message.objects.get(id=m_id)

        payload = {
            'sender': User.objects.get(username=request.user.username),
            'parent_msg': message,
            'body': request.POST.get('body'),
            'recipient': recipient,
        }  # create reply payload
        reply = Message(**payload)
        reply.sent_at = timezone.now()
        reply.save()

        alert.add_message(request, alert.SUCCESS, 'Message sent successfully.')

        return redirect(reverse('message', kwargs={'m_id': message.id}))
Exemplo n.º 8
0
# Usage:
# python manage.py makemigrations
# python manage.py migrate
# python manage.py < populateDatabase.py

from conversations.models import Message
m = Message(text="This was a triumph", user_id=1)
m.save()
m2 = Message(text="I'm making a note here…", parent=m, user_id=1)
m2.save()
m3 = Message(text="Huge success", parent=m, user_id=1)
m3.save()
m4 = Message(text="It's hard to overstate my satisfaction", parent=m2, user_id=1)
m4.save()
Exemplo n.º 9
0
user2.first_name = "Clara"
user2.last_name = "Nees"
user2.save()

user3 = User.objects.create_user('joe', '*****@*****.**', 'joepassword')
user3.first_name = "Joe"
user3.last_name = "Pohlman"
user3.save()

user4 = User.objects.create_user('brendan', '*****@*****.**', 'brendanpassword')
user4.first_name = "Brendan"
user4.last_name = "Killalea"
user4.save()

b1 = Message(topic="Book Club", text="What should we read this month?", user=user1)
b1.save()
b2 = Message(text="Sci-fi!", parent=b1, user=u)
b2.save()
b3 = Message(text="Eh, how about something angsty with more symbolism than plot and an unsatisfactory ending?", parent=b2, user=user2)
b3.save()
b4 = Message(text="Ooh, fun! Misery is the best! Let's read something by Steinbeck!", parent=b3, user=user3)
b4.save()
b5 = Message(text="War and Peace!", parent=b3, user=user3)
b5.save()
b6 = Message(text="Staaaaaahhhhhhhp.", parent=b3, user=u)
b6.save()
b7 = Message(text="Dictionary, by Daniel Webster", parent=b1, user=user4)
b7.save()
b8 = Message(text="Diccionario de la lengua española - Edición del Tricentenario", parent=b7, user=user3)
b8.save()
b9 = Message(text="Even better", parent=b8, user=user4)
Exemplo n.º 10
0
user2 = User.objects.create_user('clara', '*****@*****.**', 'clarapassword')
user2.first_name = "Clara"
user2.last_name = "Ness"
user2.save()

user3 = User.objects.create_user('joe', '*****@*****.**', 'joepassword')
user3.first_name = "Joe"
user3.last_name = "Pohlman"
user3.save()

user4 = User.objects.create_user('brendan', '*****@*****.**', 'brendanpassword')
user4.first_name = "Brendan"
user4.last_name = "Killalea"
user4.save()

# Add some messages
m1 = Message(text="ROOT 1", user=user1)
m1.save()
m2 = Message(text="1st CHILD OF ROOT 1", user=user2, parent=m1)
m2.save()
m3 = Message(text="2nd CHILD OF ROOT 1", user=user1, parent=m1)
m3.save()
m4 = Message(text="A descendant of root 1", user=user1, parent=m2)
m4.save()
m5 = Message(text="Another descendant of root 1", user=user2, parent=m3)
m5.save()
m6 = Message(text="Yet another descendant of root 1", user=user2, parent=m2)
m6.save()

m7 = Message(text="ROOT2", user=user4)
m7.save()
Exemplo n.º 11
0
user2.first_name = "Clara"
user2.last_name = "Nees"
user2.save()

user3 = User.objects.create_user('joe', '*****@*****.**', 'joepassword')
user3.first_name = "Joe"
user3.last_name = "Pohlman"
user3.save()

user4 = User.objects.create_user('brendan', '*****@*****.**', 'brendanpassword')
user4.first_name = "Brendan"
user4.last_name = "Killalea"
user4.save()

n1 = Message(topic="Good Nerf Guns?", text="I'm looking for some advice on dart based ballistics.", user=user1)
n1.save()
n2 = Message(user=user2, parent=n1, text="Dude, totally depends on what you're using for? We looking for a casual game of sissy darts or you wanna deal some real dammage?")
n2.save()
n3 = Message(user=user3, parent=n1, text="Maverick all the way")
n3.save()
n4 = Message(user=user1, parent=n2, text="There's this academic researcher that needs to be put in his place, I'm looking to bring the pain!")
n4.save()
n5 = Message(user=user2, parent=n4, text="The RapidStrike CS-18 is gonna be the best choice for you, you nefarious guy you.")
n5.save()
n6 = Message(user=user1, parent=n5, text="Nice! He'll never see it coming!.")
n6.save()
n7 = Message(user=user4, parent=n4, text="Lol, you should just hack his website or something. The duck flies at midnight, amiright!?")
n7.save()
n7 = Message(user=user3, parent=n4, text="Hey man, be careful whatever you do. You'd be surprised at how easy it is to track someones actions even if they try to delete their search histories and flee the country.")
n7.save()
n8 = Message(user=user4, parent=n1, text="Why not just go all out and get an airsoft gun?")