diff --git a/archilance/settings/base.py b/archilance/settings/base.py index 7d33f1e..78e6ffe 100644 --- a/archilance/settings/base.py +++ b/archilance/settings/base.py @@ -68,7 +68,7 @@ MIDDLEWARE_CLASSES = [ 'django.contrib.auth.middleware.SessionAuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', - # 'common.middleware.SetLastVisitMiddleware', + 'common.middleware.SetLastVisitMiddleware', ] ROOT_URLCONF = 'archilance.urls' diff --git a/chat/templates/chat_contractor.html b/chat/templates/chat_contractor.html index c76cb06..2d62b6f 100644 --- a/chat/templates/chat_contractor.html +++ b/chat/templates/chat_contractor.html @@ -307,7 +307,6 @@ }, dataType: 'json', done: function (e, data) { - ; $.each(data.result.files, function (index, file) { var currentValue = $("#documentSendIds").val(); currentValue += file.id + ';'; diff --git a/chat/templates/chat_customer.html b/chat/templates/chat_customer.html index c447189..d9068f3 100644 --- a/chat/templates/chat_customer.html +++ b/chat/templates/chat_customer.html @@ -412,8 +412,6 @@ $("#order-stages").on('click', "#addStagesForm", function (e) { e.preventDefault(); $(".new-stages-form").each(function (i, v) { - console.log($(this).serialize()); - $.ajax({ url: '/api/stages/', type: 'POST', @@ -457,7 +455,6 @@ var currentOrderId = $(this).attr('data-order-id'); var currentRecipentId = $(this).attr('data-recipent-id'); var secureOrder = true - getStages(currentOrderId,userId,currentRecipentId,secureOrder); socket.send_stages_approve({ "format_type": "approve_stages", @@ -467,7 +464,9 @@ "order_id": currentOrderId, } }); - + setTimeout(function () { + getStages(currentOrderId,userId,currentRecipentId,secureOrder); + }, 1000); }); diff --git a/chat/views.py b/chat/views.py index 424e45b..676f4c5 100644 --- a/chat/views.py +++ b/chat/views.py @@ -36,8 +36,7 @@ class ChatUserView(LoginRequiredMixin, View): chat_messages = Message.objects.filter(Q(sender=request.user.pk) | Q(recipent=request.user.pk)) orders = request.user.projects.select_related('order').exclude(order__contractor__isnull=True) - transaction = Transaction.objects.get_or_create(customer=request.user, type='reservation') - print(transaction) + transaction = Transaction.objects.get_or_create(customer=request.user, type='reservation', complete=False) self.template_name = 'chat_customer.html' return render(request, self.template_name, {'contacts_users': contacts_users, 'chat_messages': chat_messages, diff --git a/common/middleware.py b/common/middleware.py index 888679f..a603ac9 100644 --- a/common/middleware.py +++ b/common/middleware.py @@ -5,7 +5,8 @@ from users.models import User class SetLastVisitMiddleware(object): def process_response(self, request, response): - if request.user.is_authenticated(): - User.objects.filter(pk=request.user.pk).update(last_time_visit=now()) + if hasattr(request,'user'): + if request.user.is_authenticated(): + User.objects.filter(pk=request.user.pk).update(last_time_visit=now()) return response diff --git a/users/admin.py b/users/admin.py index ca8f03e..375ab81 100644 --- a/users/admin.py +++ b/users/admin.py @@ -5,7 +5,7 @@ from .models import User, Team, UserFinancialInfo, ContractorResume, ContractorR class UserAdmin(admin.ModelAdmin): readonly_fields = ('pk',) - list_display = ('username', 'email', 'get_groups', 'cro', 'is_active', 'rating',) + list_display = ('username', 'email', 'get_groups', 'cro', 'is_active', 'rating','last_time_visit',) ordering = ('-rating',) def get_groups(self, obj): diff --git a/wallets/signals.py b/wallets/signals.py index 785383c..d9815bb 100644 --- a/wallets/signals.py +++ b/wallets/signals.py @@ -4,6 +4,7 @@ from django.core.mail import send_mail, EmailMultiAlternatives from django.template.loader import get_template, render_to_string from .models import WithDraw, InvoiceHistory, Transaction +from projects.models import Stage @receiver(post_save, sender=WithDraw) @@ -32,7 +33,21 @@ def add_invoice_history(sender, instance, created, **kwargs): @receiver(post_save, sender=Transaction) def reserve_stages(sender, instance, created, **kwargs): - if 'reservation' in instance.type: - pass + if 'reservation' in instance.type and instance.complete: + inv_history = InvoiceHistory() + inv_history.comment = 'Резервирование средств за этапы' + inv_history.sum = instance.sum + inv_history.user = instance.customer + inv_history.save() + + stages_ids_raw = instance.stages_id + if stages_ids_raw: + stages_ids = [s for s in stages_ids_raw.split(';') if s] + for pk in stages_ids: + stage = Stage.objects.get(pk=pk) + stage.is_paid = True + stage.save() + + diff --git a/wallets/views.py b/wallets/views.py index 5935845..d74ad1c 100644 --- a/wallets/views.py +++ b/wallets/views.py @@ -1,3 +1,4 @@ +import logging from django.conf import settings from django.contrib import messages from django.contrib.auth.mixins import LoginRequiredMixin @@ -33,7 +34,7 @@ class ScoreView(LoginRequiredMixin, View): def get(self, request, *args, **kwargs): # transaction = Transaction.objects.get_or_create(customer=request.user, complete=False) - transaction = Transaction.objects.get_or_create(customer=request.user, type='add') + transaction = Transaction.objects.get_or_create(customer=request.user, type='add', complete=False) user_score = get_object_or_404(User.objects, pk=kwargs.get('pk')) current_sum_info = InvoiceHistory.objects.filter(user=user_score).aggregate(Sum('sum')) user_score_balance = current_sum_info['sum__sum'] or 0 @@ -152,11 +153,14 @@ class TmpPaymentAvisoView(View): def post(self, request, *args, **kwargs): form = self.form_class(request.POST) - + logging.debug(form.data) if form.is_valid(): - transaction = form.cleaned_data.get('transaction_id') + transaction_id = form.data.get('transactionId') + transaction = Transaction.objects.get(pk=int(transaction_id)) + logging.debug(form.cleaned_data) transaction.complete = True transaction.sum = form.cleaned_data.get('orderSumAmount') + transaction.stages_id = form.data.get('stagesId') transaction.save() res = """