views.py 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  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. 'handle_balance' : settings.HANDLE_BALANCE,
  47. 'invoices': invoices,
  48. 'payments': payments},
  49. context_instance=RequestContext(request))
  50. @login_required
  51. def contact(request):
  52. return render(request, 'members/contact.html')
  53. @login_required
  54. def activation_completed(request):
  55. label_template = settings.MEMBERSHIP_REFERENCE.format(user=request.user)
  56. context = {
  57. 'bank_transfer_label': label_template,
  58. 'dues': settings.DEFAULT_MEMBERSHIP_FEE
  59. }
  60. return render(request, 'members/registration/activation_complete.html',
  61. context)