def address_inline(request, prefix, form): """displays the invoice address with localized fields """ template_name = "lfs/customer/" + prefix + "_address_inline.html" country_code = get_country_code(request, prefix) if country_code != '': shop = lfs.core.utils.get_default_shop(request) countries = None if prefix == INVOICE_PREFIX: countries = shop.invoice_countries.all() else: countries = shop.shipping_countries.all() customer = customer_utils.get_or_create_customer(request) address_form_class = form_factory(country_code) if request.method == 'POST': if POSTAL_ADDRESS_L10N == True: address_form = address_form_class(prefix=prefix, data=request.POST,) else: address_form = PostalAddressForm(prefix=prefix, data=request.POST,) if countries is not None: address_form.fields["country"].choices = [(c.code.upper(), c.name) for c in countries] else: # If there are addresses intialize the form. initial = {} customer_selected_address = None if hasattr(customer, 'selected_' + prefix + '_address'): customer_selected_address = getattr(customer, 'selected_' + prefix + '_address') if customer_selected_address is not None: initial.update({ "line1": customer_selected_address.line1, "line2": customer_selected_address.line2, "city" : customer_selected_address.city, "state": customer_selected_address.state, "code": customer_selected_address.zip_code, "country": customer_selected_address.country.code.upper(), }) address_form = address_form_class(prefix=prefix, initial=initial) else: address_form = address_form_class(prefix=prefix) address_form.fields["country"].initial = country_code if countries is not None: address_form.fields["country"].choices = [(c.code.upper(), c.name) for c in countries] # Removes fields from address form if requested via settings. for i in range(1, 6): address_settings = getattr(settings, "POSTAL_ADDRESS_LINE%s" % i, None) try: if address_settings and address_settings[2] == False: del address_form.fields["line%s" % i] except IndexError: pass # if request via ajax don't display validity errors if request.is_ajax(): address_form._errors = {} return render_to_string(template_name, RequestContext(request, { "address_form": address_form, "form": form, "settings": settings, }))
def address_inline(request, prefix, form): """displays the invoice address with localized fields """ template_name = "lfs/customer/" + prefix + "_address_inline.html" country_code = get_country_code(request, prefix) if country_code != '': shop = lfs.core.utils.get_default_shop(request) countries = None if prefix == INVOICE_PREFIX: countries = shop.invoice_countries.all() else: countries = shop.shipping_countries.all() customer = customer_utils.get_or_create_customer(request) address_form_class = form_factory(country_code) if request.method == 'POST': if POSTAL_ADDRESS_L10N == True: address_form = address_form_class(prefix=prefix, data=request.POST,) else: address_form = PostalAddressForm(prefix=prefix, data=request.POST,) if countries is not None: address_form.fields["country"].choices = [(c.code.upper(), c.name) for c in countries] save_address(request, customer, prefix) else: # If there are addresses intialize the form. initial = {} customer_selected_address = None if hasattr(customer, 'selected_' + prefix + '_address'): customer_selected_address = getattr(customer, 'selected_' + prefix + '_address') if customer_selected_address is not None: initial.update({ "line1": customer_selected_address.company_name, "line2": customer_selected_address.street, "city": customer_selected_address.city, "state": customer_selected_address.state, "code": customer_selected_address.zip_code, "country": customer_selected_address.country.code.upper(), }) address_form = address_form_class(prefix=prefix, initial=initial) else: address_form = address_form_class(prefix=prefix) address_form.fields["country"].initial = country_code if countries is not None: address_form.fields["country"].choices = [(c.code.upper(), c.name) for c in countries] # Removes fields from address form if requested via settings. for i in range(1, 6): address_settings = getattr(settings, "POSTAL_ADDRESS_LINE%s" % i, None) try: if address_settings and address_settings[2] == False: del address_form.fields["line%s" % i] except IndexError: pass # if request via ajax don't display validity errors if request.is_ajax(): address_form._errors = {} return render_to_string(template_name, RequestContext(request, { "address_form": address_form, "form": form, }))
def test_postal(request): countries = [] for k,v in country_map.items(): countries.append(k) result = "" if request.method == "POST": form = PostalAddressForm(request.POST, prefix=request.POST.get('prefix', '')) if form.is_valid(): for k,v in form.cleaned_data.items(): result = result + k + " -> " + v + "<br/>" context = RequestContext(request, locals()) return render_to_response('postal/test.html', context) else: form = PostalAddressForm() # An unbound form context = RequestContext(request, locals()) return render_to_response('postal/test.html', context)