diff --git a/api/views.py b/api/views.py index 7c05923..cf3e1f8 100755 --- a/api/views.py +++ b/api/views.py @@ -75,6 +75,17 @@ class DocumentViewSet(ModelViewSet): # filter_class = DocumentsFilterSet # permission_classes = (permissions.IsAuthenticatedOrReadOnly,) + def get_queryset(self): + queryset = Documents.objects.all() + search_param = self.request.query_params.get('operand', None) + recipent_id = self.request.query_params.get('recipent_id', None) + sender_id = self.request.query_params.get('sender_id', None) + if search_param: + # import code; code.interact(local=dict(globals(), **locals())) + if search_param == 'in': + queryset = queryset.filter(Q(sender__in=[sender_id,recipent_id]),Q(recipent__in=[sender_id,recipent_id])).order_by('created') + return queryset + class ProjectViewSet(ModelViewSet): queryset = Project.objects.all() diff --git a/assets/css/main.css b/assets/css/main.css index 23624e2..3ed09cb 100644 --- a/assets/css/main.css +++ b/assets/css/main.css @@ -5524,7 +5524,7 @@ input[type="radio"]:checked + span { width: 216px; } .proj_answ_form .textAreaBlock2 input[name="term"]{ - width: 262px; + width: 258px; } .proj_answ_form .textAreaBlock2 p span{ position: absolute; @@ -5759,7 +5759,7 @@ input[type="radio"]:checked + span { margin-bottom: 0 !important } .infoProfile .dropdown-menu{ - height: 316px; + height: auto; } .form-regestration{ padding: 20px 0 40px 0; @@ -5819,4 +5819,87 @@ input[type="radio"]:checked + span { text-transform: initial; letter-spacing: normal; } +.fr_answer{ + width: 100%; + height: 110px; + border: 1px solid #cdcdcd; + resize: none; + padding: 10px 15px; + color: #3c1a06; + font-family: 'Arial-MT-Regular', sans-serif; + font-size: 14px; + float: left; + margin: 0px 0px 0px 55px; +} +.fr_answer_sen{ + float: left; + border-radius: 40px; + font-family: 'pfdintextcomppro-regular', sans-serif; + letter-spacing: 2px; + color: #373737; + margin: 20px 0 0 55px; + font-size: 15px; + border: 1px solid #BEBEBE; + padding: 17px 46px; + text-transform: uppercase; +} +.fa-pencil:before, .fa-times:before{ + color: #fff; +} +.mainMenu li.active > a { + border-color: #ff0029; +} +.mainMenu li.icon_tm1.active span{ + background: url('../img/listMain2.png') no-repeat !important; +} +.mainMenu li.officeList.active span { + background: url('../img/list4tml.png') no-repeat center !important; +} +.mainMenu li.icon_tm2.active span{ + background: url('../img/listMain2.png') no-repeat center !important; +} +.mainMenu li.icon_tm3.active span{ + background: url('../img/listMain2.png') no-repeat right !important; +} +.faq_page_inn{ + padding: 40px 0; +} +.faq_page_inn h2 { + font-size: 32px; + font-weight: normal; + margin-bottom: 20px; + margin-top: 10px; +} +.faq_page_inn h3{ + font-weight: 600; + margin-bottom: 12px; + margin-top: 28px; + font-size: 1.17em; +} +.faq_page_inn ol, .faq_page_inn ul{ + padding-left: 40px; + margin-top: 20px; +} +.faq_page_inn ol li, .faq_page_inn ul li{ + padding-left: 8px; + list-style: inherit !important; + display: list-item; + list-style-type:inherit !important; + margin-top: 5px; +} +.faq_page_inn a{ + text-decoration: underline !important; +} +.faq_page_inn a:hover{ + text-decoration: none !important; +} +.faq_page_inn div{ + margin-top: 20px; +} +a.linkS2[data-target="#withdraw-money"]{ + float: none; + display: table; + margin: auto; + margin-bottom: 52px; +} /*end_new*/ \ No newline at end of file diff --git a/assets/js/chat.js b/assets/js/chat.js index 123ec42..047012e 100644 --- a/assets/js/chat.js +++ b/assets/js/chat.js @@ -101,12 +101,9 @@ function csrfSafeMethod(method) { var socket = new SocketHandler(); var csrftoken = getCookie('csrftoken'); $(function () { - - var currentHash = URI(location.href).hash(); - console.log(currentHash); - if (currentHash.indexOf("#order") == 0) { + if (currentHash.indexOf("#order") == 0) { var ordHashId = currentHash.replace("#order", ""); setTimeout(function () { $("#orderBlock" + ordHashId).trigger('click'); @@ -177,7 +174,6 @@ $(function () { }); }); - // Добавление сообщения для заказа. $('#order-chat-add-message').on('click', function (e) { e.preventDefault(); @@ -255,18 +251,17 @@ $(function () { }); }); - - - + $("#upload-document-order").bind('fileuploadsubmit', function(e, data){ + data.formData = { + sender: $("#chat-order-add #senderId").val(), + recipent: $("#chat-order-add #recipentId").val(), + order: $("#chat-order-add #orderId").val(), + } + }); //Загрузка документов $('#upload-document-order').fileupload({ url: '/chat/create/', - formData: { - sender: $("#chat-order-add #senderId").val(), - recipent: $("#chat-order-add #recipentId").val(), - order: $("#chat-order-add #orderId").val(), - }, crossDomain: false, beforeSend: function (xhr, settings) { $('#progress .progress-bar').css( @@ -297,6 +292,51 @@ $(function () { progress + '%' ); } + }).prop('disabled', !$.support.fileInput) + .parent().addClass($.support.fileInput ? undefined : 'disabled'); //Загрузка документов + + + + $("#upload-document-contact").bind('fileuploadsubmit', function(e, data){ + data.formData = { + sender: $("#contact-chat-form #senderContactId").val(), + recipent: $("#contact-chat-form #recipentContactId").val(), + } + + }); + + + + $('#upload-document-contact').fileupload({ + url: '/chat/create/', + crossDomain: false, + beforeSend: function (xhr, settings) { + console.log(this.formData); + $('#progress .progress-bar').css( + 'width', + '0%' + ); + if (!csrfSafeMethod(settings.type)) { + xhr.setRequestHeader("X-CSRFToken", csrftoken); + } + }, + dataType: 'json', + done: function (e, data) { + $.each(data.result.files, function (index, file) { + var htmlImg = '
' + file.name + '
'; + var document_send = $(htmlImg).appendTo("#document-send-contact"); + }); + }, + fail: function (e) { + console.log(e); + }, + progressall: function (e, data) { + var progress = parseInt(data.loaded / data.total * 100, 10); + $('#progress .progress-bar').css( + 'width', + progress + '%' + ); + } }).prop('disabled', !$.support.fileInput) .parent().addClass($.support.fileInput ? undefined : 'disabled'); diff --git a/chat/migrations/0008_documents_created.py b/chat/migrations/0008_documents_created.py new file mode 100644 index 0000000..e939141 --- /dev/null +++ b/chat/migrations/0008_documents_created.py @@ -0,0 +1,21 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.9.7 on 2016-08-29 01:00 +from __future__ import unicode_literals + +from django.db import migrations, models +import django.utils.timezone + + +class Migration(migrations.Migration): + + dependencies = [ + ('chat', '0007_auto_20160826_1458'), + ] + + operations = [ + migrations.AddField( + model_name='documents', + name='created', + field=models.DateTimeField(default=django.utils.timezone.now), + ), + ] diff --git a/chat/migrations/0009_auto_20160829_1120.py b/chat/migrations/0009_auto_20160829_1120.py new file mode 100644 index 0000000..f21eb4f --- /dev/null +++ b/chat/migrations/0009_auto_20160829_1120.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.9.7 on 2016-08-29 08:20 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('chat', '0008_documents_created'), + ] + + operations = [ + migrations.AlterField( + model_name='documents', + name='created', + field=models.DateTimeField(auto_now_add=True), + ), + ] diff --git a/chat/models.py b/chat/models.py index dd7f79a..5cc9468 100644 --- a/chat/models.py +++ b/chat/models.py @@ -45,6 +45,7 @@ class Documents(models.Model): team = models.ForeignKey(Team, related_name='documents', null=True, blank=True) sender = models.ForeignKey(User, related_name='sender_documents') recipent = models.ForeignKey(User, related_name='recipent_documents', null=True, blank=True) + created = models.DateTimeField(auto_now_add=True) def __str__(self): return self.file.url diff --git a/chat/serializers.py b/chat/serializers.py index e4d8467..6cb8c06 100644 --- a/chat/serializers.py +++ b/chat/serializers.py @@ -4,6 +4,7 @@ from rest_framework.serializers import ModelSerializer from .models import Message, Notes, Documents from users.serializers import UserSerializer + class DocumentsSerializer(ModelSerializer): class Meta: @@ -18,6 +19,7 @@ class DocumentsSerializer(ModelSerializer): ) + class MessageSerializer(ModelSerializer): sender = UserSerializer() recipent = UserSerializer() diff --git a/chat/templates/chat_customer.html b/chat/templates/chat_customer.html index e4c6818..25c510c 100644 --- a/chat/templates/chat_customer.html +++ b/chat/templates/chat_customer.html @@ -65,25 +65,32 @@