|
|
|
@ -9,7 +9,7 @@ from wsgiref.util import FileWrapper |
|
|
|
|
|
|
|
|
|
|
|
from .response import JSONResponse, response_mimetype |
|
|
|
from .response import JSONResponse, response_mimetype |
|
|
|
from .utils import serialize |
|
|
|
from .utils import serialize |
|
|
|
from .models import Message, Documents |
|
|
|
from .models import Message, Documents, NewMessage |
|
|
|
from projects.models import Order, Project |
|
|
|
from projects.models import Order, Project |
|
|
|
from wallets.models import Transaction |
|
|
|
from wallets.models import Transaction |
|
|
|
from users.models import User, Team |
|
|
|
from users.models import User, Team |
|
|
|
@ -53,16 +53,25 @@ class ChatUserView(LoginRequiredMixin, View): |
|
|
|
users_ids.append(b) |
|
|
|
users_ids.append(b) |
|
|
|
if user_id: |
|
|
|
if user_id: |
|
|
|
users_ids.append(int(user_id)) |
|
|
|
users_ids.append(int(user_id)) |
|
|
|
print(users_ids) |
|
|
|
|
|
|
|
contacts_users = User.objects.filter(pk__in=users_ids) |
|
|
|
contacts_users = User.objects.filter(pk__in=users_ids) |
|
|
|
|
|
|
|
|
|
|
|
chat_messages = Message.objects.filter(Q(sender=request.user.pk) | Q(recipent=request.user.pk)) |
|
|
|
chat_messages = Message.objects.filter(Q(sender=request.user.pk) | Q(recipent=request.user.pk)) |
|
|
|
orders = request.user.customer_projects.select_related('order').filter(state='active').exclude(order__contractor__isnull=True, order__team__isnull=True) |
|
|
|
orders = request.user.customer_projects.select_related('order').filter(state='active').exclude(order__contractor__isnull=True, order__team__isnull=True) |
|
|
|
|
|
|
|
order_ids = [order.order.pk for order in orders] |
|
|
|
transaction = Transaction.objects.get_or_create(customer=request.user, type='reservation', complete=False) |
|
|
|
transaction = Transaction.objects.get_or_create(customer=request.user, type='reservation', complete=False) |
|
|
|
self.template_name = 'chat_customer.html' |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
contacts_users_count = request.user.new_messages.filter(message__sender__in=users_ids, |
|
|
|
|
|
|
|
message__order__isnull=True, |
|
|
|
|
|
|
|
message__team__isnull=True |
|
|
|
|
|
|
|
).count() |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
orders_ms_count = request.user.new_messages.filter(message__order__in=order_ids, message__team__isnull=True).count() |
|
|
|
|
|
|
|
self.template_name = 'chat_customer.html' |
|
|
|
return render(request, self.template_name, {'contacts_users': contacts_users, |
|
|
|
return render(request, self.template_name, {'contacts_users': contacts_users, |
|
|
|
'chat_messages': chat_messages, |
|
|
|
'chat_messages': chat_messages, |
|
|
|
|
|
|
|
'contacts_users_count': contacts_users_count, |
|
|
|
|
|
|
|
'orders_ms_count': orders_ms_count, |
|
|
|
'orders': orders, |
|
|
|
'orders': orders, |
|
|
|
'transaction': transaction[0], |
|
|
|
'transaction': transaction[0], |
|
|
|
'YANDEX_MONEY': settings.YANDEX_MONEY, |
|
|
|
'YANDEX_MONEY': settings.YANDEX_MONEY, |
|
|
|
@ -90,17 +99,31 @@ class ChatUserView(LoginRequiredMixin, View): |
|
|
|
users_ids.append(b) |
|
|
|
users_ids.append(b) |
|
|
|
if user_id: |
|
|
|
if user_id: |
|
|
|
users_ids.append(int(user_id)) |
|
|
|
users_ids.append(int(user_id)) |
|
|
|
|
|
|
|
|
|
|
|
contacts_users = User.objects.filter(pk__in=users_ids) |
|
|
|
contacts_users = User.objects.filter(pk__in=users_ids) |
|
|
|
|
|
|
|
contacts_users_count = request.user.new_messages.filter(message__sender__in=users_ids, |
|
|
|
|
|
|
|
message__order__isnull=True, |
|
|
|
|
|
|
|
message__team__isnull=True |
|
|
|
|
|
|
|
).count() |
|
|
|
chat_messages = Message.objects.filter(Q(sender=request.user.pk) | Q(recipent=request.user.pk)).order_by( |
|
|
|
chat_messages = Message.objects.filter(Q(sender=request.user.pk) | Q(recipent=request.user.pk)).order_by( |
|
|
|
'created') |
|
|
|
'created') |
|
|
|
|
|
|
|
|
|
|
|
your_teams = Team.objects.filter(Q(contractors__id=request.user.pk) | Q(owner=request.user)) |
|
|
|
your_teams = Team.objects.filter(Q(contractors__id=request.user.pk) | Q(owner=request.user)) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
orders_ms_count = request.user.new_messages.filter(message__order__in=orders, message__team__isnull=True).count() |
|
|
|
|
|
|
|
teams_ms_count = request.user.new_messages.filter(message__team__in=your_teams, message__order__isnull=True).count() |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
self.template_name = 'chat_contractor.html' |
|
|
|
self.template_name = 'chat_contractor.html' |
|
|
|
return render(request, self.template_name, {'orders': orders, |
|
|
|
return render(request, self.template_name, {'orders': orders, |
|
|
|
'contacts_users': contacts_users, |
|
|
|
'contacts_users': contacts_users, |
|
|
|
|
|
|
|
'contacts_users_count': contacts_users_count, |
|
|
|
|
|
|
|
'orders_ms_count': orders_ms_count, |
|
|
|
|
|
|
|
'teams_ms_count': teams_ms_count, |
|
|
|
'chat_messages': chat_messages, |
|
|
|
'chat_messages': chat_messages, |
|
|
|
'team_orders': team_orders, |
|
|
|
'team_orders': team_orders, |
|
|
|
'your_teams': your_teams, |
|
|
|
'your_teams': your_teams, |
|
|
|
|
|
|
|
|
|
|
|
}) |
|
|
|
}) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|