From cb33f9bd2a801c7e330d61407b836703f3cd68da Mon Sep 17 00:00:00 2001 From: Mukhtar Date: Thu, 22 Sep 2016 21:42:55 +0300 Subject: [PATCH] Fix chat open projects --- templates/partials/base.html | 2 +- .../partials/contractor_profile_tabs.html | 4 +++- users/templatetags/user_tags.py | 11 +++++++++++ users/views.py | 17 +---------------- 4 files changed, 16 insertions(+), 18 deletions(-) diff --git a/templates/partials/base.html b/templates/partials/base.html index 9211d34..ea2b62a 100644 --- a/templates/partials/base.html +++ b/templates/partials/base.html @@ -84,7 +84,7 @@ var port = '{{ request.META.SERVER_PORT }}'; var queryString = '{{ request.get_full_path }}'; - if ((queryString.indexOf('/chat') != 0) && (queryString.indexOf('/users/contractor-office/510/work-projects') != 0)) { + if ((queryString.indexOf('/chat') != 0) && (queryString.indexOf('/users/contractor-office/work-projects') != 0)) { domain = domain.replace(':' + port, ''); var url = 'ws://' + domain + '/chat/' + userId + '/'; var sock = new WebSocket(url); diff --git a/users/templates/partials/contractor_profile_tabs.html b/users/templates/partials/contractor_profile_tabs.html index ee6f40c..62c5d96 100644 --- a/users/templates/partials/contractor_profile_tabs.html +++ b/users/templates/partials/contractor_profile_tabs.html @@ -2,6 +2,8 @@ {% url 'users:contractor-office-open-projects' as contractor_office_open_projects_url %} {% url 'users:contractor-office-chat-projects' as contractor_office_chat_projects_url %} +{% load user_tags %} +
diff --git a/users/templatetags/user_tags.py b/users/templatetags/user_tags.py index c055723..54ae6e1 100644 --- a/users/templatetags/user_tags.py +++ b/users/templatetags/user_tags.py @@ -1,7 +1,9 @@ import math from django import template +from django.db.models import Q from chat.models import NewMessage from reviews.models import Review +from projects.models import Order register = template.Library() @@ -94,3 +96,12 @@ def get_reviews_count(user): return count +@register.simple_tag +def get_customer_chat_open_projects(user): + team_ids = [] + if user.is_owner_team(): + team_ids.append(user.team.pk) + count = Order.objects.filter(Q(contractor=user) | Q(team_id__in=team_ids)).count() + return count + + diff --git a/users/views.py b/users/views.py index a8094b5..453ff09 100644 --- a/users/views.py +++ b/users/views.py @@ -521,24 +521,9 @@ class ContractorChatProjectsView(View): team_ids = [] if request.user.is_owner_team(): team_ids.append(request.user.team.pk) - team_orders = request.user.team.orders.all() - else: - teams = Team.objects.filter(contractors__id=request.user.pk).all() - team_orders = Order.objects.filter(team_id__in=[team.pk for team in teams]).all() orders = Order.objects.filter(Q(contractor=request.user) | Q(team_id__in=team_ids)).all() - contractor_contacts = Message.objects.values_list('sender_id', 'recipent_id').filter( - Q(recipent_id=request.user.pk) | Q(sender_id=request.user.pk)).filter(Q(team_id=None)).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') + context['orders'] = orders return render(request, self.template_name, context)