From 397bc9c2d3471fd943356bebd9e80782bc7f8dbf Mon Sep 17 00:00:00 2001 From: gzbender Date: Sun, 29 Jul 2018 18:45:00 +0500 Subject: [PATCH 01/13] =?UTF-8?q?LIL-583=20=D1=80=D0=B5=D1=84=D0=B5=D1=80?= =?UTF-8?q?=D0=B0=D0=BB=D1=8C=D0=BD=D0=B0=D1=8F=20=D1=81=D0=B8=D1=81=D1=82?= =?UTF-8?q?=D0=B5=D0=BC=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/v1/serializers/config.py | 4 +++ .../migrations/0009_auto_20180729_0503.py | 23 +++++++++++++++ apps/config/models.py | 4 +++ apps/user/migrations/0023_referral.py | 29 +++++++++++++++++++ apps/user/models.py | 11 +++++++ project/templates/blocks/popup_auth.html | 17 +++++++++-- project/views.py | 10 +++++++ requirements.txt | 1 + 8 files changed, 96 insertions(+), 3 deletions(-) create mode 100644 apps/config/migrations/0009_auto_20180729_0503.py create mode 100644 apps/user/migrations/0023_referral.py diff --git a/api/v1/serializers/config.py b/api/v1/serializers/config.py index 4c1028b2..46cb40b2 100644 --- a/api/v1/serializers/config.py +++ b/api/v1/serializers/config.py @@ -20,6 +20,8 @@ class ConfigSerializer(serializers.ModelSerializer): MAIN_PAGE_TOP_IMAGE = serializers.SerializerMethodField() # SCHOOL_LOGO_IMAGE = serializers.ImageField(required=False, allow_null=True) # MAIN_PAGE_TOP_IMAGE = serializers.ImageField(required=False, allow_null=True) + REFERRER_CASHBACK = serializers.IntegerField() + REFERRAL_DISCOUNT = serializers.IntegerField() class Meta: model = Config @@ -37,6 +39,8 @@ class ConfigSerializer(serializers.ModelSerializer): 'INSTAGRAM_PROFILE_URL', 'SCHOOL_LOGO_IMAGE', 'MAIN_PAGE_TOP_IMAGE', + 'REFERRER_CASHBACK', + 'REFERRAL_DISCOUNT', ) def get_SCHOOL_LOGO_IMAGE(self, config): diff --git a/apps/config/migrations/0009_auto_20180729_0503.py b/apps/config/migrations/0009_auto_20180729_0503.py new file mode 100644 index 00000000..6a55aee1 --- /dev/null +++ b/apps/config/migrations/0009_auto_20180729_0503.py @@ -0,0 +1,23 @@ +# Generated by Django 2.0.6 on 2018-07-29 05:03 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('config', '0008_auto_20180425_1451'), + ] + + operations = [ + migrations.AddField( + model_name='config', + name='REFERRAL_DISCOUNT', + field=models.IntegerField(default=10), + ), + migrations.AddField( + model_name='config', + name='REFERRER_CASHBACK', + field=models.IntegerField(default=10), + ), + ] diff --git a/apps/config/models.py b/apps/config/models.py index c6be681d..8baa4c86 100644 --- a/apps/config/models.py +++ b/apps/config/models.py @@ -17,6 +17,8 @@ class Config(models.Model): SERVICE_DISCOUNT = models.IntegerField(default=1000) SCHOOL_LOGO_IMAGE = models.ImageField(null=True, blank=True) MAIN_PAGE_TOP_IMAGE = models.ImageField(null=True, blank=True) + REFERRER_CASHBACK = models.IntegerField(default=10) + REFERRAL_DISCOUNT = models.IntegerField(default=10) def save(self, *args, **kwargs): self.pk = 1 @@ -45,5 +47,7 @@ class Config(models.Model): 'SERVICE_DISCOUNT': '', 'SCHOOL_LOGO_IMAGE': '', 'MAIN_PAGE_TOP_IMAGE': '', + 'REFERRER_CASHBACK': '', + 'REFERRAL_DISCOUNT': '', } return obj diff --git a/apps/user/migrations/0023_referral.py b/apps/user/migrations/0023_referral.py new file mode 100644 index 00000000..2edf4621 --- /dev/null +++ b/apps/user/migrations/0023_referral.py @@ -0,0 +1,29 @@ +# Generated by Django 2.0.6 on 2018-07-29 05:24 + +from django.conf import settings +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('user', '0022_user_instagram_hashtag'), + ] + + operations = [ + migrations.CreateModel( + name='Referral', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('discount', models.IntegerField()), + ('referrer_cashback', models.IntegerField()), + ('referral', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), + ('referrer', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='referrals', to=settings.AUTH_USER_MODEL)), + ], + options={ + 'verbose_name': 'Реферал', + 'verbose_name_plural': 'Рефералы', + }, + ), + ] diff --git a/apps/user/models.py b/apps/user/models.py index 7391b0c8..4884c918 100644 --- a/apps/user/models.py +++ b/apps/user/models.py @@ -256,3 +256,14 @@ class EmailSubscription(models.Model): email = models.EmailField(_('email address'), unique=True) categories = models.ManyToManyField(SubscriptionCategory) mailchimp_status = models.PositiveSmallIntegerField(choices=MAILCHIMP_STATUS_CHOICES, default=ERROR) + + +class Referral(models.Model): + referral = models.OneToOneField(User, on_delete=models.CASCADE) + referrer = models.ForeignKey(User, on_delete=models.CASCADE, related_name='referrals') + discount = models.IntegerField() + referrer_cashback = models.IntegerField() + + class Meta: + verbose_name = 'Реферал' + verbose_name_plural = 'Рефералы' diff --git a/project/templates/blocks/popup_auth.html b/project/templates/blocks/popup_auth.html index cf01d86b..bce10d61 100644 --- a/project/templates/blocks/popup_auth.html +++ b/project/templates/blocks/popup_auth.html @@ -1,5 +1,5 @@ {% load static %} -