def register(request, plan_name=''): """ Registration page """ DEFAULT_PLAN = "Free" try: plan = SubscriptionPlan.objects.get(name__iexact=plan_name) except: plan = SubscriptionPlan.objects.get(name=DEFAULT_PLAN) if request.method == 'POST': form = RegistrationForm(plan.free, data=request.POST) if form.is_valid(): # save user user = form.save(commit=False) user.email = form.cleaned_data['username'] user.first_name, user.last_name = \ (form.cleaned_data.get('card_holder') or ' ').split(' ', 1) user.save() # save subscription try: form.subscribe(user, plan) except MouseTrap, e: form._errors['CC'] = str(e) user.delete() if form.is_valid(): # save profile profile = user.get_profile() profile.user = user profile.plan = plan profile.reset() # send welcome email if plan.billing_period_price: tpl = loader.get_template('email_welcome_paid.txt') else: tpl = loader.get_template('email_welcome_free.txt') first_charge_date = datetime.now().date() + timedelta(days=7) ctx = Context({'user': user, 'profile': profile, 'first_charge_date': first_charge_date,}) subject, message = tpl.render(ctx).split('\n', 1) eric = "*****@*****.**" send_mail(subject=subject, message=message, from_email=settings.ACCOUNTS_EMAIL, recipient_list=[user.email]) # log in automatically login(request, authenticate( username=user.email, password=form.cleaned_data['password1'], )) return HttpResponseRedirect(reverse(monitor))