views.py 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. # -*- coding: utf-8 -*-
  2. from __future__ import unicode_literals
  3. from django.template import RequestContext
  4. from django.shortcuts import render_to_response, render
  5. from django.contrib.auth.decorators import login_required
  6. from django.conf import settings
  7. from forms import PersonMemberChangeForm, OrganizationMemberChangeForm
  8. @login_required
  9. def index(request):
  10. has_isp_feed = 'isp' in [k for k, _, _ in settings.FEEDS]
  11. return render(request, 'members/index.html',
  12. {'has_isp_feed': has_isp_feed})
  13. @login_required
  14. def detail(request):
  15. membership_info_url = settings.MEMBER_MEMBERSHIP_INFO_URL
  16. context={
  17. 'membership_info_url': membership_info_url,
  18. }
  19. if settings.MEMBER_CAN_EDIT_PROFILE:
  20. if request.user.type == "natural_person":
  21. form_cls = PersonMemberChangeForm
  22. else:
  23. form_cls = OrganizationMemberChangeForm
  24. if request.method == "POST":
  25. form = form_cls(data = request.POST, instance = request.user)
  26. if form.is_valid():
  27. form.save()
  28. else:
  29. form = form_cls(instance = request.user)
  30. context['form'] = form
  31. return render(request, 'members/detail.html', context)
  32. @login_required
  33. def subscriptions(request):
  34. subscriptions = request.user.get_active_subscriptions()
  35. old_subscriptions = request.user.get_inactive_subscriptions()
  36. return render(request, 'members/subscriptions.html',
  37. {'subscriptions': subscriptions,
  38. 'old_subscriptions': old_subscriptions})
  39. @login_required
  40. def invoices(request):
  41. balance = request.user.balance
  42. invoices = request.user.invoices.filter(validated=True).order_by('-date')
  43. payments = request.user.payments.filter().order_by('-date')
  44. return render_to_response('members/invoices.html',
  45. {'balance' : balance,
  46. 'invoices': invoices,
  47. 'payments': payments},
  48. context_instance=RequestContext(request))
  49. @login_required
  50. def contact(request):
  51. return render(request, 'members/contact.html')
  52. @login_required
  53. def activation_completed(request):
  54. label_template = settings.MEMBERSHIP_REFERENCE.format(user=request.user)
  55. context = {
  56. 'bank_transfer_label': label_template,
  57. 'dues': settings.MEMBER_DEFAULT_COTISATION
  58. }
  59. return render(request, 'members/registration/activation_complete.html',
  60. context)