def account_data(self, test_value): """ Returns a dict with test data for all the user/profile fields. """ # User fields data = {"email": test_value + "@example.com"} for field in ("first_name", "last_name", "username", "password1", "password2"): if field.startswith("password"): value = "x" * settings.ACCOUNTS_MIN_PASSWORD_LENGTH else: value = test_value data[field] = value # Profile fields try: profile_form = ProfileForm() ProfileFieldsForm = profile_form.get_profile_fields_form() for name, field in ProfileFieldsForm().fields.items(): if name != "id": if hasattr(field, "choices"): value = list(field.choices)[0][0] elif isinstance(field, (DateField, DateTimeField)): value = "9001-04-20" else: value = test_value data[name] = value except ProfileNotConfigured: pass return data
def retail_signup(request, template="accounts/retail_signup.html"): form = ProfileForm(request.POST or None) if request.method == "POST" and form.is_valid(): new_user = form.save() # Add to campaign monitor if bool(form.cleaned_data.get("optin")): cm_api = CampaignMonitorApi(settings.CM_API_KEY, settings.CM_CLIENT_ID) listid = settings.CM_RETAIL_LIST_ID custom_fields = {} #try: cm_api.subscriber_add( listid, form.cleaned_data.get("email"), form.cleaned_data.get("first_name") + ' ' + form.cleaned_data.get("last_name"), custom_fields=custom_fields) #except: # pass if not new_user.is_active: send_verification_mail(request, new_user, "signup_verify") info(request, "A verification email has been sent with a link for activating your account.") else: info(request, "Successfully signed up") auth_login(request, new_user) return my_login_redirect(request) context = {"form": form, "title": "Customer Registration"} return render(request, template, context)
def profile_update(request, template="accounts/account_profile_update.html"): """ Profile update form. """ form = ProfileForm(request.POST or None, instance=request.user) if request.method == "POST" and form.is_valid(): user = form.save() info(request, _("Profile updated")) try: return redirect("profile", username=user.username) except NoReverseMatch: return redirect("profile_update") context = {"form": form, "title": _("Update Profile")} return render(request, template, context)
def signup(request, template="accounts/account_signup.html"): """ Signup form. """ form = ProfileForm(request.POST or None) if request.method == "POST" and form.is_valid(): new_user = form.save() if not new_user.is_active: send_verification_mail(request, new_user, "signup_verify") info(request, _("A verification email has been sent with " "a link for activating your account.")) else: info(request, _("Successfully signed up")) auth_login(request, new_user) return login_redirect(request) context = {"form": form, "title": _("Signup")} return render(request, template, context)
def wholesale_signup(request, template="accounts/wholesale_signup.html"): form = ProfileForm(request.POST or None) if request.method == "POST" and form.is_valid(): new_user = form.save() g = Group.objects.get(name='Wholesale Customers') g.user_set.add(new_user) # Add to campaign monitor if bool(form.cleaned_data.get("optin")): cm_api = CampaignMonitorApi(settings.CM_API_KEY, settings.CM_CLIENT_ID) listid = settings.CM_WHOLESALE_LIST_ID usertype = "" if form.cleaned_data.get("user_type"): try: usertype = USER_TYPE_CHOICES[form.cleaned_data.get("user_type")] except: pass elif form.cleaned_data.get("user_type_other"): usertype = form.cleaned_data.get("user_type_other") custom_fields = {"CustomerType": usertype} try: cm_api.subscriber_add( listid, form.cleaned_data.get("email"), form.cleaned_data.get("first_name") + ' ' + form.cleaned_data.get("last_name"), custom_fields=custom_fields) except: pass if not new_user.is_active: send_verification_mail(request, new_user, "signup_verify") info(request, "A verification email has been sent with a link for activating your account.") else: info(request, "Successfully signed up") auth_login(request, new_user) send_registration_confirmation_email(request) return my_login_redirect(request, wholesale=True) context = {"form": form, "title": "Wholesale Customer Registration"} return render(request, template, context)