#ARC-16 Fixes files delete

remotes/origin/PR-39
Mukhtar 9 years ago
parent ab01da98aa
commit d7fbf16443
  1. 4
      assets/css/extra.css
  2. 15
      assets/js/chat.js
  3. 8
      chat/chat.py
  4. 20
      chat/migrations/0011_documents_is_delete.py
  5. 1
      chat/models.py
  6. 9
      chat/serializers.py
  7. 21
      chat/templates/chat_contractor.html
  8. 21
      chat/templates/chat_customer.html
  9. 20
      projects/migrations/0026_auto_20160906_1621.py

@ -134,3 +134,7 @@
float: none;
margin: 19px 0 -10px 0;
}
.documentsChat > p {
font-size: 20px;
}

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

@ -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', '<br />')
@ -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)" \

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

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

@ -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 = '<br />'.join([doc.file.name for doc in documents])
# out += '<br />' + documents_str
documents = obj.documents.all()
if len(documents)>0:
documents_str = '<br />'.join(['<a href="'+doc.file.url+'">' + doc.file.name + '</a>' for doc in documents])
out += '<br />' + documents_str
return out

@ -89,12 +89,12 @@
<div class="col-lg-3 wrChat1">
<div class="col-lg-12 documentsChat">
<p>Входящие документы</p>
<p>Прикрепленные документы</p>
<ul id="documentSpace">
</ul>
{# <a href="javascript:void(0)">#}
{# Распечатать с помощью ресурса#}
{# </a>#}
<a href="{% url 'common:create' %}">
Распечатать с помощью ресурса
</a>
</div>
<div class="textAreaBlock2 box-sizing disTab">
<ul class="contractor-notes-block">
@ -206,11 +206,11 @@
<!-- -->
<div class="col-lg-12 documentsChat">
<p>Входящие документы</p>
<p>Прикрепленные документы</p>
<ul id="documentOrderSpace"></ul>
{# <a href="javascript:void(0)">#}
{# Распечатать с помощью ресурса#}
{# </a>#}
<a href="{% url 'common:create' %}">
Распечатать с помощью ресурса
</a>
</div>
<div class="textAreaBlock2 box-sizing disTab">
@ -553,6 +553,7 @@
var docList = document.getElementById('documentOrderSpace');
var inbox = document.getElementById('message-chat-order-space');
inbox.innerHTML = '';
docList.innerHTML = '';
$.ajax({
url: '/api/message',
@ -579,7 +580,9 @@
type: 'GET',
data:{
csrfmiddlewaretoken: csrftoken,
'order': orderId
'order': orderId,
'is_delete': false,
'is_send': true,
},
dataType: 'json',
success: function (json){

@ -83,12 +83,12 @@
</div>
<div class="col-lg-3 wrChat1">
<div class="col-lg-12 documentsChat">
<p>Входящие документы</p>
<p>Прикрепленные документы</p>
<ul id="documentSpace">
</ul>
{# <a href="javascript:void(0)">#}
{# Распечатать с помощью ресурса#}
{# </a>#}
<a href="{% url 'common:create' %}">
Распечатать с помощью ресурса
</a>
</div>
<div class="textAreaBlock2 box-sizing disTab">
@ -207,11 +207,11 @@
</div>
<div class="col-lg-12 documentsChat">
<p>Входящие документы</p>
<p>Прикрепленные документы</p>
<ul id="documentOrderSpace"></ul>
{# <a href="javascript:void(0)">#}
{# Распечатать с помощью ресурса#}
{# </a>#}
<a href="{% url 'common:create' %}">
Распечатать с помощью ресурса
</a>
</div>
<div class="textAreaBlock2 box-sizing disTab">
@ -635,7 +635,6 @@
});
// Для заказов все вытащить
$('.order-block').on('click', function () {
$("#chat-order-add").css("display", "block");
@ -668,7 +667,9 @@
type: 'GET',
data:{
csrfmiddlewaretoken: csrftoken,
'order': orderId
'order': orderId,
'is_delete': false,
'is_send': true,
},
dataType: 'json',
success: function (json){

@ -0,0 +1,20 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.9.7 on 2016-09-06 13:21
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('projects', '0025_merge'),
]
operations = [
migrations.AlterField(
model_name='stage',
name='status',
field=models.CharField(choices=[('not_agreed', 'Не согласован'), ('send_approve', 'На согласовании'), ('cancel_approve', 'Исполнитель отказался'), ('in_process', 'В процессе'), ('completed', 'Завершен')], default='not_agreed', max_length=30),
),
]
Loading…
Cancel
Save