remotes/origin/PR-39
ArturBaybulatov 9 years ago
commit 8673fb7aef
  1. 14
      assets/js/chat.js
  2. 7
      assets/js/chat_contractor.js
  3. 8
      chat/chat.py
  4. 28
      chat/templates/chat_contractor.html
  5. 2
      templates/partials/base.html
  6. 3
      users/templatetags/user_tags.py
  7. 2
      wallets/signals.py
  8. 4
      wallets/views.py

@ -1,6 +1,6 @@
var SocketHandler = function () {
domain = domain.replace(':' + port, '');
var url = 'ws://' + domain + ':8888/chat/' + userId + '/';
var url = 'ws://' + domain + '/chat/' + userId + '/';
var sock = new WebSocket(url);
var intervalId;
sock.onopen = function () {
@ -92,7 +92,6 @@ $(function () {
});
}
var currentHash = URI(location.href).hash();
if (currentHash.indexOf("#order") == 0) {
var ordHashId = currentHash.replace("#order", "");
@ -124,6 +123,17 @@ $(function () {
$(".order-block").first().trigger('click');
location.hash = '';
}, 500);
setTimeout(function () {
var firstTeamBlock = $(".team-block").first();
var firstTeamOrder = $(".team-order-block").first();
if (firstTeamOrder.length == 1){
firstTeamOrder.trigger('click');
} else if(firstTeamBlock.length == 1){
firstTeamBlock.trigger('click');
}
location.hash = '';
}, 1000);
}
// Информация о заказе
$(".full-order-info").click('on', function (e) {

@ -1,8 +1,5 @@
$(function () {
var form = document.getElementById('message_form');
setTimeout(function () {
$(".team-order-block").first().trigger('click');
}, 1000);
var url = '/chat/create/';
@ -135,7 +132,6 @@ $(function () {
});
$(".team-order-block").on('click', function () {
$('.team-order-block, .team-block').each(function () {
$(this).removeClass('orAct');
});
@ -150,7 +146,6 @@ $(function () {
$("#add-form-team-note #teamNote").val(teamId);
$("#add-form-team-note #orderNote").val(orderId);
var inbox = document.getElementById('message-chat-team-space');
inbox.innerHTML = '';
var docList = document.getElementById('documentTeamSpace');
@ -218,6 +213,7 @@ $(function () {
});
$('.team-block').on('click', function () {
$('.team-order-block, .team-block').each(function () {
$(this).removeClass('orAct');
});
@ -502,7 +498,6 @@ $(function () {
});
$('#tab2').on('click', '.closeStage', function (e) {
e.preventDefault();
var stageId = $(this).attr('data-stage-id');

@ -56,9 +56,8 @@ class ChatHandler(websocket.WebSocketHandler):
def add_message(self, message_data):
sender_id = message_data['data']['sender_id']
recipent_id = message_data['data']['recipent_id']
recipent_id = message_data['data'].get('recipent_id', None)
order_id = message_data['data'].get('order_id', None)
team_id = message_data['data'].get('team_id', None)
message = message_data['data'].get('chat_message', None)
docs_send_links = message_data['data'].get('document_send_links', None)
@ -77,8 +76,9 @@ class ChatHandler(websocket.WebSocketHandler):
is_new = 'true'
is_delete = 'false'
team_value = "NULL" if team_id is None else team_id
if team_value and not recipent_id:
team_value = "NULL" if team_id is None or not team_id else team_id
if not team_id and not recipent_id:
recipent_id = sender_id
order_value = "NULL" if order_id is None or not order_id else order_id

@ -254,12 +254,12 @@
<span>Чаты:</span>
{% if request.user.pk != torder.team.owner.pk %}
<span class="team-chat-user"
data-id="{{ torder.team.owner.pk}}">{{ torder.team.owner.username }},</span>
data-id="{{ torder.team.owner.pk}}">{{ torder.team.owner.username }}</span>
{% endif %}
{% for tuser in torder.team.contractors.all %}
{% if request.user.pk != tuser.pk %}
<span class="team-chat-user"
data-id="{{ tuser.pk }}">{{ tuser.username }},</span>
data-id="{{ tuser.pk }}">{{ tuser.username }}</span>
{% endif %}
{% endfor %}
</p>
@ -289,10 +289,12 @@
<p class="pOB">
<span>Чаты:</span>
{% if request.user.pk != torder.team.owner.pk %}
<span class="team-chat-user" data-id="{{ yteam.owner.pk}}">{{ yteam.owner.username }},</span>
<span class="team-chat-user" data-id="{{ yteam.owner.pk}}">{{ yteam.owner.username }}</span>
{% endif %}
{% for tuser in yteam.contractors.all %}
{% if request.user.pk != tuser.pk %}
<span class="team-chat-user" data-id="{{ tuser.pk }}">{{ tuser.username }} </span>
{% endif %}
{% for tuser in yteam.contractors.all %}<span class="team-chat-user" data-id="{{ tuser.pk }}">{{ tuser.username }},</span>
{% endfor %}
</p>
@ -305,15 +307,15 @@
<div class="col-lg-6 commChat">
<div id="message-chat-team-space"></div>
<form id="team-chat-form">
<input type="hidden" name="sender" id="senderTeamId" value="{{ request.user.pk }}"/>
<input type="hidden" name="recipent" id="recipentTeamId" value=""/>
<input type="hidden" name="sender" id="senderTeamId" value="{{ request.user.pk }}">
<input type="hidden" name="recipent" id="recipentTeamId">
<input type="hidden" name="order" id="orderTeamId">
<input type="hidden" name="team" id="teamId" value=""/>
<input type="hidden" name="document-send" id="documentSendIds"/>
<input type="hidden" name="team" id="teamId">
<input type="hidden" name="document-send" id="documentSendIds">
<textarea id="chatText" class="chat-textarea box-sizing"></textarea>
<div class="bunChat">
<div class="setChat box-sizing upload">
<input type="file" name="file" id="upload-document-team"/>
<input type="file" name="file" id="upload-document-team">
<p>Прикрепить файл</p>
</div>
<div id="progress" class="progress">
@ -342,7 +344,7 @@
<form id="add-form-team-note">
<textarea id="chat2" name="text"></textarea>
<input type="hidden" name="order" id="orderNote">
<input type="hidden" name="sender" id="senderNote" value="{{ request.user.pk }}"/>
<input type="hidden" name="sender" id="senderNote" value="{{ request.user.pk }}">
<input type="hidden" name="recipent" id="recipentNote">
<input type="hidden" name="team" id="teamNote">
<a href="#" id="add-team-note-button">сохранить</a>
@ -352,9 +354,7 @@
</div>
</div>
<!-- End block Tab3-->
<!-- order-info -->
<!-- order-info -->
{% include 'order_info.html' %}
<!-- -->
</div>

@ -87,7 +87,7 @@
if ((queryString.indexOf('/chat') != 0) && (queryString.indexOf('/users/contractor-office/510/work-projects') != 0)) {
domain = domain.replace(':' + port, '');
var url = 'ws://' + domain + ':8888/chat/' + userId + '/';
var url = 'ws://' + domain + '/chat/' + userId + '/';
var sock = new WebSocket(url);
var intervalId;
sock.onopen = function () {

@ -30,7 +30,8 @@ def has_group(user, group_name):
@register.inclusion_tag('templatetags/user_new_count.html', takes_context=True)
def count_new_message(context, user):
new_count = 3
from chat.models import Message
new_count = Message.objects.filter(is_delete=False, is_new=True, recipent=user).count()
return {
'new_count': new_count,
}

@ -73,7 +73,7 @@ def reserve_stages(sender, instance, created, **kwargs):
@receiver(post_save, sender=PayFromScore)
def reserve_stages(sender, instance, created, **kwargs):
def reserve_stages_from_score(sender, instance, created, **kwargs):
order = None
stages_names = []
stages_ids_raw = instance.stages_id

@ -98,10 +98,6 @@ class AjaxableResponseMixin(object):
return response
# class WithDrawCreate(AjaxableResponseMixin, CreateView):
# model = WithDraw
# form_class = WithDrawForm
# success_url = '/'
class WithDrawCreate(CreateView):
model = WithDraw

Loading…
Cancel
Save