148 lines
5.0 KiB
Python
148 lines
5.0 KiB
Python
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,
|
|
}
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
|