#ARC-18 fixes bugs

remotes/origin/PR-39
Mukhtar 10 years ago
parent d90a7d1e90
commit 9d76020f9c
  1. 22
      chat/templates/chat_contractor.html
  2. 64
      chat/templates/chat_customer.html
  3. 4
      chat/templates/reverse_stage_modal.html
  4. 25
      projects/migrations/0022_auto_20160830_0958.py
  5. 20
      projects/migrations/0023_auto_20160830_1024.py
  6. 2
      projects/models.py
  7. 2
      projects/serializers.py

@ -537,10 +537,15 @@
}
}
var statusName = '';
if (v.status == 'completed'){
statusName = 'Завершен';
}
htmlInbox += '<div data-id="' + v.id + '" class="numberStepp box-sizing stage-block-approve"><div class="insetNumStepp">' +
'<p class="titleNumStepp"><span>Этап ' + v.pos + '</span>' + v.name + '</p>' +
'<p class="textNumStepp">Результаты этапа:' + v.result + '</p><div>' +
'<p> до ' + v.term + '</p><span>' + v.cost + '<i class="fa fa-rub"></i></span></div></div></div>';
'<p> до ' + v.term + '</p><span>' + v.cost + ' <i class="fa fa-rub"></i></span></div><div><p>'+ statusName +'</p></div></div></div>';
});
if (statusNotAgreed) {
@ -562,18 +567,19 @@
if (stagesInWork.length > 0){
$("#completeWork").show();
var stage = stagesInWork[0];
var stageWork = '<p>В работе '+ stage.name +'</p> ' +
'<p>Результат этапа : '+ stage.result +'</p>' +
'<p>Срок сдачи '+ stage.term +' <b>' + stage.cost + 'р.</b></p>';
var stageWork = '<div class="numberStepp box-sizing">' +
'<div class="insetNumStepp"><div><p>В работе '+ stage.name +'</p></div>' +
'<div><p>Результат этапа : '+ stage.result +'</p></div>' +
'<div><p>Срок сдачи '+ stage.term +' <span>' + stage.cost + '<i class="fa fa-rub"></i></span></p></div></div></div>';
if(!stage.close_contractor){
stageWork += '<a href="#" class="closeStage" data-sender-id="{{ request.user.pk }}" data-recipent-id="'+ recipentId+'"' +
' data-order-id="'+ data.id +'" data-stage-id="'+ stage.id +'">Завершить этап</a>';
stageWork += '<div class="textAreaBlock2 FFD box-sizing disTab"><a href="#" class="closeStage" data-sender-id="{{ request.user.pk }}" data-recipent-id="'+ recipentId+'"' +
' data-order-id="'+ data.id +'" data-stage-id="'+ stage.id +'">Завершить этап</a></div>';
}else{
stageWork += '<p>Этап ожидает завершения статуса от заказчика</p>';
stageWork += '<div><p>Этап ожидает завершения статуса от заказчика</p><div>';
}
if (data.secure) {
stageWork += '<a href="#" data-toggle="modal" data-target="#arbitration-add">Обратитьсяв арбитраж</a>';
stageWork += '<div class="textAreaBlock2 FFD box-sizing disTab"><a href="#" data-toggle="modal" data-target="#arbitration-add">Обратитьсяв арбитраж</a></div>';
}
$("#stagesWork").html(stageWork);
}else{

@ -113,12 +113,22 @@
<p>Заказы</p>
{% for order in orders %}
<div class="orderBlock box-sizing order-block" data-project-id="{{ order.id }}"
id="orderBlock{{ order.order.id }}" data-secure-deal="{% if order.order.secure %}true{% else %}false{% endif %}" data-recipent-id="{{ order.order.contractor.pk }}" data-id="{{ order.order.id }}">
id="orderBlock{{ order.order.id }}" data-secure-deal="{% if order.order.secure %}true{% else %}false{% endif %}"
{% if order.order.contractor %}
data-recipent-id="{{ order.order.contractor.pk }}"
{% else %}
data-recipent-id="{{ order.order.team.pk }}"
{% endif %}data-id="{{ order.order.id }}">
<span class="dimovChat"></span>
<p class="titleOB">{{ order }}</p>
<div class="hideOBB">
<p class="pOB">
<span>Исполнитель:</span> {{ order.order.contractor.get_full_name }}
<span>Исполнитель:</span>
{% if order.order.contractor %}
{{ order.order.contractor.get_full_name }}
{% else %}
{{ order.order.team.name }}
{% endif %}
</p>
<a href="#" class="linkChat11">
<span class="glyphicon glyphicon-info-sign" aria-hidden="true"></span>
@ -161,9 +171,10 @@
<div class="stepssBlock box-sizing disTab" id="reserveSpace" style="display:none;">
<p class="titleStepss">2 / Резервирование</p>
<p class="textStepss">
Резервирование заказчиком суммы оплаты по заказ. Деньги перечисляются и хранятся на
сайте.
Резервирование заказчиком суммы оплаты по заказ.
Деньги перечисляются и хранятся насайте.
</p>
<ul class="stages-paid"></ul>
<div class="textAreaBlock2 FFD box-sizing disTab">
<a href="#" id="reserve-button" data-order-id="">Зарезервировать</a>
@ -181,10 +192,9 @@
Процесс выполнения задания в заказе до получения
заказчиком итогового результата работы.
</p>
<div id="stagesWork" class="stages-work textAreaBlock2">
</div>
<div id="stagesWork" class="stages-work"></div>
</div>
<div class="closeChat closeChat1" id="leaveReview" style="display: none;">
<a href="#" data-toggle="modal" data-target="#review-add">
Закрыть проект<br>и оставить отзыв
@ -238,7 +248,7 @@
$('body').on('focus',".term-picker", function(){
$(this).datepicker({
minDate: 0,
{# minDate: 0,#}
});
})
@ -255,9 +265,11 @@
var outputValues = '';
var totalSum = 0;
var stagesIds = '';
var notPaidCount = 0;
$.each(json.results, function (i, v) {
if((v.status == 'in_process') && (!v.is_paid)) {
totalSum += parseInt(v.cost);
notPaidCount +=1;
outputValues += '<option data-stage-sum="' + v.cost + '" value="' + v.id + '">' + v.name + '</option>';
stagesIds += v.id + ';'
}
@ -265,6 +277,9 @@
$("#stagesSelect").html(outputValues);
$(".totalSum").text(totalSum);
if(json.results.length>notPaidCount && notPaidCount>0){
$("#choiceWayOrder").hide();
}
$("#choiceWayOrder").val(totalSum)
$("#stages-pay-form #stageSumPay").val(totalSum);
$("#stages-pay-form #stagesIds").val(stagesIds);
@ -296,6 +311,7 @@
var sumStage = $(this).find('option:selected').attr("data-stage-sum");
$("#choiceWayStage").val(sumStage);
$("#stages-pay-form #stageSumPay").val(sumStage);
$(".stageSum").text(sumStage);
$("#stages-pay-form #stagesIds").val($(this).val());
});
@ -334,6 +350,7 @@
var stagesInWork = [];
var stagesPaidProcess = [];
var stagesCompleted = [];
var stagesReservedHtml = "";
$.each(stagesResults, function (i, v) {
if (v.status == "completed"){
@ -360,15 +377,28 @@
} else {
statusNotAgreed = false;
htmlInboxStage = "";
var statusName = '';
if (v.status == 'completed'){
statusName = 'Завершен';
}
htmlInbox += '<div class="numberStepp box-sizing"><div class="insetNumStepp">' +
'<p class="titleNumStepp"><span>Этап ' + v.pos + '</span>' + v.name + '</p>' +
'<p class="textNumStepp">Результаты этапа:' + v.result + '</p><div>' +
'<p>до '+ v.term +'</p><span>' + v.cost + '<i class="fa fa-rub"></i></span>' +
'</div></div></div>';
'</div><div><p>'+ statusName +'</p></div></div></div>';
}
if(data.secure) {
if (v.is_paid) {
stagesReservedHtml += '<li class="reserved">Сумма за этап ' + v.pos + '.Зарезервирована.</li>';
} else {
stagesReservedHtml += '<li class="unreserved">Сумма за этап ' + v.pos + '.Не зарезервирована.</li>';
}
}
});
if (statusNotAgreed) {
if(!data.secure) {
htmlInbox += '<div class="box-sizing disTab">' +
@ -390,17 +420,19 @@
if(stagesInWork.length > 0){
$("#completeWork").show();
var stage = stagesInWork[0];
var stageWork = '<p>В работе '+ stage.name +'</p> ' +
'<p>Результат этапа : '+ stage.result +'</p>' +
'<p>Срок сдачи '+ stage.term +'<b>' + stage.cost + 'р.</b></p>';
var stageWork = '<div class="numberStepp box-sizing">' +
'<div class="insetNumStepp"><div><p>В работе '+ stage.name +'</p></div> ' +
'<div><p>Результат этапа : '+ stage.result +'</p></div>' +
'<div><p>Срок сдачи '+ stage.term +'</p><span>' + stage.cost + '<i class="fa fa-rub"></i></span></div>' +
'</div></div>';
if (stage.close_contractor){
stageWork += '<a href="#" class="closeStage" data-order-id="'+ orderId + '" data-sender-id="{{ request.user.pk }}"' +
' data-recipent-id="'+ recipentId + '" data-stage-id="'+ stage.id+'">Закрыть этап '+ stage.pos +'</a>';
stageWork += '<div class="textAreaBlock2 FFD box-sizing disTab"><a href="#" class="closeStage" data-order-id="'+ orderId + '" data-sender-id="{{ request.user.pk }}"' +
' data-recipent-id="'+ recipentId + '" data-stage-id="'+ stage.id+'">Закрыть этап '+ stage.pos +'</a></div>';
}
if (data.secure){
stageWork += '<a href="#" data-toggle="modal" data-target="#arbitration-add">Обратитьсяв арбитраж</a>';
stageWork += '<div class="textAreaBlock2 FFD box-sizing disTab"><a href="#" data-toggle="modal" data-target="#arbitration-add">Обратитьсяв арбитраж</a></div>';
}
$("#stagesWork").html(stageWork);
}
@ -421,6 +453,8 @@
$("#leaveReview").hide();
}
$(".stages-paid").html(stagesReservedHtml);
});
}

@ -9,7 +9,7 @@
<div class="modal-body" style="height: 300px;">
<div class="searchF1 polsF1 polsFF radio-afer">
<div class="searchF1 polsF1 polsFF radio-afer" id="allOrderchoice">
<div class="col-lg-6">
<label>
<input data-stages-ids="" type="radio" checked="checked" id="choiceWayOrder"name="choice_way" value="">
@ -31,7 +31,7 @@
</label>
<p class="text-afer" style="width: 250px;">Оплатить этап</p><br />
<p class="des-afer">
Бюджет Этапа 1: <span class="stageSum"></span>р.<br />
Бюджет Этапа: <span class="stageSum"></span>р.<br />
Итого к оплате: <span class="stageSum"></span> р.
</p>
</div>

@ -0,0 +1,25 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.9.7 on 2016-08-30 06:58
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('projects', '0021_merge'),
]
operations = [
migrations.AlterField(
model_name='portfolio',
name='description',
field=models.TextField(blank=True),
),
migrations.AlterField(
model_name='stage',
name='term',
field=models.DateField(auto_now_add=True),
),
]

@ -0,0 +1,20 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.9.7 on 2016-08-30 07:24
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('projects', '0022_auto_20160830_0958'),
]
operations = [
migrations.AlterField(
model_name='stage',
name='term',
field=models.DateField(),
),
]

@ -251,7 +251,7 @@ class Stage(models.Model):
name = models.CharField(max_length=255)
order = models.ForeignKey(Order, related_name='stages')
result = models.CharField(max_length=255)
term = models.DateTimeField(auto_now_add=True)
term = models.DateField()
term_type = models.CharField(max_length=10, choices=TERMS, default='hour')
status = models.CharField(choices=STATUSES, max_length=30, default='not_agreed')
created = models.DateTimeField(default=timezone.now)

@ -48,7 +48,7 @@ class RealtySerializer(ModelSerializer):
class StageSerializer(ModelSerializer):
term = serializers.DateTimeField(format="%d-%m-%Y")
# term = serializers.DateTimeField(format="%Y-%m-%d")
class Meta:
model = Stage

Loading…
Cancel
Save