remotes/origin/PR-39
ArturBaybulatov 9 years ago
commit 3c3a299152
  1. 2
      assets/js/chat.js
  2. 20
      assets/js/chat_contractor.js
  3. 5
      assets/js/chat_customer.js
  4. 18
      chat/admin.py
  5. 1
      chat/chat.py
  6. 8
      chat/templates/chat_contractor.html
  7. 7
      chat/templates/chat_customer.html
  8. 13
      chat/views.py
  9. 2
      projects/models.py
  10. 6
      users/templates/contractor_profile.html

@ -338,7 +338,7 @@ function dialog (message, yesCallback, notCallback) {
$("#message-chat-space").removeClass().addClass("contact-space" + sumSenderRecipent); $("#message-chat-space").removeClass().addClass("contact-space" + sumSenderRecipent);
var currNewCount = parseInt($(".contact-count-" + sumSenderRecipent).text()); var currNewCount = parseInt($(".contact-count-" + sumSenderRecipent).text());
var resCount = newCount - currNewCount; var resCount = newCount - currNewCount;
$("#count-tab-contact").text(newCount - currNewCount); $("#count-tab-contact").text(resCount);
$(".contact-count-" + sumSenderRecipent).text(0); $(".contact-count-" + sumSenderRecipent).text(0);
var docList = document.getElementById('documentSpace'); var docList = document.getElementById('documentSpace');
inbox.innerHTML = ''; inbox.innerHTML = '';

@ -191,6 +191,13 @@ $(function () {
var teamId = $(this).attr('data-team-id'); var teamId = $(this).attr('data-team-id');
var orderId = $(this).attr('data-order-id'); var orderId = $(this).attr('data-order-id');
location.hash = '#teamorder' + orderId; location.hash = '#teamorder' + orderId;
var newCount = parseInt($("#count-tab-team").text());
var currNewCount = parseInt($(".teamorder-count-" + teamId).text());
var resCount = newCount - currNewCount;
$("#count-tab-team").text(resCount);
$(".teamorder-count-" + teamId).text(0)
$("#team-chat-form #teamId").val(teamId); $("#team-chat-form #teamId").val(teamId);
$("#team-chat-form #recipentTeamId").val(""); $("#team-chat-form #recipentTeamId").val("");
$("#team-chat-form #orderTeamId").val(orderId); $("#team-chat-form #orderTeamId").val(orderId);
@ -285,6 +292,13 @@ $(function () {
var teamId = $(this).attr('data-team-id'); var teamId = $(this).attr('data-team-id');
location.hash = '#myteam' + teamId; location.hash = '#myteam' + teamId;
var newCount = parseInt($("#count-tab-team").text());
var currNewCount = parseInt($(".team-count-" + teamId).text());
var resCount = newCount - currNewCount;
$("#count-tab-team").text(resCount);
$(".team-count-" + teamId).text(0)
$("#team-chat-form #teamId").val(teamId); $("#team-chat-form #teamId").val(teamId);
$("#add-form-team-note #teamNote").val(teamId); $("#add-form-team-note #teamNote").val(teamId);
$("#team-chat-form #recipentTeamId").val(""); $("#team-chat-form #recipentTeamId").val("");
@ -363,6 +377,12 @@ $(function () {
var projectId = $(this).attr('data-project-id'); var projectId = $(this).attr('data-project-id');
var teamCurrentId = parseInt($(this).attr('data-team-id')); var teamCurrentId = parseInt($(this).attr('data-team-id'));
var newCount = parseInt($("#count-tab-order").text());
var currNewCount = parseInt($(".order-count-" + orderId).text());
var resCount = newCount - currNewCount;
$("#count-tab-order").text(resCount);
$(".order-count-" + orderId).text(0);
if (teamCurrentId>0){ if (teamCurrentId>0){
$("#fromTeamId").val(teamCurrentId); $("#fromTeamId").val(teamCurrentId);
$("#fromContractorId").val(""); $("#fromContractorId").val("");

@ -449,6 +449,11 @@ $(function () {
var secureOrder = $(this).attr('data-secure-deal'); var secureOrder = $(this).attr('data-secure-deal');
secureOrder = Boolean(secureOrder); secureOrder = Boolean(secureOrder);
var currNewCount = parseInt($(".order-count-" + orderId).text());
var resCount = newCount - currNewCount;
$("#count-tab-order").text(resCount);
$(".order-count-" + orderId).text(0);
var teamCurrentId = parseInt($(this).attr('data-team-id')); var teamCurrentId = parseInt($(this).attr('data-team-id'));
if (teamCurrentId>0){ if (teamCurrentId>0){

@ -14,7 +14,23 @@ class DocumentsAdmin(admin.ModelAdmin):
list_display = ('sender', 'recipent', 'order','team') list_display = ('sender', 'recipent', 'order','team')
class NewMessageAdmin(admin.ModelAdmin):
list_display = ('user', 'message_pk','message_recipent', 'message_order','message_team')
def message_pk(self, obj):
return obj.message.pk
def message_recipent(self, obj):
return obj.message.recipent
def message_order(self, obj):
return obj.message.order
def message_team(self, obj):
return obj.message.team
admin.site.register(Message, MessageAdmin) admin.site.register(Message, MessageAdmin)
admin.site.register(Notes, NotesAdmin) admin.site.register(Notes, NotesAdmin)
admin.site.register(Documents, DocumentsAdmin) admin.site.register(Documents, DocumentsAdmin)
admin.site.register(NewMessage) admin.site.register(NewMessage, NewMessageAdmin)

@ -30,7 +30,6 @@ class ChatHandler(websocket.WebSocketHandler):
# @gen.coroutine # @gen.coroutine
def on_message(self, message): def on_message(self, message):
parsed = escape.json_decode(message) parsed = escape.json_decode(message)
print(parsed)
if 'dummy' in parsed: if 'dummy' in parsed:
return return

@ -127,11 +127,14 @@
<span class="dimovChat"></span> <span class="dimovChat"></span>
<p class="titleOB">{{ order }}</p> <p class="titleOB">{{ order }}</p>
<div class="hideOBB"> <div class="hideOBB">
<p class="pOB"><span>Исполнитель:</span> {{ request.user.get_full_name }}</p> <p class="pOB">
<span style="display: none;" class="order-count-{{ order.id }}">{% get_new_count_for_order request.user order.id %}</span>
<span>Исполнитель:</span> {{ request.user.get_full_name }}</p>
<a href="#" class="linkChat11 full-order-info"> <a href="#" class="linkChat11 full-order-info">
<span class="glyphicon glyphicon-info-sign" aria-hidden="true"></span> <span class="glyphicon glyphicon-info-sign" aria-hidden="true"></span>
Полное описание заказа Полное описание заказа
</a> </a>
</div> </div>
</div> </div>
@ -283,6 +286,8 @@
</p> </p>
<div class="hideOBB disTab"> <div class="hideOBB disTab">
<p class="pOB"> <p class="pOB">
<span style="display: none;" class="teamorder-count-{{ torder.team.id }}">{% get_new_count_for_team request.user torder.team.id torder.pk %}</span>
<span>Исполнитель:</span> {{ torder.team.name }} <span>Исполнитель:</span> {{ torder.team.name }}
</p> </p>
<ul class="listChat1"> <ul class="listChat1">
@ -319,6 +324,7 @@
</p> </p>
<div class="hideOBB disTab"> <div class="hideOBB disTab">
<p class="pOB"> <p class="pOB">
<span style="display: none;" class="team-count-{{ yteam.id }}">{% get_new_count_for_team request.user yteam.id %}</span>
<span>Владелец группы:</span> {{ yteam.owner }} <span>Владелец группы:</span> {{ yteam.owner }}
</p> </p>
<ul class="listChat1"> <ul class="listChat1">

@ -140,6 +140,7 @@
<p class="titleOB">{{ order }}</p> <p class="titleOB">{{ order }}</p>
<div class="hideOBB"> <div class="hideOBB">
<p class="pOB"> <p class="pOB">
<span style="display: none;" class="order-count-{{ order.id }}">{% get_new_count_for_order request.user order.id %}</span>
<span>Исполнитель:</span> <span>Исполнитель:</span>
{% if order.order.contractor %} {% if order.order.contractor %}
{{ order.order.contractor.get_full_name }} {{ order.order.contractor.get_full_name }}
@ -151,9 +152,9 @@
<span class="glyphicon glyphicon-info-sign" aria-hidden="true"></span> <span class="glyphicon glyphicon-info-sign" aria-hidden="true"></span>
Полное описание заказа Полное описание заказа
</a> </a>
<a href="#" class="deleteOrder" data-project-id="{{ order.pk }}"> {# <a href="#" class="deleteOrder" data-project-id="{{ order.pk }}">#}
Удалить заказ {# Удалить заказ#}
</a> {# </a>#}
</div> </div>
</div> </div>

@ -81,11 +81,12 @@ class ChatUserView(LoginRequiredMixin, View):
team_ids = [] team_ids = []
if request.user.is_owner_team(): if request.user.is_owner_team():
team_ids.append(request.user.team.pk) team_ids.append(request.user.team.pk)
team_orders = request.user.team.orders.all() # team_orders = request.user.team.orders.all()
# teams = Team.objects.filter(contractors__id=request.user.pk).all() # # teams = Team.objects.filter(contractors__id=request.user.pk).all()
else: # 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() teams = Team.objects.filter(Q(contractors__id=request.user.pk) | Q(owner=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)).filter(project__state='active') orders = Order.objects.filter(Q(contractor=request.user) | Q(team_id__in=team_ids)).filter(project__state='active')
archive_orders = Order.objects.filter(Q(contractor=request.user) | Q(team_id__in=team_ids)).exclude(project__state='active') archive_orders = Order.objects.filter(Q(contractor=request.user) | Q(team_id__in=team_ids)).exclude(project__state='active')
@ -113,7 +114,7 @@ class ChatUserView(LoginRequiredMixin, View):
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() 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() teams_ms_count = request.user.new_messages.filter(message__team__in=your_teams).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,

@ -73,7 +73,7 @@ class Realty(models.Model):
class Project(models.Model, HitCountMixin): class Project(models.Model, HitCountMixin):
WORK_TYPES = ( WORK_TYPES = (
(1, 'Проектирование'), (1, 'Проектирование'),
(2, 'Проверка документации'), (2, 'Техническое сопровождение'),
# (3, 'Устранение замечаний в проекте'), # (3, 'Устранение замечаний в проекте'),
) )

@ -91,8 +91,10 @@
{% else %} {% else %}
<div class="statusUser busy">Занят</div> <div class="statusUser busy">Занят</div>
{% endif %} {% endif %}
<a href="#" data-toggle="modal" data-target="#contact-contactor-modal" class="showCon">показать контакты</a> {% if request.user.is_authenticated %}
<a href="#" data-toggle="modal" data-target="#contact-contactor-modal" class="showCon">показать контакты</a>
{% endif %}
</div> </div>
<div class="col-lg-4"> <div class="col-lg-4">
{% specialization_widget contractor.pk %} {% specialization_widget contractor.pk %}

Loading…
Cancel
Save