From 5242501e82574b7e8e8e2be31da57ccbd69ab6e8 Mon Sep 17 00:00:00 2001 From: Ivlev Denis Date: Wed, 21 Feb 2018 13:25:27 +0300 Subject: [PATCH] LIL-271. Add AuthorBalance models --- apps/payment/admin.py | 14 +++++++- .../migrations/0004_auto_20180221_1022.py | 32 +++++++++++++++++++ apps/payment/models.py | 18 +++++++++++ 3 files changed, 63 insertions(+), 1 deletion(-) create mode 100644 apps/payment/migrations/0004_auto_20180221_1022.py diff --git a/apps/payment/admin.py b/apps/payment/admin.py index 2609fc3b..b6eafdf7 100644 --- a/apps/payment/admin.py +++ b/apps/payment/admin.py @@ -5,7 +5,19 @@ from polymorphic.admin import ( PolymorphicChildModelFilter, ) -from .models import CoursePayment, SchoolPayment, Payment +from .models import AuthorBalance, CoursePayment, SchoolPayment, Payment + + +@admin.register(AuthorBalance) +class AuthorBalanceAdmin(admin.ModelAdmin): + list_display = ( + 'author', + 'type', + 'amount', + 'commission', + 'status', + 'payment', + ) class PaymentChildAdmin(PolymorphicChildModelAdmin): diff --git a/apps/payment/migrations/0004_auto_20180221_1022.py b/apps/payment/migrations/0004_auto_20180221_1022.py new file mode 100644 index 00000000..9a726fef --- /dev/null +++ b/apps/payment/migrations/0004_auto_20180221_1022.py @@ -0,0 +1,32 @@ +# Generated by Django 2.0.2 on 2018-02-21 10:22 + +from django.conf import settings +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ('payment', '0003_auto_20180220_1912'), + ] + + operations = [ + migrations.CreateModel( + name='AuthorBalance', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('type', models.PositiveSmallIntegerField(choices=[(0, 'In'), (1, 'Out')], default=0, verbose_name='Тип')), + ('amount', models.DecimalField(decimal_places=2, default=0, max_digits=8, verbose_name='Итого')), + ('commission', models.DecimalField(decimal_places=2, default=0, max_digits=8, verbose_name='Комиссия')), + ('status', models.PositiveSmallIntegerField(choices=[(0, 'Pending'), (1, 'Accepted'), (2, 'Declined')], default=0, verbose_name='Статус')), + ('author', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL, verbose_name='Автор')), + ('payment', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='payment.Payment', verbose_name='Платёж')), + ], + ), + migrations.AlterModelOptions( + name='schoolpayment', + options={'verbose_name': 'Платеж за школу', 'verbose_name_plural': 'Платежи за школу'}, + ), + ] diff --git a/apps/payment/models.py b/apps/payment/models.py index cf017b4d..dfdfd7cd 100644 --- a/apps/payment/models.py +++ b/apps/payment/models.py @@ -11,6 +11,24 @@ from apps.school.models import SchoolSchedule User = get_user_model() +class AuthorBalance(models.Model): + TYPE_CHOICES = ( + (0, 'In'), + (1, 'Out'), + ) + STATUS_CHOICES = ( + (0, 'Pending'), + (1, 'Accepted'), + (2, 'Declined'), + ) + author = models.ForeignKey(User, on_delete=models.CASCADE, verbose_name='Автор') + type = models.PositiveSmallIntegerField('Тип', choices=TYPE_CHOICES, default=0) + amount = models.DecimalField('Итого', max_digits=8, decimal_places=2, default=0) + commission = models.DecimalField('Комиссия', max_digits=8, decimal_places=2, default=0) + status = models.PositiveSmallIntegerField('Статус', choices=STATUS_CHOICES, default=0) + payment = models.ForeignKey('Payment', on_delete=models.CASCADE, null=True, blank=True, verbose_name='Платёж') + + class Payment(PolymorphicModel): PW_STATUS_CHOICES = ( (Pingback.PINGBACK_TYPE_REGULAR, 'regular',),