LIL-563. Add roistat visit field to payment

remotes/origin/feature/effective_amount
Ivlev Denis 8 years ago
parent bfbc5eda6e
commit 7782042377
  1. 3
      apps/payment/admin.py
  2. 18
      apps/payment/migrations/0019_payment_roistat_visit.py
  3. 1
      apps/payment/models.py
  4. 5
      apps/payment/views.py

@ -28,10 +28,11 @@ class PaymentChildAdmin(PolymorphicChildModelAdmin):
'user',
'amount',
'status',
'roistat_visit',
'created_at',
)
base_fieldsets = (
(None, {'fields': ('user', 'amount', 'status', 'data',)}),
(None, {'fields': ('user', 'amount', 'status', 'data', 'roistat_visit',)}),
)
readonly_fields = ('amount', 'data',)

@ -0,0 +1,18 @@
# Generated by Django 2.0.7 on 2018-07-06 07:53
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('payment', '0018_auto_20180512_1202'),
]
operations = [
migrations.AddField(
model_name='payment',
name='roistat_visit',
field=models.PositiveIntegerField(editable=False, null=True, verbose_name='Номер визита Roistat'),
),
]

@ -97,6 +97,7 @@ class Payment(PolymorphicModel):
amount = models.DecimalField('Итого', max_digits=8, decimal_places=2, default=0, editable=False)
status = models.PositiveSmallIntegerField('Статус платежа', choices=PW_STATUS_CHOICES, null=True)
data = JSONField('Данные платежа от провайдера', default={}, editable=False)
roistat_visit = models.PositiveIntegerField('Номер визита Roistat', null=True, editable=False)
created_at = models.DateTimeField(auto_now_add=True)
update_at = models.DateTimeField(auto_now=True)

@ -58,12 +58,14 @@ class CourseBuyView(TemplateView):
host = urlsplit(self.request.META.get('HTTP_REFERER'))
host = str(host[0]) + '://' + str(host[1])
course = Course.objects.get(id=pk)
roistat_visit = request.COOKIES.get('roistat_visit', None)
if request.user == course.author:
messages.error(request, 'Вы не можете приобрести свой курс.')
return redirect(reverse_lazy('course', args=[course.id]))
course_payment = CoursePayment.objects.create(
user=request.user,
course=course,
roistat_visit=roistat_visit,
)
product = Product(
f'course_{course_payment.id}',
@ -96,6 +98,7 @@ class SchoolBuyView(TemplateView):
host = str(host[0]) + '://' + str(host[1])
weekdays = set(request.GET.getlist('weekdays', []))
add_days = 'add_days' in request.GET
roistat_visit = request.COOKIES.get('roistat_visit', None)
if not weekdays:
messages.error(request, 'Выберите несколько дней недели.')
return redirect('school:summer-school')
@ -117,6 +120,7 @@ class SchoolBuyView(TemplateView):
date_start=now().date(),
date_end=_school_payment.date_end,
add_days=True,
roistat_visit=roistat_visit,
)
if school_payment.amount <= 0:
messages.error(request, 'Выбранные дни отсутствуют в оставшемся периоде подписки')
@ -125,6 +129,7 @@ class SchoolBuyView(TemplateView):
school_payment = SchoolPayment.objects.create(
user=request.user,
weekdays=weekdays,
roistat_visit=roistat_visit,
)
product = Product(
f'school_{school_payment.id}',

Loading…
Cancel
Save