diff --git a/apps/notification/tasks.py b/apps/notification/tasks.py
index 28544d52..e6629552 100644
--- a/apps/notification/tasks.py
+++ b/apps/notification/tasks.py
@@ -98,3 +98,9 @@ def sendgrid_update_recipients():
sg = get_sendgrid_client()
response = sg.client.contactdb.recipients.patch(request_body=data)
print(response.body)
+
+
+@app.task
+def send_gift_certificate(user_gift_certificate):
+ send_email('Подарочный сертификат от Lil School', user_gift_certificate.user.email, 'notification/email/gift_certificate.html',
+ user_gift_certificate=user_gift_certificate, gift_certificate=user_gift_certificate.gift_certificate)
diff --git a/apps/notification/templates/notification/email/gift_certificate.html b/apps/notification/templates/notification/email/gift_certificate.html
new file mode 100644
index 00000000..4e745a1a
--- /dev/null
+++ b/apps/notification/templates/notification/email/gift_certificate.html
@@ -0,0 +1,82 @@
+{% extends "notification/email/_base.html" %}
+
+{% block content %}
+
Поздравляем с успешной
+ покупкой!
+
+
Вы получаете {{ gift_certificate.price }} лиликов на счет! 1 LIL = 1 руб.
+ Накапливайте монеты и тратьте их на оплату школы и курсов.
+
+
+
+
+
+
+
+
+ | Подарочный сертификат
+ |
+ {{ gift_certificate.price }} р.
+ |
+
+
+
+
+
+Чтобы воспользоваться сертификатом, перейдите по ссылке
+
+
+ Или воспользуйтесь сертификатом, введя уникальный код на в разделе
+ вашего профиля на сайте
lil.school
+
+Ваш код
+
+
+
{{ user_gift_certificate.code }}
+
+
+
+ Вы так же можете отправить это письмо, ссылку или код вашему другу, чтобы подарить ему этот сертификат.
+
+{% endblock content %}
diff --git a/apps/payment/admin.py b/apps/payment/admin.py
index 19166563..b26b03a2 100644
--- a/apps/payment/admin.py
+++ b/apps/payment/admin.py
@@ -5,7 +5,7 @@ from polymorphic.admin import (
PolymorphicChildModelFilter,
)
-from .models import AuthorBalance, CoursePayment, SchoolPayment, Payment
+from .models import AuthorBalance, CoursePayment, SchoolPayment, Payment, GiftCertificate
@admin.register(AuthorBalance)
@@ -61,3 +61,8 @@ class PaymentAdmin(PolymorphicParentModelAdmin):
CoursePayment,
SchoolPayment,
)
+
+
+@admin.register(GiftCertificate)
+class GiftCertificateAdmin(admin.ModelAdmin):
+ pass
diff --git a/apps/payment/migrations/0025_giftcertificate_usergiftcertificate.py b/apps/payment/migrations/0025_giftcertificate_usergiftcertificate.py
new file mode 100644
index 00000000..d5ac1b08
--- /dev/null
+++ b/apps/payment/migrations/0025_giftcertificate_usergiftcertificate.py
@@ -0,0 +1,34 @@
+# Generated by Django 2.0.6 on 2018-10-29 14:36
+
+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', '0024_auto_20181002_0338'),
+ ]
+
+ operations = [
+ migrations.CreateModel(
+ name='GiftCertificate',
+ fields=[
+ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+ ('price', models.DecimalField(decimal_places=2, default=0, editable=False, max_digits=8)),
+ ],
+ ),
+ migrations.CreateModel(
+ name='UserGiftCertificate',
+ fields=[
+ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+ ('recipient', models.EmailField(max_length=254)),
+ ('bonuses_sent', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='payment.UserBonus')),
+ ('gift_certificate', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='payment.GiftCertificate')),
+ ('payment', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, to='payment.Payment')),
+ ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='gift_certificates', to=settings.AUTH_USER_MODEL)),
+ ],
+ ),
+ ]
diff --git a/apps/payment/migrations/0026_auto_20181101_1546.py b/apps/payment/migrations/0026_auto_20181101_1546.py
new file mode 100644
index 00000000..45cd9906
--- /dev/null
+++ b/apps/payment/migrations/0026_auto_20181101_1546.py
@@ -0,0 +1,39 @@
+# Generated by Django 2.0.6 on 2018-11-01 15:46
+
+from django.db import migrations, models
+import django.db.models.deletion
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('payment', '0025_giftcertificate_usergiftcertificate'),
+ ]
+
+ operations = [
+ migrations.CreateModel(
+ name='GiftCertificatePayment',
+ fields=[
+ ('payment_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='payment.Payment')),
+ ],
+ options={
+ 'verbose_name': 'Платеж за подарочный сертификат',
+ 'verbose_name_plural': 'Платежи за подарочные сертификаты',
+ },
+ bases=('payment.payment',),
+ ),
+ migrations.AlterModelOptions(
+ name='giftcertificate',
+ options={'ordering': ('price',)},
+ ),
+ migrations.AlterField(
+ model_name='giftcertificate',
+ name='price',
+ field=models.DecimalField(decimal_places=2, default=0, max_digits=8),
+ ),
+ migrations.AddField(
+ model_name='giftcertificatepayment',
+ name='gift_certificate',
+ field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='payments', to='payment.GiftCertificate', verbose_name='Подарочный сертификат'),
+ ),
+ ]
diff --git a/apps/payment/models.py b/apps/payment/models.py
index 4ac9b6b9..34e2765c 100644
--- a/apps/payment/models.py
+++ b/apps/payment/models.py
@@ -1,5 +1,6 @@
from decimal import Decimal
import arrow
+import short_url
from django.db.models import Func, F
from paymentwall import Pingback
@@ -147,6 +148,8 @@ class Payment(PolymorphicModel):
referrer_bonus = user.referral.referrer_bonus
if payment and payment.is_paid():
price = payment.amount
+ elif isinstance(payment, GiftCertificatePayment):
+ price = payment.gift_certificate.price
elif course:
price = course.price
else:
@@ -244,6 +247,12 @@ class Payment(PolymorphicModel):
else:
author_balance.amount = self.amount
author_balance.save()
+ if isinstance(self, UserGiftCertificate) and self.is_paid():
+ ugs, created = UserGiftCertificate.objects.get_or_create(user=self.user, gift_certificate=self.gift_certificate,
+ payment=self)
+ if created:
+ from apps.notification.tasks import send_gift_certificate
+ send_gift_certificate.delay(ugs)
# Если юзер реферал и нет платежа, где применялась скидка
if hasattr(self.user, 'referral') and not self.user.referral.payment and self.is_paid():
# Платеж - как сигнал, что скидка применилась
@@ -283,6 +292,15 @@ class SchoolPayment(Payment):
return arrow.get(self.date_end, settings.TIME_ZONE).humanize(locale='ru')
+class GiftCertificatePayment(Payment):
+ gift_certificate = models.ForeignKey('GiftCertificate', on_delete=models.CASCADE,
+ verbose_name='Подарочный сертификат', related_name='payments')
+
+ class Meta:
+ verbose_name = 'Платеж за подарочный сертификат'
+ verbose_name_plural = 'Платежи за подарочные сертификаты'
+
+
class UserBonus(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE, related_name='bonuses')
amount = models.DecimalField(max_digits=8, decimal_places=2, default=0, editable=False)
@@ -295,8 +313,19 @@ class UserBonus(models.Model):
class GiftCertificate(models.Model):
- user = models.ForeignKey(User, on_delete=models.CASCADE, related_name='bonuses')
+ price = models.DecimalField(max_digits=8, decimal_places=2, default=0)
+
+ class Meta:
+ ordering = ('price',)
+
+
+class UserGiftCertificate(models.Model):
+ gift_certificate = models.ForeignKey(GiftCertificate, on_delete=models.CASCADE,)
+ user = models.ForeignKey(User, on_delete=models.CASCADE, related_name='gift_certificates')
recipient = models.EmailField()
- amount = models.DecimalField(max_digits=8, decimal_places=2, default=0, editable=False)
payment = models.ForeignKey(Payment, on_delete=models.SET_NULL, null=True)
- bonus_sended = models.ForeignKey(UserBonus, blank=True, null=True)
+ bonuses_sent = models.ForeignKey(UserBonus, on_delete=models.CASCADE, blank=True, null=True)
+
+ @property
+ def code(self):
+ return short_url.encode_url(self.id) if self.id else None
diff --git a/apps/payment/templates/payment/gift_certificate.html b/apps/payment/templates/payment/gift_certificate.html
new file mode 100644
index 00000000..7d291137
--- /dev/null
+++ b/apps/payment/templates/payment/gift_certificate.html
@@ -0,0 +1,17 @@
+{% extends "templates/lilcity/index.html" %} {% load static %}
+
+{% block content %}
+
+
+
Вам подарок!
+
+ Пользователь ХХХ дарит вам сертификат на сумму ХХХ руб
+
+
+
+
+{% endblock content %}
diff --git a/apps/payment/templates/payment/gift_certificate_item.html b/apps/payment/templates/payment/gift_certificate_item.html
new file mode 100644
index 00000000..f77528d0
--- /dev/null
+++ b/apps/payment/templates/payment/gift_certificate_item.html
@@ -0,0 +1,25 @@
+{% load thumbnail %}
+{% load static %}
+{% load data_liked from data_liked %}
+
+
+
+
+
подарочный сертификат
+
{{ gift_certificate.price|floatformat:"-2" }}₽
+
+ {% if user_gift_certificate %}
+ {% if user_gift_certificate.bonuses_sent %}
+
Получено
+ {% else %}
+
Ожидает получения
+ {% endif %}
+ {% else %}
+
Купить сертификат
+ {% endif %}
+
diff --git a/apps/payment/templates/payment/gift_certificate_items.html b/apps/payment/templates/payment/gift_certificate_items.html
new file mode 100644
index 00000000..05730083
--- /dev/null
+++ b/apps/payment/templates/payment/gift_certificate_items.html
@@ -0,0 +1,4 @@
+{% for gift_certificate in gift_certificates %}
+ {% cycle 'theme_pink2' 'theme_cyan' 'theme_violet2' as theme_color silent %}
+ {% include "payment/gift_certificate_item.html" %}
+{% endfor %}
diff --git a/apps/payment/templates/payment/gift_certificate_payment_success.html b/apps/payment/templates/payment/gift_certificate_payment_success.html
new file mode 100644
index 00000000..793eb25e
--- /dev/null
+++ b/apps/payment/templates/payment/gift_certificate_payment_success.html
@@ -0,0 +1,13 @@
+{% extends "templates/lilcity/index.html" %} {% load static %} {% block content %}
+
+
+
+
Вы успешно приобрели подарочный сертификат!
+
Мы отправили письмо с сертификатом на вашу почту.
+
+
+
+
+{% endblock content %}
diff --git a/apps/payment/templates/payment/gift_certificates.html b/apps/payment/templates/payment/gift_certificates.html
new file mode 100644
index 00000000..e1e614e0
--- /dev/null
+++ b/apps/payment/templates/payment/gift_certificates.html
@@ -0,0 +1,31 @@
+{% extends "templates/lilcity/index.html" %} {% load static %}
+
+{% block content %}
+
+
+
+ Подарочные сертификаты
+
+
+
+
+
+
+
Если вам не совсем удобно заниматься с нами каждый день в нашей онлайн-школе, специально для вас мы
+ делаем отдельные уроки в записи, которые вы можете проходить, когда вам будет удобно.
+ Учите и развивайте креативное мышление когда и где угодно
+
+
Сертификаты
+
+ {% include "payment/gift_certificate_items.html" %}
+
+
+
+{% endblock content %}
diff --git a/apps/payment/templates/payment/payment_success.html b/apps/payment/templates/payment/payment_success.html
index 7d174018..9d256634 100644
--- a/apps/payment/templates/payment/payment_success.html
+++ b/apps/payment/templates/payment/payment_success.html
@@ -7,10 +7,17 @@
- {% else %}
+ {% endif %}
+ {% if course %}
Вы успешно приобрели курс!
+ {% endif %}
+ {% if gift_certificate %}
+ Вы успешно приобрели подарочный сертификат!
+
{% endif %}
diff --git a/apps/payment/views.py b/apps/payment/views.py
index 2f90259c..a25cc124 100644
--- a/apps/payment/views.py
+++ b/apps/payment/views.py
@@ -1,5 +1,5 @@
from decimal import Decimal
-
+import short_url
import arrow
import json
import logging
@@ -27,7 +27,8 @@ from apps.course.models import Course
from apps.school.models import SchoolSchedule
from apps.payment.tasks import transaction_to_mixpanel, product_payment_to_mixpanel, transaction_to_roistat
-from .models import AuthorBalance, CoursePayment, SchoolPayment, Payment, UserBonus, GiftCertificate
+from .models import AuthorBalance, CoursePayment, SchoolPayment, Payment, UserBonus, GiftCertificate, \
+ GiftCertificatePayment, UserGiftCertificate
logger = logging.getLogger('django')
@@ -216,6 +217,8 @@ class PaymentwallCallbackView(View):
product_payment_class = CoursePayment
elif product_type_name == 'school':
product_payment_class = SchoolPayment
+ elif product_type_name == 'gift_certificate':
+ product_payment_class = GiftCertificatePayment
else:
return HttpResponse(status=403)
@@ -264,6 +267,15 @@ class PaymentwallCallbackView(View):
'created_at': payment.created_at,
'update_at': payment.update_at,
}
+ elif product_type_name == 'gift_certificate':
+ properties = {
+ 'payment_id': payment.id,
+ 'amount': payment.amount,
+ 'status': payment.status,
+ 'gift_certificate': payment.gift_certificate.id,
+ 'created_at': payment.created_at,
+ 'update_at': payment.update_at,
+ }
payment.save()
product_payment_to_mixpanel.delay(
@@ -299,8 +311,71 @@ class PaymentwallCallbackView(View):
return HttpResponse(status=403)
-class GiftCertificateGetView(DetailView):
+class GiftCertificatesView(TemplateView):
model = GiftCertificate
+ template_name = 'payment/gift_certificates.html'
+
+ def get(self, request, *args, **kwargs):
+ gift_certificates = GiftCertificate.objects.all()
+ context = self.get_context_data(**kwargs)
+ context['gift_certificates'] = gift_certificates
+ return self.render_to_response(context)
+
+
+@method_decorator(login_required, name='dispatch')
+class GiftCertificateBuyView(TemplateView):
+ model = GiftCertificate
+ template_name = 'payment/paymentwall_widget.html'
+
+ def get(self, request, pk, *args, **kwargs):
+ gift_certificate = get_object_or_404(GiftCertificate, pk=pk)
+ roistat_visit = request.COOKIES.get('roistat_visit', None)
+ gift_certificate_payment = GiftCertificatePayment.objects.create(
+ user=request.user,
+ gift_certificate=gift_certificate,
+ roistat_visit=roistat_visit,)
+ context = self.get_context_data(**kwargs)
+ product = Product(
+ f'gift_certificate_{gift_certificate_payment.id}',
+ gift_certificate_payment.amount,
+ 'RUB',
+ 'Подарочный сертификат',
+ )
+ host = urlsplit(self.request.META.get('HTTP_REFERER'))
+ host = str(host[0]) + '://' + str(host[1])
+ widget = Widget(
+ str(request.user.id),
+ 'p1_1',
+ [product],
+ extra_params={
+ 'lang': 'ru',
+ 'evaluation': 1,
+ 'demo': 1,
+ 'test_mode': 1,
+ 'success_url': host + str(reverse_lazy('gift-certificate-payment-success', args=[gift_certificate_payment.id])),
+ 'failure_url': host + str(reverse_lazy('payment-error')),
+ }
+ )
+ context['widget'] = widget.get_html_code()
+ return self.render_to_response(context)
+
+
+@method_decorator(login_required, name='dispatch')
+class GiftCertificateBuySuccessView(TemplateView):
+ template_name = 'payment/gift_certificate_payment_success.html'
+
+ def get(self, request, payment_id=None, *args, **kwargs):
+ # print(GiftCertificatePayment.objects.get(id=payment_id))
+ gift_certificate_payment = get_object_or_404(GiftCertificatePayment, pk=payment_id)
+ return self.render_to_response(context={'gift_certificate': True})
+
+
+class GiftCertificateGetView(TemplateView):
+ template_name = 'payment/gift_certificate_get.html'
+
+ def get(self, request, slug, *args, **kwargs):
+ ugs = get_object_or_404(UserGiftCertificate, pk=short_url.decode_url(slug))
+ return self.render_to_response(context={'gift_certificate': ugs.gift_certificate, 'user_gift_certificate': ugs})
- def get(self):
+ def post(self, request, slug, *args, **kwargs):
pass
diff --git a/apps/user/templates/user/profile.html b/apps/user/templates/user/profile.html
index 9ad4d552..81eee428 100644
--- a/apps/user/templates/user/profile.html
+++ b/apps/user/templates/user/profile.html
@@ -91,10 +91,16 @@
Перейти в онлайн-школу
{% endif %}
+ {% if gift_certificates.exists %}
+ {% for ugs in user_gift_certificates %}
+ {% cycle 'theme_pink2' 'theme_cyan' 'theme_violet2' as theme_color silent %}
+ {% include "payment/gift_certificate_item.html" gift_certificate=ugs.gift_certificate user_gift_certificate=ugs %}
+ {% endfor %}
+ {% endif %}
{% if paid.exists %}
{% include "course/course_items.html" with course_items=paid %}
{% endif %}
- {% if not is_school_purchased and not paid.exists %}
+ {% if not is_school_purchased and not paid.exists and not user_gift_certificates.exists %}
Вы пока ничего не приобрели...
diff --git a/apps/user/views.py b/apps/user/views.py
index f4ea0ebb..e456af1c 100644
--- a/apps/user/views.py
+++ b/apps/user/views.py
@@ -24,7 +24,7 @@ from apps.config.models import Config
from apps.course.models import Course
from apps.notification.utils import send_email
from apps.school.models import SchoolSchedule
-from apps.payment.models import AuthorBalance, CoursePayment, SchoolPayment, Payment
+from apps.payment.models import AuthorBalance, CoursePayment, SchoolPayment, Payment, UserGiftCertificate
from apps.user.models import AuthorRequest, EmailSubscription, SubscriptionCategory
from .forms import AuthorRequesForm, UserEditForm, WithdrawalForm
@@ -59,6 +59,7 @@ class ProfileView(TemplateView):
author=self.object,
)
context['is_author'] = context['published'] or self.request.user.role == User.AUTHOR_ROLE
+ context['user_gift_certificates'] = UserGiftCertificate.objects.filter(user=self.request.user)
context['paid'] = Course.objects.filter(
payments__in=CoursePayment.objects.filter(
user=self.object,
diff --git a/project/templates/blocks/header.html b/project/templates/blocks/header.html
index 312d06ec..5ad39c12 100644
--- a/project/templates/blocks/header.html
+++ b/project/templates/blocks/header.html
@@ -41,6 +41,10 @@
+
{% include 'templates/blocks/user_menu.html' %}
diff --git a/project/templates/blocks/lil_store_js.html b/project/templates/blocks/lil_store_js.html
index 7df6d16d..244eb875 100644
--- a/project/templates/blocks/lil_store_js.html
+++ b/project/templates/blocks/lil_store_js.html
@@ -28,6 +28,7 @@
referrer: '{{ referrer.id|default:'' }}',
referrerName: '{% if referrer %}{{ referrer.get_full_name }}{% endif %}',
isReferralUrl: {{ is_referral_url|yesno:"true,false" }},
+ isGiftCertificateUrl: {{ is_gift_certificate_url|yesno:"true,false" }},
},
};
diff --git a/project/templates/blocks/popup_gift_certificate.html b/project/templates/blocks/popup_gift_certificate.html
new file mode 100644
index 00000000..6416acfa
--- /dev/null
+++ b/project/templates/blocks/popup_gift_certificate.html
@@ -0,0 +1,27 @@
+{% load static %}
+
diff --git a/project/templates/lilcity/index.html b/project/templates/lilcity/index.html
index 70189e29..a8ece56c 100644
--- a/project/templates/lilcity/index.html
+++ b/project/templates/lilcity/index.html
@@ -145,6 +145,9 @@
{% if course %}
{% include "templates/blocks/popup_course_buy.html" %}
{% endif %}
+ {% if is_gift_certificate_url %}
+ {% include "templates/blocks/popup_gift_certificate.html" %}
+ {% endif %}
{% include "templates/blocks/popup_course_lock.html" %}
{% include "templates/blocks/popup_subscribe.html" %}
diff --git a/project/urls.py b/project/urls.py
index 396530cb..4946c577 100644
--- a/project/urls.py
+++ b/project/urls.py
@@ -34,8 +34,8 @@ from apps.user.views import (
from apps.payment.views import (
CourseBuySuccessView, CourseBuyView,
PaymentwallCallbackView, SchoolBuySuccessView,
- SchoolBuyView,
-)
+ SchoolBuyView, GiftCertificatesView, GiftCertificateBuyView,
+ GiftCertificateBuySuccessView, GiftCertificateGetView)
from .views import AboutView, IndexView, SchoolSchedulesView
@@ -91,7 +91,11 @@ urlpatterns = [
path('contest//', ContestView.as_view(), name='contest'),
path('contest-work//', ContestWorkView.as_view(), name='contest_work'),
path('contest-work//comment', contest_work_comment, name='contest_work_comment'),
- path('gift//get', ContestView.as_view(), name='contest'),
+ path('gift-certificates', GiftCertificatesView.as_view(), name='gift-certificates'),
+ path('gift-certificate//checkout', GiftCertificateBuyView.as_view(), name='gift-certificate-checkout'),
+ path('payments/gift-certificate//success', GiftCertificateBuySuccessView.as_view(),
+ name='gift-certificate-payment-success'),
+ path('gift-certificate//get', GiftCertificateGetView.as_view(), name='gift-certificate-get'),
]
diff --git a/project/views.py b/project/views.py
index 29189994..ac4ffb46 100644
--- a/project/views.py
+++ b/project/views.py
@@ -9,7 +9,7 @@ from paymentwall.pingback import Pingback
from apps.course.models import Course
from apps.school.models import SchoolSchedule
-from apps.payment.models import SchoolPayment
+from apps.payment.models import SchoolPayment, UserGiftCertificate
User = get_user_model()
@@ -23,6 +23,7 @@ class IndexView(TemplateView):
def get_context_data(self):
referrer = self.request.GET.get('referrer')
+ user_gift_certificate = self.request.GET.get('gift-certificate')
is_referral_url = bool(referrer)
context = super().get_context_data()
@@ -77,7 +78,17 @@ class IndexView(TemplateView):
else:
referrer = None
+ if user_gift_certificate:
+ try:
+ user_gift_certificate = short_url.decode_url(user_gift_certificate)
+ user_gift_certificate = UserGiftCertificate.objects,get(pk=user_gift_certificate)
+ except:
+ user_gift_certificate = None
+
context.update({
+ 'gift_certificate': user_gift_certificate.gift_certificate if user_gift_certificate else None,
+ 'user_gift_certificate': user_gift_certificate,
+ 'is_gift_certificate_url': bool(user_gift_certificate),
'referrer': referrer,
'is_referral_url': is_referral_url,
'online': online,
diff --git a/web/src/js/modules/common.js b/web/src/js/modules/common.js
index a2bc6999..b03ad0cc 100644
--- a/web/src/js/modules/common.js
+++ b/web/src/js/modules/common.js
@@ -55,9 +55,9 @@ $(document).ready(function () {
$('.js-header-enter').click();
});
}
+ $popupAuth.find(authPopupActiveTab == 'login' ? '.js-auth-type_login' : '.js-auth-type_registration').addClass('active');
+ $popupAuth.find(authPopupActiveTab == 'login' ? '.js-auth-tab_login' : '.js-auth-tab_registration').show();
}
- $popupAuth.find(authPopupActiveTab == 'login' ? '.js-auth-type_login' : '.js-auth-type_registration').addClass('active');
- $popupAuth.find(authPopupActiveTab == 'login' ? '.js-auth-tab_login' : '.js-auth-tab_registration').show();
});
function updateHeader() {
diff --git a/web/src/js/modules/popup.js b/web/src/js/modules/popup.js
index 286797c6..061e2747 100644
--- a/web/src/js/modules/popup.js
+++ b/web/src/js/modules/popup.js
@@ -158,6 +158,12 @@ $(document).ready(function () {
if (e.keyCode === 27) hidePopup();
});
+
+ if(window.LIL_STORE.flags.isGiftCertificateUrl){
+ popup = $('.js-popup-gift-certificate');
+ showPopup();
+ }
+
function showPopup(){
body.addClass('no-scroll');
popup.addClass('open');
diff --git a/web/src/sass/_common.sass b/web/src/sass/_common.sass
index 28847a1c..7928b4bc 100755
--- a/web/src/sass/_common.sass
+++ b/web/src/sass/_common.sass
@@ -26,12 +26,15 @@
$pink: #FF9393
$pink-light: #FDF8F9
+$pink2: #FEB9B9
$purple: #B995D9
$green: #8ECFC0
$green-light: #5BD700
+$cyan: #B6DFD6
$gray: #A7A7A7
$blue: #4A90E2
$viol: #B995D9
+$viol2: #A186BD
$bg: #f8f8f8
$border: #E6E6E6
$cl: #191919
@@ -1630,6 +1633,12 @@ a.grey-link
color: $green
&_violet
color: $viol
+ &_violet2
+ color: $viol2
+ &_pink2
+ color: $pink2
+ &_cyan
+ color: $cyan
&_lg
font-size: 20px
letter-spacing: 4px
@@ -4404,3 +4413,51 @@ a
&__lil-coin-img
margin-bottom: -5px
margin-right: 4px
+
+
+.gift-certificates
+ display: flex
+ margin: 0 -10px
+ flex-wrap: wrap
+ +m
+ display: block
+ margin: 0
+ &__item
+ display: block
+ margin: 0 10px 60px
+ color: $cl
+ flex: 0 0 calc(33.33% - 20px)
+ +t
+ margin-bottom: 50px !important
+ +m
+ margin: 0 0 30px
+ &__preview
+ display: block
+ position: relative
+ margin-bottom: 15px
+ border-radius: 2px
+ color: $cl
+ overflow: hidden
+ width: 300px
+ height: 200px
+ +t
+ margin-bottom: 10px
+ &__details
+ display: flex
+ margin-bottom: 10px
+ &__price
+ margin-left: auto
+ +fb
+ font-size: 12px
+ letter-spacing: 2px
+ color: $cl
+ &__title
+ text-transform: uppercase
+ &__buy-btn
+ width: 100%
+ &__preview.theme_pink2
+ background: $pink2
+ &__preview.theme_cyan
+ background: $cyan
+ &__preview.theme_violet2
+ background: $viol2