|
|
|
|
@ -26,6 +26,8 @@ from .forms import LearnerRegistrationForm |
|
|
|
|
from .tokens import verification_email_token |
|
|
|
|
|
|
|
|
|
User = get_user_model() |
|
|
|
|
import logging |
|
|
|
|
logger_roistat = logging.getLogger('roistat') |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class LearnerRegistrationView(FormView): |
|
|
|
|
@ -39,11 +41,14 @@ class LearnerRegistrationView(FormView): |
|
|
|
|
last_name = form.cleaned_data['last_name'] |
|
|
|
|
email = form.cleaned_data['email'].lower() |
|
|
|
|
password = form.cleaned_data['password'] |
|
|
|
|
logger_roistat.debug('start registration %s' % email) |
|
|
|
|
|
|
|
|
|
user, created = User.objects.get_or_create( |
|
|
|
|
email=email, |
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
logger_roistat.debug('user created %s' % created) |
|
|
|
|
|
|
|
|
|
if not created: |
|
|
|
|
if self.request.is_ajax(): |
|
|
|
|
return JsonResponse({ |
|
|
|
|
@ -61,13 +66,16 @@ class LearnerRegistrationView(FormView): |
|
|
|
|
|
|
|
|
|
user.set_password(password) |
|
|
|
|
user.save() |
|
|
|
|
logger_roistat.debug('user saved, id %s' % user.id) |
|
|
|
|
referrer = self.request.session.get('referrer') |
|
|
|
|
if referrer: |
|
|
|
|
logger_roistat.debug('referrer %s' % referrer) |
|
|
|
|
Referral.objects.create(referral=user, referrer_id=referrer, bonus=config.REFERRAL_BONUS, |
|
|
|
|
referrer_bonus=config.REFERRER_BONUS) |
|
|
|
|
# TODO: email admins? мб реферера уже нет, старая ссылка |
|
|
|
|
self.request.session['referrer'] = None |
|
|
|
|
login(self.request, user) |
|
|
|
|
logger_roistat.debug('login ok') |
|
|
|
|
|
|
|
|
|
# fixme: change email text |
|
|
|
|
# fixme: async send email |
|
|
|
|
@ -75,7 +83,9 @@ class LearnerRegistrationView(FormView): |
|
|
|
|
http_referer = str(http_referer[0]) + '://' + str(http_referer[1]) |
|
|
|
|
token = verification_email_token.make_token(user) |
|
|
|
|
url = http_referer + str(reverse_lazy('lilcity:verification-email', args=[token, user.id])) |
|
|
|
|
logger_roistat.debug('now send email') |
|
|
|
|
send_email('Вы успешно прошли регистрацию', email, "notification/email/verification_email.html", url=url, config=config) |
|
|
|
|
logger_roistat.debug('email sent, end reg') |
|
|
|
|
|
|
|
|
|
if self.request.is_ajax(): |
|
|
|
|
return JsonResponse({"success": True}, status=201) |
|
|
|
|
|