diff --git a/assets/css/extra.css b/assets/css/extra.css index 9d3ee0c..0be3fb1 100644 --- a/assets/css/extra.css +++ b/assets/css/extra.css @@ -134,3 +134,7 @@ float: none; margin: 19px 0 -10px 0; } + +.documentsChat > p { + font-size: 20px; +} diff --git a/assets/js/chat.js b/assets/js/chat.js index c5632e1..f38847e 100644 --- a/assets/js/chat.js +++ b/assets/js/chat.js @@ -191,7 +191,6 @@ $(function () { }) }); - //Удаление документа $('.tab-content').on('click','.remove-document', function(e){ e.preventDefault(); @@ -199,10 +198,11 @@ $(function () { var _this = $(this); $.ajax({ url: '/api/documents/' + dataId +'/', - type: 'DELETE', + type: 'PATCH', beforeSend: function (xhr) { xhr.setRequestHeader("X-CSRFToken", getCookie('csrftoken')) }, + data: {is_delete:true}, dataType: 'json', success: function(json){ _this.parent().remove(); @@ -214,9 +214,7 @@ $(function () { }); }); - // Вытащить сообщения для конактов - $('.user-block').on('click', function () { var contactId = $(this).attr('data-id'); $("#contact-chat-form #recipentContactId").val(contactId); @@ -244,6 +242,8 @@ $(function () { 'operand': 'in', 'sender_id': userId, 'recipent_id': contactId, + 'is_delete': false, + 'is_send': true, }, dataType: 'json', @@ -368,6 +368,11 @@ $(function () { var orderId = $("#chat-order-add #orderId").val(); if (chatMessage) { + var sendLinks = $("#document-send-order a"); + var sendLinkIds = ""; + $.each(sendLinks, function(i, v){ + sendLinkIds += $(this).attr('data-id') + ';'; + }); socket.add_contact_message({ "format_type": "add_message_order", "data": { @@ -375,7 +380,7 @@ $(function () { "recipent_id": recipentId, "chat_message": chatMessage, "order_id": orderId, - + "document_send_links": sendLinkIds, } }); diff --git a/chat/chat.py b/chat/chat.py index 171bd6d..7c53ff4 100644 --- a/chat/chat.py +++ b/chat/chat.py @@ -59,7 +59,7 @@ class ChatHandler(websocket.WebSocketHandler): 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) - document_send_links = message_data['data'].get('document_send_links', None) + docs_send_links = message_data['data'].get('document_send_links', None) message = html.escape(message) message = message.replace('\n', '
') @@ -84,6 +84,12 @@ class ChatHandler(websocket.WebSocketHandler): cursor = cursor_list.get('cursor') result = cursor.fetchone() message_id = result[0] + if docs_send_links: + is_send = 'true' + docs_send_ids = docs_send_links.rstrip(';').replace(';', ',') + update_sql_documents = "UPDATE chat_documents SET message_id={0},is_send={1} WHERE id IN({2})".format(message_id, is_send, docs_send_ids) + yield self.db.execute(update_sql_documents) + select_last_sql = "SELECT chat_message.id, chat_message.text, chat_message.created, chat_message.sender_id," \ "users_user.id, users_user.username FROM chat_message" \ " INNER JOIN users_user ON (chat_message.sender_id = users_user.id)" \ diff --git a/chat/migrations/0011_documents_is_delete.py b/chat/migrations/0011_documents_is_delete.py new file mode 100644 index 0000000..89783b7 --- /dev/null +++ b/chat/migrations/0011_documents_is_delete.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.9.7 on 2016-09-06 13:33 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('chat', '0010_auto_20160901_1247'), + ] + + operations = [ + migrations.AddField( + model_name='documents', + name='is_delete', + field=models.BooleanField(default=False), + ), + ] diff --git a/chat/models.py b/chat/models.py index 585c754..f372c27 100644 --- a/chat/models.py +++ b/chat/models.py @@ -47,6 +47,7 @@ class Documents(models.Model): recipent = models.ForeignKey(User, related_name='recipent_documents', null=True, blank=True) created = models.DateTimeField(auto_now_add=True) is_send = models.BooleanField(default=False) + is_delete = models.BooleanField(default=False) message = models.ForeignKey(Message, related_name='documents', null=True, blank=True) def __str__(self): diff --git a/chat/serializers.py b/chat/serializers.py index 99a7d9c..d8c07cc 100644 --- a/chat/serializers.py +++ b/chat/serializers.py @@ -23,6 +23,7 @@ class DocumentsSerializer(ModelSerializer): 'team', 'order', 'is_send', + 'is_delete', 'message', ) @@ -59,10 +60,10 @@ class MessageSerializer(ModelSerializer): def get_text(self, obj): out = obj.text - # documents = obj.documents.all() - # if len(documents)>0: - # documents_str = '
'.join([doc.file.name for doc in documents]) - # out += '
' + documents_str + documents = obj.documents.all() + if len(documents)>0: + documents_str = '
'.join(['' + doc.file.name + '' for doc in documents]) + out += '
' + documents_str return out diff --git a/chat/templates/chat_contractor.html b/chat/templates/chat_contractor.html index 4aef569..d5b083c 100644 --- a/chat/templates/chat_contractor.html +++ b/chat/templates/chat_contractor.html @@ -89,12 +89,12 @@
-

Входящие документы

+

Прикрепленные документы

-{# #} -{# Распечатать с помощью ресурса#} -{# #} + + Распечатать с помощью ресурса +