LIL-583 При регистрации записывается реферал, в попапе покупки лагеря цена берется из АПИ

remotes/origin/hotfix/LIL-691
gzbender 8 years ago
parent c6e721d722
commit 0586a97ad3
  1. 25
      apps/auth/views.py
  2. 4
      project/views.py
  3. 8
      web/src/js/modules/auth.js
  4. 30
      web/src/js/modules/popup.js

@ -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})

@ -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),

@ -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) {

@ -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();
});

Loading…
Cancel
Save