views.py 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. from django.contrib.auth.decorators import login_required
  2. from django.core.urlresolvers import reverse
  3. from django.forms import model_to_dict
  4. from django.http import HttpResponseRedirect
  5. from django.shortcuts import render_to_response
  6. from django.template import RequestContext
  7. from .utils import send_change_of_address_email
  8. from . import forms
  9. from . import profile
  10. def profile_create(request, template='accounts/full_profile_form.html'):
  11. """ Allows user to create an account """
  12. userform = forms.ProfileCreateForm(
  13. request.POST or None, initial={'country': 'US'}, prefix='form2')
  14. second_address_form = forms.ProfileSecondaryAddressForm(
  15. request.POST or None, initial={'country': 'US'}, prefix='form5')
  16. if request.method == 'POST':
  17. if userform.is_valid() and second_address_form.is_valid():
  18. user = userform.save(request=request)
  19. second_address_form.save(user=user)
  20. return HttpResponseRedirect(reverse('profile_create_complete'))
  21. return render_to_response(
  22. template, {'userform': userform,
  23. 'second_address': second_address_form},
  24. context_instance=RequestContext(request))
  25. def profile_create_complete(request,
  26. template='accounts/profile_create_complete.html'):
  27. return render_to_response(
  28. template,
  29. context_instance=RequestContext(request))
  30. @login_required
  31. def profile_edit(request, template='accounts/full_profile_form.html'):
  32. """ Allows a user to edit their profile """
  33. user = request.user
  34. user_profile = profile.get_profile(user)
  35. secondary_address = profile.get_profile_secondary_address(user)
  36. primary_initial = model_to_dict(user)
  37. primary_initial.update(model_to_dict(user_profile))
  38. secondary_initial = model_to_dict(secondary_address)
  39. userform = forms.ProfileUpdateForm(
  40. user, request.POST or None, initial=primary_initial, prefix='form2')
  41. second_address_form = forms.ProfileSecondaryAddressForm(
  42. request.POST or None, initial=secondary_initial, prefix='form5')
  43. if request.method == 'POST':
  44. if userform.is_valid() and second_address_form.is_valid():
  45. user = userform.save()
  46. second_address_form.save(user=user)
  47. send_change_of_address_email(
  48. None,
  49. None,
  50. None,
  51. None,
  52. None,
  53. primary_initial,
  54. userform.cleaned_data)
  55. return render_to_response(
  56. template, {'userform': userform,
  57. 'second_address': second_address_form},
  58. context_instance=RequestContext(request))
  59. @login_required
  60. def view_orders_subs(request, template='accounts/orders_subs_overview.html'):
  61. return render_to_response(
  62. template, {},
  63. context_instance=RequestContext(request))