def address_create_edit(request, id=None): """Create and edit new address book entries """ initial_entry = None initial_data = {} editing = False next_url = request.GET.get('next',None) try: contact = Contact.objects.from_request(request, create=False) except Contact.DoesNotExist: contact = None if id: initial_entry = get_object_or_404(AddressBook, pk=id) # Make sure we only edit entries associated with this contact if initial_entry.contact <> contact: return http.HttpResponseRedirect(urlresolvers.reverse('satchmo_account_info')) initial_data = model_to_dict(initial_entry, fields=[], exclude=['contact']) # This is a bit of a hack because we normally use jquery to populate the addressee initial_data['addressee_name'] = initial_data["addressee"] if request.method == 'POST': form = AddressBookForm(request.POST) if form.is_valid(): form.save(contact, address_entry=initial_entry) messages.success(request, _('Succcessfully saved addressbook changes.')) if next_url: return http.HttpResponseRedirect(next_url) else: return http.HttpResponseRedirect(urlresolvers.reverse('satchmo_account_info')) else: form = AddressBookForm(initial=initial_data) if initial_entry: editing = True context = RequestContext(request, {'form':form, 'editing':editing, 'entry':initial_entry, 'next':next_url}) return render_to_response('contact/address_form.html',context_instance=context)
def add_addressbook(request): init_data = {} contact = request.user.contact_set.all()[0] init_data['contact'] = contact.id shop = Config.objects.get_current() if request.method == "POST": new_data = request.POST.copy() form = AddressBookForm(data=new_data, shop=shop, contact=contact, initial=init_data) if form.is_valid(): addressbook = form.save() log.debug('-1- addressbook save success.') log.debug(form.errors) redirect_to = urlresolvers.reverse('satchmo_checkout-step1') return http.HttpResponseRedirect(redirect_to)