remotes/origin/PR-39
ArturBaybulatov 10 years ago
commit 4905b2e5f6
  1. 2
      archilance/settings/base.py
  2. 22
      chat/templates/chat_contractor.html
  3. 64
      chat/templates/chat_customer.html
  4. 4
      chat/templates/reverse_stage_modal.html
  5. 25
      projects/migrations/0022_auto_20160830_0958.py
  6. 20
      projects/migrations/0023_auto_20160830_1024.py
  7. 2
      projects/models.py
  8. 2
      projects/serializers.py
  9. 5
      templates/partials/footer.html
  10. 6
      templates/registration/registration_form.html

@ -314,6 +314,8 @@ else:
WAGTAIL_SITE_NAME = 'PROEKTON'
REGISTRATION_FORM = 'registration.forms.RegistrationFormTermsOfService'
# class ASCIIFileSystemStorage(FileSystemStorage):
# def get_valid_name(self, name):

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

@ -41,6 +41,11 @@
<a href="{% url 'users:contractor-office' pk=request.user.pk %}">Мой офис</a>
</li>
{% endif %}
{% if request.user.is_staff %}
<li>
<a href="/admin">Админка</a>
</li>
{% endif %}
{% endif %}
</ul>
</div>

@ -89,9 +89,9 @@
</div>
<div class="col-lg-12 select-reg">
<div class="check-reg">
<label><input type="checkbox" name="check-reg"><span></span></label>
<p>Регистрируясь, я подтверждаю свое согласие у условиями <a href="#">пользавательского
соглашения</a></p>
<label><input type="checkbox" name="{{ form.tos.name }}" {{ form.tos.value }} /><span></span></label>
<p>Регистрируясь, я подтверждаю свое согласие у условиями <a href="#">пользовательского соглашения</a></p>
{{ form.tos.errors }}
</div>
</div>
</form>

Loading…
Cancel
Save