diff --git a/apps/auth/views.py b/apps/auth/views.py index 284d0dd5..6272dbac 100644 --- a/apps/auth/views.py +++ b/apps/auth/views.py @@ -32,6 +32,7 @@ class LearnerRegistrationView(FormView): template_name = "auth/registration-learner.html" def form_valid(self, form): + config = Config.load() first_name = form.cleaned_data['first_name'] last_name = form.cleaned_data['last_name'] email = form.cleaned_data['email'] @@ -52,21 +53,21 @@ class LearnerRegistrationView(FormView): user.last_name = last_name user.set_password(password) + user.save() referrer = self.request.session.get('referrer') if referrer: - Referral.objects.create(referral=user, referrer=referrer, discount=Config.REFERRAL_DISCOUNT, - referrer_cashback=Config.REFERRER_CASHBACK) + Referral.objects.create(referral=user, referrer_id=referrer, discount=config.REFERRAL_DISCOUNT, + referrer_cashback=config.REFERRER_CASHBACK) + # TODO: email admins? мб реферера уже нет, старая ссылка self.request.session['referrer'] = None - user.save() login(self.request, user) # fixme: change email text # fixme: async send email - config = Config.load() - refferer = urlsplit(self.request.META.get('HTTP_REFERER')) - refferer = str(refferer[0]) + '://' + str(refferer[1]) + http_referer = urlsplit(self.request.META.get('HTTP_REFERER')) + http_referer = str(http_referer[0]) + '://' + str(http_referer[1]) token = verification_email_token.make_token(user) - url = refferer + str(reverse_lazy('lilcity:verification-email', args=[token, user.id])) + url = http_referer + str(reverse_lazy('lilcity:verification-email', args=[token, user.id])) send_email('Вы успешно прошли регистрацию', email, "notification/email/verification_email.html", url=url, config=config) return JsonResponse({"success": True}, status=201) @@ -104,6 +105,7 @@ class VerificationEmailView(View): user.is_email_proved = True user.save() login(request, user) + self.request.session['referrer'] = None return redirect(reverse_lazy('lilcity:success-verification-email')) else: return JsonResponse({"success": False}, status=400) @@ -192,6 +194,14 @@ class FacebookLoginOrRegistration(View): user.photo.save(fname, photo, save=True) user.save() + referrer = self.request.session.get('referrer') + if referrer: + config = Config.load() + Referral.objects.create(referral=user, referrer_id=referrer, discount=config.REFERRAL_DISCOUNT, + referrer_cashback=config.REFERRER_CASHBACK) + # TODO: email admins? мб реферера уже нет, старая ссылка + self.request.session['referrer'] = None + login(requests, user=user) return JsonResponse({"success": True}) else: @@ -200,4 +210,5 @@ class FacebookLoginOrRegistration(View): fname = str(fb_id) + '.jpg' user.photo.save(fname, photo, save=True) login(requests, user=user) + self.request.session['referrer'] = None return JsonResponse({"success": True}) diff --git a/project/views.py b/project/views.py index 112b128b..4239d641 100644 --- a/project/views.py +++ b/project/views.py @@ -72,13 +72,15 @@ class IndexView(TemplateView): school_purchased_future = False school_schedules_purchased = [] - if referrer: + if referrer and not self.request.user.is_authenticated: try: referrer = short_url.decode_url(referrer) referrer = User.objects.get(pk=referrer).id except: referrer = None self.request.session['referrer'] = referrer + else: + referrer = None context.update({ 'is_registration': bool(referrer), diff --git a/web/src/js/modules/auth.js b/web/src/js/modules/auth.js index 07f65cda..0d7dab55 100644 --- a/web/src/js/modules/auth.js +++ b/web/src/js/modules/auth.js @@ -40,7 +40,7 @@ $(document).ready(function () { pass.hide(); // login.fadeIn(); - window.location.reload(); + window.location.href = '/'; }); $('#password-reset__success-hide').on('click', function (e) { @@ -153,7 +153,7 @@ $(document).ready(function () { }) .done(function (data) { if (data.success === true) { - location.reload(); + location.href = '/'; } else { authButton.removeClass('loading'); } @@ -234,7 +234,7 @@ $(document).ready(function () { }) .done(function (data) { if (data.success === true) { - location.reload(); + location.href = '/'; } else { registrationButton.removeClass('loading'); } @@ -312,7 +312,7 @@ function login_with_facebook(accessToken) { }) .done(function (data) { if (data.success === true) { - location.reload(); + location.href = '/'; } }) .fail(function (xhr) { diff --git a/web/src/js/modules/popup.js b/web/src/js/modules/popup.js index f8fcaa4c..5e339bd9 100644 --- a/web/src/js/modules/popup.js +++ b/web/src/js/modules/popup.js @@ -42,8 +42,7 @@ $(document).ready(function () { $(this).prop('checked', true); }); } - - $('[data-day]').trigger('change'); + updateCart(); }); $('.js-popup-close').on('click', function(e){ @@ -86,29 +85,20 @@ $(document).ready(function () { } $(document).on('change', '[data-day]', function(){ - console.log('on change data-day'); - var weekday = $(this).data('day'); - var price = $(this).data('price'); - if($(this).is(':checked')) { - // console.log('checked'); - selectedWeekdays[weekday] = {price:price}; - } else { - // console.log('not checked'); - delete selectedWeekdays[weekday]; - } - updateCart(); }); function updateCart(){ var $orderPrice = $('.order_price_text'); var days = ['', 'Понедельник', 'Вторник', 'Среда', 'Четверг', 'Пятница', 'Суббота', 'Воскресенье']; - var weekdays = [], daysText = [], price = 0; - for(var i in selectedWeekdays) { - price += parseInt(selectedWeekdays[i].price); - weekdays.push(i); - daysText.push(days[i]); - } + var weekdays = [], daysText = []; + $('[data-day]').each(function() { + var weekday = $(this).data('day'); + if($(this).is(':checked')) { + weekdays.push(weekday); + daysText.push(days[weekday]); + } + }); if(weekdays.length){ api.getPaymentAmount({ user: window.STORE.user.id, weekdays: weekdays }) @@ -133,6 +123,4 @@ $(document).ready(function () { link = link+'?'+decodeURIComponent($.param({weekdays: weekdays}, true)); $('.but_btn_popup').attr('href', link); } - - updateCart(); });