From 78271b917605a6f5755d748220c71c0c65bac51c Mon Sep 17 00:00:00 2001 From: Andrey Date: Fri, 13 Apr 2018 13:02:15 +0300 Subject: [PATCH] finance logging --- finance/models.py | 13 +++++++++++++ finance/views.py | 17 ++++++++--------- 2 files changed, 21 insertions(+), 9 deletions(-) diff --git a/finance/models.py b/finance/models.py index 8014373..e63f55f 100755 --- a/finance/models.py +++ b/finance/models.py @@ -7,6 +7,8 @@ from django.db import models from django.utils import timezone from yandex_money.models import Payment +from progress.models import Progress + class Bill(models.Model): course_token = models.UUIDField(verbose_name="Токен курса", editable=False) @@ -21,6 +23,17 @@ class Bill(models.Model): def __str__(self): return '%s: %s' % (self.id, self.user) + def freeze_course(self, user): + try: + p = Progress.objects.get(user=user, course_token=self.course_token) + p.freeze = True + p.save() + except Progress.DoesNotExist: + pass + + self.freeze = True + self.save() + def get_full_price(self): return sum([i.price for i in self.invoice_set.all() if not i.price is None]) diff --git a/finance/views.py b/finance/views.py index 5cf5c8e..bb4e472 100644 --- a/finance/views.py +++ b/finance/views.py @@ -39,31 +39,30 @@ def test_pay(request): }) -class UnFreezeView(APIView): +class FreezeView(APIView): renderer_classes = (JSONRenderer,) @staticmethod - def post(request, id): + def post(request, pk): if request.user.is_authenticated: try: - bill = Bill.objects.get(id=id) - bill.freeze = False - bill.save() + bill = Bill.objects.get(id=pk) + bill.freeze_course(request.user) except Bill.DoesNotExist: return Response("Счёт не найден", status=404) return Response(status=204) return Response("Permission denied", status=403) -class FreezeView(APIView): +class UnFreezeView(APIView): renderer_classes = (JSONRenderer,) @staticmethod - def post(request, id): + def post(request, pk): if request.user.is_authenticated: try: - bill = Bill.objects.get(id=id) - bill.freeze = True + bill = Bill.objects.get(id=pk) + bill.freeze = False bill.save() except Bill.DoesNotExist: return Response("Счёт не найден", status=404)