finance logging

remotes/origin/yandex_rebiling
Andrey 8 years ago
parent 57678227b7
commit 78271b9176
  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 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])

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

Loading…
Cancel
Save