diff --git a/chat/views.py b/chat/views.py
index 97bdb24..7dde354 100644
--- a/chat/views.py
+++ b/chat/views.py
@@ -9,7 +9,7 @@ from wsgiref.util import FileWrapper
from .response import JSONResponse, response_mimetype
from .utils import serialize
-from .models import Message, Documents
+from .models import Message, Documents, NewMessage
from projects.models import Order, Project
from wallets.models import Transaction
from users.models import User, Team
@@ -53,16 +53,25 @@ class ChatUserView(LoginRequiredMixin, View):
users_ids.append(b)
if user_id:
users_ids.append(int(user_id))
- print(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))
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)
- 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,
'chat_messages': chat_messages,
+ 'contacts_users_count': contacts_users_count,
+ 'orders_ms_count': orders_ms_count,
'orders': orders,
'transaction': transaction[0],
'YANDEX_MONEY': settings.YANDEX_MONEY,
@@ -90,17 +99,31 @@ class ChatUserView(LoginRequiredMixin, View):
users_ids.append(b)
if user_id:
users_ids.append(int(user_id))
+
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(
'created')
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'
return render(request, self.template_name, {'orders': orders,
'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,
'team_orders': team_orders,
'your_teams': your_teams,
+
})
diff --git a/projects/serializers.py b/projects/serializers.py
index 5266ea5..1e5dd40 100755
--- a/projects/serializers.py
+++ b/projects/serializers.py
@@ -80,7 +80,7 @@ class StageSerializer(ModelSerializer):
term = serializers.DateField(format="%d.%m.%Y", input_formats=['%d.%m.%Y',])
def validate(self, data):
- if hasattr(data, 'pos') and data['pos'] > 1:
+ if 'pos' in data and data['pos'] > 1:
pos = data['pos'] -1
stage_last = Stage.objects.filter(order=data['order'], pos=pos)
if stage_last:
diff --git a/users/models.py b/users/models.py
index 9dc2437..3a31d36 100644
--- a/users/models.py
+++ b/users/models.py
@@ -5,8 +5,6 @@ from django.db import models
from django.db.models import Sum
from django.utils import timezone, formats
from mptt.models import TreeForeignKey, TreeManyToManyField
-from pprint import pprint
-import datetime
import pydash as _; _.map = _.map_; _.filter = _.filter_
from archilance import util
@@ -216,9 +214,6 @@ class User(AbstractBaseUser, PermissionsMixin):
def has_team(self):
return self.is_contractor() and bool(util.get_related_or_none(self, 'team'))
- def is_owner_profile(self, user_id):
- pass
-
def is_owner_team(self):
return Team.objects.filter(owner=self.pk).exists()
diff --git a/users/templatetags/user_tags.py b/users/templatetags/user_tags.py
index 048f621..49d3e23 100644
--- a/users/templatetags/user_tags.py
+++ b/users/templatetags/user_tags.py
@@ -61,9 +61,10 @@ def get_new_count_message(team_pk,user=None):
count = NewMessage.objects.filter(user=user, message__team=team_pk, message__order__isnull=True).count()
return count
+
@register.simple_tag
def get_new_count_for_contact(contact, current_user):
- count = current_user.new_messages.filter(message__sender=contact).count()
+ count = current_user.new_messages.filter(message__sender=contact, message__order__isnull=True, message__team__isnull=True).count()
return count