Merge branch 'yandex_rebiling' into 'dev'

finance logging

See merge request !376
remotes/origin/revert-6d879fe8
Andrey 8 years ago
commit 1f047201f4
  1. 13
      finance/models.py
  2. 17
      finance/views.py

@ -7,6 +7,8 @@ from django.db import models
from django.utils import timezone from django.utils import timezone
from yandex_money.models import Payment from yandex_money.models import Payment
from progress.models import Progress
class Bill(models.Model): class Bill(models.Model):
course_token = models.UUIDField(verbose_name="Токен курса", editable=False) course_token = models.UUIDField(verbose_name="Токен курса", editable=False)
@ -21,6 +23,17 @@ class Bill(models.Model):
def __str__(self): def __str__(self):
return '%s: %s' % (self.id, self.user) 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): def get_full_price(self):
return sum([i.price for i in self.invoice_set.all() if not i.price is None]) return sum([i.price for i in self.invoice_set.all() if not i.price is None])

@ -39,31 +39,30 @@ def test_pay(request):
}) })
class UnFreezeView(APIView): class FreezeView(APIView):
renderer_classes = (JSONRenderer,) renderer_classes = (JSONRenderer,)
@staticmethod @staticmethod
def post(request, id): def post(request, pk):
if request.user.is_authenticated: if request.user.is_authenticated:
try: try:
bill = Bill.objects.get(id=id) bill = Bill.objects.get(id=pk)
bill.freeze = False bill.freeze_course(request.user)
bill.save()
except Bill.DoesNotExist: except Bill.DoesNotExist:
return Response("Счёт не найден", status=404) return Response("Счёт не найден", status=404)
return Response(status=204) return Response(status=204)
return Response("Permission denied", status=403) return Response("Permission denied", status=403)
class FreezeView(APIView): class UnFreezeView(APIView):
renderer_classes = (JSONRenderer,) renderer_classes = (JSONRenderer,)
@staticmethod @staticmethod
def post(request, id): def post(request, pk):
if request.user.is_authenticated: if request.user.is_authenticated:
try: try:
bill = Bill.objects.get(id=id) bill = Bill.objects.get(id=pk)
bill.freeze = True bill.freeze = False
bill.save() bill.save()
except Bill.DoesNotExist: except Bill.DoesNotExist:
return Response("Счёт не найден", status=404) return Response("Счёт не найден", status=404)

Loading…
Cancel
Save