from __future__ import absolute_import from __future__ import division from __future__ import print_function from __future__ import unicode_literals from rowers.views.statements import * @login_required() def deactivate_user(request): pk = request.user.id user = User.objects.get(pk=pk) user_form = DeactivateUserForm(instance=user) if request.user.is_authenticated and request.user.id == user.id: if request.method == "POST": user_form = DeactivateUserForm(request.POST, instance=user) if user_form.is_valid(): if not user_form.cleaned_data['is_active']: r = Rower.objects.get(user=user) if r.paidplan is not None and r.paidplan.paymentprocessor == 'braintree': try: subscriptions = braintreestuff.find_subscriptions(r) for subscription in subscriptions: success, themessages,errormessages = braintreestuff.cancel_subscription(r,id) for message in themessages: messages.info(request,message) except ProcessorCustomerError: pass r.paidplan = None r.teamplanexpires = timezone.now() r.planexpires = timezone.now() r.clubsize = 0 r.rowerplan = 'basic' r.save() deactivate_user = user_form.save(commit=False) user.is_active = False user.save() deactivate_user.save() # url = reverse(auth_views.logout_then_login) url = '/logout/?next=/login' return HttpResponseRedirect(url) return render(request, "userprofile_deactivate.html", { "user_form": user_form, }) else: raise PermissionDenied @login_required() def user_gdpr_optin(request): r = getrower(request.user) r.gdproptin = False r.gdproptindate = None r.save() nexturl = request.GET.get('next','/rowers/list-workouts/') if r.gdproptin: return HttpResponseRedirect(nexturl) return render(request,'gdpr_optin.html',{ "next": nexturl }) @login_required() def user_gdpr_confirm(request): r = getrower(request.user) r.gdproptin = True r.gdproptindate = timezone.now() r.save() nexturl = request.GET.get('next','/rowers/list-workouts/') return HttpResponseRedirect(nexturl) @login_required() def remove_user(request): pk = request.user.id user = User.objects.get(pk=pk) user_form = DeleteUserForm(instance=user) if request.user.is_authenticated and request.user.id == user.id: if request.method == "POST": user_form = DeleteUserForm(request.POST,instance=user) if user_form.is_valid(): cd = user_form.cleaned_data name = user.first_name+' '+user.last_name email = user.email r = Rower.objects.get(user=user) if r.paidplan is not None and r.paidplan.paymentprocessor == 'braintree': try: subscriptions = braintreestuff.find_subscriptions(r) for subscription in subscriptions: success, themessages,errormessages = braintreestuff.cancel_subscription(r,id) for message in themessages: messages.info(request,message) except ProcessorCustomerError: pass if cd['delete_user']: user.delete() res = myqueue(queuehigh, handle_sendemail_userdeleted, name, email) url = '/logout/?next=/login' # url = reverse(auth_views.logout_then_login) return HttpResponseRedirect(url) return render(request, "userprofile_delete.html", { "user_form": user_form, }) else: raise PermissionDenied # Shows analysis page @login_required() def analysis_view(request,userid=0): r = getrequestrower(request,userid=userid) return render(request, "analysis.html", { 'active':'nav-analysis', 'rower':r, } ) # Shows laboratory page @login_required() def laboratory_view(request,userid=0): r = getrequestrower(request,userid=userid) return render(request, "laboratory.html", { 'active':'nav-analysis', 'rower':r, } )