def update(request): """Update contact info""" init_data = {} areas, countries, only_country = get_area_country_options(request) contact = Contact.from_request(request, create=False) if request.POST: new_data = request.POST.copy() form = ExtendedContactInfoForm(countries, areas, new_data, initial=init_data) if form.is_valid(): if contact is None and request.user: contact = Contact(user=request.user) custID = form.save(contact=contact) request.session['custID'] = custID url = urlresolvers.reverse('satchmo_account_info') return http.HttpResponseRedirect(url) else: if config_get_group('NEWSLETTER'): show_newsletter = True else: show_newsletter = False else: if contact: #If a person has their contact info, make sure we populate it in the form for item in contact.__dict__.keys(): init_data[item] = getattr(contact,item) if contact.shipping_address: for item in contact.shipping_address.__dict__.keys(): init_data["ship_"+item] = getattr(contact.shipping_address,item) if contact.billing_address: for item in contact.billing_address.__dict__.keys(): init_data[item] = getattr(contact.billing_address,item) if contact.primary_phone: init_data['phone'] = contact.primary_phone.phone show_newsletter = False current_subscriber = False if config_get_group('NEWSLETTER'): show_newsletter = True if contact: from satchmo.newsletter import is_subscribed current_subscriber = is_subscribed(contact) init_data['newsletter'] = current_subscriber form = ExtendedContactInfoForm(countries, areas, initial=init_data) context = RequestContext(request, { 'form': form, 'country': only_country, 'show_newsletter': show_newsletter}) return render_to_response('contact/update_form.html', context)
def view(request): """View contact info.""" try: user_data = Contact.objects.get(user=request.user.id) except Contact.DoesNotExist: user_data = None show_newsletter = False newsletter = False if config_get_group('NEWSLETTER'): show_newsletter = True from satchmo.newsletter import is_subscribed if user_data: newsletter = is_subscribed(user_data) context = RequestContext(request, { 'user_data': user_data, 'show_newsletter' : show_newsletter, 'newsletter' : newsletter }) return render_to_response('contact/view_profile.html', context)
def register_handle_form(request, redirect=None): """ Handle all registration logic. This is broken out from "register" to allow easy overriding/hooks such as a combined login/register page. Returns: - Success flag - HTTPResponseRedirect (success) or form (fail) """ if request.method == 'POST': form = RegistrationForm(request.POST) if form.is_valid(): data = form.cleaned_data password = data['password'] email = data['email'] first_name = data['first_name'] last_name = data['last_name'] username = generate_id(first_name, last_name) verify = (config_value('SHOP', 'ACCOUNT_VERIFICATION') == 'EMAIL') if verify: from registration.models import RegistrationProfile user = RegistrationProfile.objects.create_inactive_user( username, password, email, send_email=True) else: user = User.objects.create_user(username, email, password) user.first_name = first_name user.last_name = last_name user.save() # If the user already has a contact, retrieve it. # Otherwise, create a new one. contact = Contact.from_request(request, create=False) if contact is None: contact = Contact() contact.user = user contact.first_name = first_name contact.last_name = last_name contact.email = email contact.role = 'Customer' contact.save() if config_get_group('NEWSLETTER'): from satchmo.newsletter import update_subscription if 'newsletter' not in data: subscribed = False else: subscribed = data['newsletter'] update_subscription(contact, subscribed) if not verify: user = authenticate(username=username, password=password) login(request, user) send_welcome_email(email, first_name, last_name) if not redirect: redirect = urlresolvers.reverse('registration_complete') return (True, http.HttpResponseRedirect(redirect)) else: initial_data = {} contact = Contact.from_request(request, create=False) if contact is not None: initial_data = { 'email': contact.email, 'first_name': contact.first_name, 'last_name': contact.last_name} if contact and config_get_group('NEWSLETTER'): from satchmo.newsletter import is_subscribed current_subscriber = is_subscribed(contact) else: current_subscriber = False initial_data['newsletter'] = current_subscriber form = RegistrationForm(initial=initial_data) return (False, form)
def register_handle_form(request, redirect=None): """ Handle all registration logic. This is broken out from "register" to allow easy overriding/hooks such as a combined login/register page. Returns: - Success flag - HTTPResponseRedirect (success) or form (fail) """ if request.method == 'POST': form = RegistrationForm(request.POST) if form.is_valid(): data = form.cleaned_data password = data['password'] email = data['email'] first_name = data['first_name'] last_name = data['last_name'] username = generate_id(first_name, last_name) verify = (config_value('SHOP', 'ACCOUNT_VERIFICATION') == 'EMAIL') if verify: from registration.models import RegistrationProfile user = RegistrationProfile.objects.create_inactive_user( username, password, email, send_email=True) else: user = User.objects.create_user(username, email, password) user.first_name = first_name user.last_name = last_name user.save() # If the user already has a contact, retrieve it. # Otherwise, create a new one. contact = Contact.from_request(request, create=False) if contact is None: contact = Contact() contact.user = user contact.first_name = first_name contact.last_name = last_name contact.email = email contact.role = 'Customer' contact.save() if config_get_group('NEWSLETTER'): from satchmo.newsletter import update_subscription if 'newsletter' not in data: subscribed = False else: subscribed = data['newsletter'] update_subscription(contact, subscribed) if not verify: user = authenticate(username=username, password=password) login(request, user) send_welcome_email(email, first_name, last_name) if not redirect: redirect = urlresolvers.reverse('registration_complete') return (True, http.HttpResponseRedirect(redirect)) else: initial_data = {} contact = Contact.from_request(request, create=False) if contact is not None: initial_data = { 'email': contact.email, 'first_name': contact.first_name, 'last_name': contact.last_name } if contact and config_get_group('NEWSLETTER'): from satchmo.newsletter import is_subscribed current_subscriber = is_subscribed(contact) else: current_subscriber = False initial_data['newsletter'] = current_subscriber form = RegistrationForm(initial=initial_data) return (False, form)