Fix chat open projects

remotes/origin/PR-39
Mukhtar 9 years ago
parent 9ff856205c
commit cb33f9bd2a
  1. 2
      templates/partials/base.html
  2. 4
      users/templates/partials/contractor_profile_tabs.html
  3. 11
      users/templatetags/user_tags.py
  4. 17
      users/views.py

@ -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);

@ -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 %}
<div class="profileTabs">
<ul class="nav nav-tabs nav-justified">
<li role="presentation">
@ -27,7 +29,7 @@
<a href="{{ contractor_office_chat_projects_url }}">Проекты в работе</a>
<div class="roundsCount">
<div class="countG">0</div>
<div class="countG">{% get_customer_chat_open_projects request.user %}</div>
</div>
</li>
</ul>

@ -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

@ -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)

Loading…
Cancel
Save