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 %} -