from django.contrib.auth.decorators import login_required from django.core.urlresolvers import reverse from django.forms import model_to_dict from django.http import HttpResponseRedirect from django.shortcuts import render_to_response from django.template import RequestContext from .utils import send_change_of_address_email from . import forms from . import profile def profile_create(request, template='accounts/full_profile_form.html'): """ Allows user to create an account """ userform = forms.ProfileCreateForm( request.POST or None, initial={'country': 'US'}, prefix='form2') second_address_form = forms.ProfileSecondaryAddressForm( request.POST or None, initial={'country': 'US'}, prefix='form5') if request.method == 'POST': if userform.is_valid() and second_address_form.is_valid(): user = userform.save(request=request) second_address_form.save(user=user) return HttpResponseRedirect(reverse('profile_create_complete')) return render_to_response( template, {'userform': userform, 'second_address': second_address_form}, context_instance=RequestContext(request)) def profile_create_complete(request, template='accounts/profile_create_complete.html'): return render_to_response( template, context_instance=RequestContext(request)) @login_required def profile_edit(request, template='accounts/full_profile_form.html'): """ Allows a user to edit their profile """ user = request.user user_profile = profile.get_profile(user) secondary_address = profile.get_profile_secondary_address(user) primary_initial = model_to_dict(user) primary_initial.update(model_to_dict(user_profile)) secondary_initial = model_to_dict(secondary_address) userform = forms.ProfileUpdateForm( user, request.POST or None, initial=primary_initial, prefix='form2') second_address_form = forms.ProfileSecondaryAddressForm( request.POST or None, initial=secondary_initial, prefix='form5') if request.method == 'POST': if userform.is_valid() and second_address_form.is_valid(): user = userform.save() second_address_form.save(user=user) send_change_of_address_email( None, None, None, None, None, primary_initial, userform.cleaned_data) return render_to_response( template, {'userform': userform, 'second_address': second_address_form}, context_instance=RequestContext(request)) @login_required def view_orders_subs(request, template='accounts/orders_subs_overview.html'): return render_to_response( template, {}, context_instance=RequestContext(request))