' +
+ var senderName = 'Вы';
+ var className = 'youChat';
+ if(v.sender.id == userId){
+ senderName = v.sender.username;
+ className = '';
+ }
+
+ inbox.innerHTML += '
';
});
}
@@ -469,14 +481,15 @@ $(function () {
}
});
+ var inbox = $('#message-chat-space').html();
+ $('#message-chat-space').html(inbox + '
');
+
$("#chat").val("");
});
});
-
-
-
-
{% endblock %}
diff --git a/chat/templates/chat_customer.html b/chat/templates/chat_customer.html
index aab3ae6..57924d8 100644
--- a/chat/templates/chat_customer.html
+++ b/chat/templates/chat_customer.html
@@ -1,326 +1,378 @@
{% extends 'partials/base.html' %}
{% load staticfiles %}
+{% load thumbnail %}
{% block content %}
-{% include 'partials/header.html' %}
-
-
-
-
Чат
-
-
-
-
-
-
-
Контакты
- {% for contact in customer_contacts %}
-
-
- {% endfor %}
-
-
-
-
+
+ {% include 'partials/footer.html' %}
+
+
{% endblock %}
{% block js_block %}
+
{% endblock %}
diff --git a/chat/views.py b/chat/views.py
index 9bae005..e1d3b70 100644
--- a/chat/views.py
+++ b/chat/views.py
@@ -3,6 +3,7 @@ from django.views.generic import View
from django.db.models import Q
from .models import Message
+from users.models import User
class ChatUserView(View):
@@ -10,25 +11,40 @@ class ChatUserView(View):
def get(self, request, *args, **kwargs):
if request.user.is_authenticated() and request.user.is_customer():
- customer_contacts = Message.objects.values('sender_id','recipent_id').\
- filter(Q(recipent_id=request.user.pk)| Q(sender_id=request.user.pk)).distinct()
+ customer_contacts = Message.objects.values_list('sender_id', 'recipent_id'). \
+ filter(Q(recipent_id=request.user.pk) | Q(sender_id=request.user.pk)).distinct()
+
+ users_ids = []
+ for msg in customer_contacts:
+ a, b = msg
+ if a != request.user.pk:
+ users_ids.append(a)
+ if b != request.user.pk:
+ users_ids.append(b)
+ contacts_users = User.objects.filter(pk__in=users_ids)
+
chat_messages = Message.objects.filter(Q(sender=request.user.pk) | Q(recipent=request.user.pk))
orders = request.user.projects.select_related('order').all()
self.template_name = 'chat_customer.html'
- return render(request, self.template_name, {'customer_contacts': customer_contacts,
+ return render(request, self.template_name, {'contacts_users': contacts_users,
'chat_messages': chat_messages,
'orders': orders})
else:
orders = request.user.orders.all()
- # contractor_contacts = request.user.sender_messages.values('recipent_id').distinct('recipent_id').\
- # values('recipent_id__email', 'recipent_id__first_name', 'recipent_id__last_name', 'recipent_id__id')
- contractor_contacts = Message.objects.values('sender_id','recipent_id').\
- filter(Q(recipent_id=request.user.pk)| Q(sender_id=request.user.pk)).distinct()
-
- chat_messages = Message.objects.filter(Q(sender=request.user.pk) | Q(recipent=request.user.pk)).order_by('created')
+ contractor_contacts = Message.objects.values_list('sender_id', 'recipent_id').filter(
+ Q(recipent_id=request.user.pk) | Q(sender_id=request.user.pk)).distinct()
+ users_ids = []
+ for msg in contractor_contacts:
+ a, b = msg
+ if a != request.user.pk:
+ users_ids.append(a)
+ if b != request.user.pk:
+ users_ids.append(b)
+ contacts_users = User.objects.filter(pk__in=users_ids)
+ chat_messages = Message.objects.filter(Q(sender=request.user.pk) | Q(recipent=request.user.pk)).order_by(
+ 'created')
self.template_name = 'chat_contractor.html'
return render(request, self.template_name, {'orders': orders,
- 'contractor_contacts': contractor_contacts,
- 'chat_messages': chat_messages})
-
-
+ 'contacts_users': contacts_users,
+ 'chat_messages': chat_messages
+ })
diff --git a/templates/home.html b/templates/home.html
index ce3ac94..2052352 100644
--- a/templates/home.html
+++ b/templates/home.html
@@ -50,7 +50,7 @@