From b11e48472133edb644436ff19e76a716bcbb8390 Mon Sep 17 00:00:00 2001 From: Mukhtar Date: Thu, 8 Sep 2016 20:23:25 +0300 Subject: [PATCH] #ARC-18 Changes time for stages --- assets/css/main.css | 11 +++++------ assets/js/chat.js | 1 - assets/js/chat_contractor.js | 4 +++- chat/templates/chat_customer.html | 5 +++-- projects/views.py | 5 +++++ wallets/signals.py | 5 +++++ work_sell/views.py | 6 ++++++ 7 files changed, 27 insertions(+), 10 deletions(-) diff --git a/assets/css/main.css b/assets/css/main.css index 14ab808..daafeb6 100644 --- a/assets/css/main.css +++ b/assets/css/main.css @@ -1064,7 +1064,7 @@ footer:after { } .pagin nav ul li a { - background-color: none; + background-color:unset; color: black; font-size: 20px; line-height: 50px; @@ -1090,7 +1090,6 @@ footer:after { .pagin nav ul li a:hover, .pagin nav ul li a:active { - color: black; color: white; background-color: #2c2c2c; border-color: #2c2c2c; @@ -2493,7 +2492,7 @@ input[type="checkbox"]:checked + span { } .exButton .btn-group .btn span { - font-family: Arial. Verdana, Helvetica, sans-serif; + font-family: Arial, Verdana, Helvetica, sans-serif; font-weight: bold; } @@ -3779,7 +3778,7 @@ input[type="checkbox"]:checked + span { border-top: 1px solid black; border-bottom: 1px solid black; -webkit-transform: scale(1.03); - -moz- transform: scale(1.03); + -moz-transform: scale(1.03); transform: scale(1.03); box-shadow: 0 0 10px rgba(0,0,0,0.7); z-index: 999; @@ -3856,7 +3855,7 @@ input[type="checkbox"]:checked + span { border-top: 1px solid black; border-bottom: 1px solid black; -webkit-transform: scale(1.03); - -moz- transform: scale(1.03); + -moz-transform: scale(1.03); transform: scale(1.03); box-shadow: 0 0 10px rgba(0,0,0,0.7); z-index: 999; @@ -5346,7 +5345,7 @@ input[type="radio"]:checked + span { font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 16px; font-weight: bold; - margin: 0px 0 -15 0; + margin: 0 0 -15px 0; } .inp-edit { diff --git a/assets/js/chat.js b/assets/js/chat.js index dc5dfb4..744d209 100644 --- a/assets/js/chat.js +++ b/assets/js/chat.js @@ -77,7 +77,6 @@ function csrfSafeMethod(method) { var socket = new SocketHandler(); var csrftoken = getCookie('csrftoken'); - $(function () { function dialog(message, yesCallback, notCallback) { diff --git a/assets/js/chat_contractor.js b/assets/js/chat_contractor.js index 1a8b382..a1c0b8d 100644 --- a/assets/js/chat_contractor.js +++ b/assets/js/chat_contractor.js @@ -441,7 +441,9 @@ $(function () { htmlInbox += '
' + '

Этап ' + v.pos + '' + v.name + '

' + '

Результаты этапа:' + v.result + '

' + - '

до ' + v.term + '

' + v.cost + '

' + statusName + '

'; + '

Срок до ' + v.term + '

' + v.cost + ' ' + + '

Cрок заказа рассчитывается с момента резервирования средств

' + + '

' + statusName + '

'; }); if (statusNotAgreed) { diff --git a/chat/templates/chat_customer.html b/chat/templates/chat_customer.html index 41aed75..ab648f3 100644 --- a/chat/templates/chat_customer.html +++ b/chat/templates/chat_customer.html @@ -426,8 +426,9 @@ htmlInbox += '
' + '

Этап ' + v.pos + '' + v.name + '

' + '

Результаты этапа:' + v.result + '

' + - '

до '+ v.term +'

' + v.cost + '' + - '

'+ statusName +'

'; + '

Срок до '+ v.term +'

' + v.cost + '' + + '

Cрок заказа рассчитывается с момента резервирования средств

' + + '

'+ statusName +'

'; } if(data.secure) { diff --git a/projects/views.py b/projects/views.py index 04fbfac..b037f38 100644 --- a/projects/views.py +++ b/projects/views.py @@ -750,6 +750,11 @@ class PortfolioDetail(DetailView): model = Portfolio template_name = 'portfolio_detail.html' + def dispatch(self, request, *args, **kwargs): + if not self.get_object().user: + return HttpResponseForbidden('404 Not Found') + return super().dispatch(request, *args, **kwargs) + class ArbitrationCreateView(CreateView): model = Arbitration diff --git a/wallets/signals.py b/wallets/signals.py index 9b72b54..b570ee7 100644 --- a/wallets/signals.py +++ b/wallets/signals.py @@ -1,5 +1,6 @@ from django.db.models.signals import post_save from django.dispatch import receiver +from django.utils import timezone from django.core.mail import send_mail, EmailMultiAlternatives from django.template.loader import get_template, render_to_string @@ -58,6 +59,8 @@ def reserve_stages(sender, instance, created, **kwargs): stage = Stage.objects.get(pk=pk) stages_names.append(stage.name) stage.is_paid = True + delta = stage.term - stage.approve_time.date() + stage.term = timezone.now().date() + delta order = stage.order stage.save() @@ -80,6 +83,8 @@ def reserve_stages(sender, instance, created, **kwargs): stage = Stage.objects.get(pk=pk) stages_names.append(stage.name) stage.is_paid = True + delta = stage.term - stage.approve_time.date() + stage.term = timezone.now().date() + delta order = stage.order stage.save() diff --git a/work_sell/views.py b/work_sell/views.py index 21d9034..a722b71 100644 --- a/work_sell/views.py +++ b/work_sell/views.py @@ -23,6 +23,7 @@ from .serialize import serialize from .response import JSONResponse, response_mimetype from archilance.mixins import BaseMixin + class PictureCreateView(CreateView): model = Picture fields = '__all__' @@ -131,6 +132,11 @@ class WorkSellDetail(DetailView): model = WorkSell template_name = 'worksell_detail.html' + def dispatch(self, request, *args, **kwargs): + if not self.get_object().contractor and not self.get_object().team: + return HttpResponseForbidden('404 Not Found') + return super().dispatch(request, *args, **kwargs) + def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) context['worksell_related'] = WorkSell.objects.exclude(pk=self.get_object().pk)[:5]