Merge branch 'yandex_rebiling' into 'dev'

finance logging

See merge request !377
remotes/origin/revert-6d879fe8
Andrey 8 years ago
commit 6b6d987a48
  1. 1
      access/views.py
  2. 5
      courses/models.py
  3. 29
      finance/models.py
  4. 10
      lms/settings.py
  5. 1
      progress/views.py

@ -128,6 +128,7 @@ class FindUserView(APIView):
class DetailUserView(APIView): class DetailUserView(APIView):
renderer_classes = (JSONRenderer,) renderer_classes = (JSONRenderer,)
permission_classes = (permissions.IsAuthenticated,)
@staticmethod @staticmethod
def post(request, out_key=None): def post(request, out_key=None):

@ -72,7 +72,7 @@ class Topic(models.Model):
class CourseManager(models.Manager): class CourseManager(models.Manager):
def update_or_create_course(self, image=None, big_image=None, statistic=None, def update_or_create_course(self, image=None, big_image=None, statistic=None, old_slug=None,
big_mobile_image=None, slug=None, teacher_tokens=None, big_mobile_image=None, slug=None, teacher_tokens=None,
level=None, direction=None, **kwargs): level=None, direction=None, **kwargs):
@ -102,10 +102,11 @@ class CourseManager(models.Manager):
kwargs['direction'] = get_real_name(COURSE_DIRECTION, direction[0]) kwargs['direction'] = get_real_name(COURSE_DIRECTION, direction[0])
try: try:
course = self.get(slug=slug) course = self.get(slug=old_slug)
for i in kwargs: for i in kwargs:
if kwargs[i]: if kwargs[i]:
setattr(course, i, kwargs[i]) setattr(course, i, kwargs[i])
course.slug = slug
course.save() course.save()
except ObjectDoesNotExist: except ObjectDoesNotExist:

@ -6,10 +6,14 @@ from django.core.mail import EmailMessage
from django.db import models 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
import logging
from progress.models import Progress from progress.models import Progress
logger_business_rules = logging.getLogger('business_rules')
class Bill(models.Model): class Bill(models.Model):
course_token = models.UUIDField(verbose_name="Токен курса", editable=False) course_token = models.UUIDField(verbose_name="Токен курса", editable=False)
user = models.ForeignKey(settings.AUTH_USER_MODEL, verbose_name='Плательщик', related_name='bill_user') user = models.ForeignKey(settings.AUTH_USER_MODEL, verbose_name='Плательщик', related_name='bill_user')
@ -24,15 +28,22 @@ class Bill(models.Model):
return '%s: %s' % (self.id, self.user) return '%s: %s' % (self.id, self.user)
def freeze_course(self, user): def freeze_course(self, user):
try: if self.invoice_set.exclude('F').exists():
p = Progress.objects.get(user=user, course_token=self.course_token) try:
p.freeze = True p = Progress.objects.get(user=user, course_token=self.course_token)
p.save() p.freeze = True
except Progress.DoesNotExist: p.save()
pass except Progress.DoesNotExist:
pass
self.freeze = True
self.save() self.freeze = True
self.save()
else:
logger_business_rules.warning('Попытка нарушения правила отказа от плотежей', exc_info=True, extra={
'description': 'Пользоваль пытается отказатся от платежей по счёту, однако все платежи уже оплачены',
'user': user,
})
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])

@ -212,6 +212,11 @@ LOGGING = {
'class': 'raven.contrib.django.raven_compat.handlers.SentryHandler', 'class': 'raven.contrib.django.raven_compat.handlers.SentryHandler',
'tags': {'custom-tag': 'yandex'}, 'tags': {'custom-tag': 'yandex'},
}, },
'business_rules': {
'level': 'DEBUG',
'class': 'raven.contrib.django.raven_compat.handlers.SentryHandler',
'tags': {'custom-tag': 'business_rules'},
},
'console': { 'console': {
'level': 'DEBUG', 'level': 'DEBUG',
'class': 'logging.StreamHandler', 'class': 'logging.StreamHandler',
@ -228,6 +233,11 @@ LOGGING = {
'level': 'DEBUG', 'level': 'DEBUG',
'propagate': False 'propagate': False
}, },
'business_rules': {
'handlers': ['business_rules'],
'level': 'DEBUG',
'propagate': False
},
}, },
} }

@ -93,6 +93,7 @@ class CourseProgressUserView(APIView):
class TeacherUpdateProgress(APIView): class TeacherUpdateProgress(APIView):
permission_classes = (permissions.IsAuthenticated, )
renderer_classes = (JSONRenderer,) renderer_classes = (JSONRenderer,)
@staticmethod @staticmethod

Loading…
Cancel
Save