Private
Public Access
1
0

fix and adding welcome emails to trial takers

This commit is contained in:
Sander Roosendaal
2020-01-06 20:32:57 +01:00
parent 7df562ab18
commit 8ae0c796a7
4 changed files with 87 additions and 22 deletions

View File

@@ -18,6 +18,7 @@ from iso8601 import ParseError
import numpy import numpy
import json import json
from json.decoder import JSONDecodeError
from rowsandall_app.settings import ( from rowsandall_app.settings import (
C2_CLIENT_ID, C2_REDIRECT_URI, C2_CLIENT_SECRET C2_CLIENT_ID, C2_REDIRECT_URI, C2_CLIENT_SECRET

View File

@@ -0,0 +1,26 @@
{% extends "emailbase.html" %}
{% block body %}
<p>Dear <strong>{{ first_name }}</strong>,</p>
<p>
Welcome on the trial for the Self-Coach plan.
</p>
<p>
As the developer of the Rowsandall.com site I am very interested to know what you think of Rowsandall.com. Especially, I'd like to understand how you started using the site, what you are looking for, and what you think could be improved.
</p>
<p>
The Self-Coach functionality allows you to create training plans and sessions for you and your training group. Feel free to contact me any time you need help.
</p>
<p>
I'd also love to hear a bit about your rowing background.
</p>
<p>
Thank you very much for your help and for supporting <a href="rowsandall.com">rowsandall.com</a>.
</p>
<p>
Best Regards, the Rowsandall Team
</p>
{% endblock %}

View File

@@ -0,0 +1,26 @@
{% extends "emailbase.html" %}
{% block body %}
<p>Dear <strong>{{ first_name }}</strong>,</p>
<p>
Welcome on the trial for the Pro plan.
</p>
<p>
As the developer of the Rowsandall.com site I am very interested to know what you think of Rowsandall.com. Especially, I'd like to understand how you started using the site, what you are looking for, and what you think could be improved.
</p>
<p>
The Self-Coach functionality allows you to create training plans and sessions for you and your training group. Feel free to contact me any time you need help.
</p>
<p>
I'd also love to hear a bit about your rowing background.
</p>
<p>
Thank you very much for your help and for supporting <a href="rowsandall.com">rowsandall.com</a>.
</p>
<p>
Best Regards, the Rowsandall Team
</p>
{% endblock %}

View File

@@ -13,23 +13,30 @@ def start_trial_view(request):
messages.error(request,'You do not qualify for a trial') messages.error(request,'You do not qualify for a trial')
url = '/rowers/paidplans' url = '/rowers/paidplans'
return HttpResponseRedirect(url) return HttpResponseRedirect(url)
r.protrialexpires = datetime.date.today()+datetime.timedelta(13) r.protrialexpires = datetime.date.today()+datetime.timedelta(13)
r.save() r.save()
url = reverse('workouts_view') url = reverse('workouts_view')
messages.info(request,'We have started your 14 day trial period') messages.info(request,'We have started your 14 day trial period')
subject2 = "User started Pro Trial" subject2 = "User started Pro Trial"
message2 = "User Started Pro Trial.\n" message2 = "User Started Pro Trial.\n"
message2 += request.user.email + "\n" message2 += request.user.email + "\n"
message2 += "User name: "+request.user.username message2 += "User name: "+request.user.username
send_mail(subject2, message2, send_mail(subject2, message2,
'Rowsandall Server <info@rowsandall.com>', 'Rowsandall Server <info@rowsandall.com>',
['roosendaalsander@gmail.com']) ['roosendaalsander@gmail.com'])
send_template_email('Rowsandall <info@rowsandall.com>',
[r.user.email],
'Welcome to the Rowsandall Pro Trial',
'protrialewelcome.html',
{'first_name':r.user.first_name,
'last_name':r.user.last_name})
return HttpResponseRedirect(url) return HttpResponseRedirect(url)
@login_required() @login_required()
@@ -40,7 +47,7 @@ def start_plantrial_view(request):
messages.error(request,'You do not qualify for a trial') messages.error(request,'You do not qualify for a trial')
url = '/rowers/paidplans' url = '/rowers/paidplans'
return HttpResponseRedirect(url) return HttpResponseRedirect(url)
r.plantrialexpires = datetime.date.today()+datetime.timedelta(13) r.plantrialexpires = datetime.date.today()+datetime.timedelta(13)
r.protrialexpires = datetime.date.today()+datetime.timedelta(13) r.protrialexpires = datetime.date.today()+datetime.timedelta(13)
r.save() r.save()
@@ -48,16 +55,23 @@ def start_plantrial_view(request):
url = reverse('workouts_view') url = reverse('workouts_view')
messages.info(request,'We have started your 14 day trial period') messages.info(request,'We have started your 14 day trial period')
subject2 = "User started Plan Trial" subject2 = "User started Plan Trial"
message2 = "User Started Plan Trial.\n" message2 = "User Started Plan Trial.\n"
message2 += request.user.email + "\n" message2 += request.user.email + "\n"
message2 += "User name: "+request.user.username message2 += "User name: "+request.user.username
send_mail(subject2, message2, send_mail(subject2, message2,
'Rowsandall Server <info@rowsandall.com>', 'Rowsandall Server <info@rowsandall.com>',
['roosendaalsander@gmail.com']) ['roosendaalsander@gmail.com'])
send_template_email('Rowsandall <info@rowsandall.com>',
[r.user.email],
'Welcome to the Rowsandall Self-Coach Trial',
'plantrialwelcome.html',
{'first_name':r.user.first_name,
'last_name':r.user.last_name})
return HttpResponseRedirect(url) return HttpResponseRedirect(url)
# Page where user can manage his favorite charts # Page where user can manage his favorite charts
@@ -79,7 +93,7 @@ def rower_favoritecharts_view(request,userid=0):
FavoriteChartFormSet = formset_factory(FavoriteForm,formset=BaseFavoriteFormSet,extra=0) FavoriteChartFormSet = formset_factory(FavoriteForm,formset=BaseFavoriteFormSet,extra=0)
if aantal==0: if aantal==0:
FavoriteChartFormSet = formset_factory(FavoriteForm,formset=BaseFavoriteFormSet,extra=1) FavoriteChartFormSet = formset_factory(FavoriteForm,formset=BaseFavoriteFormSet,extra=1)
if request.method == 'POST': if request.method == 'POST':
favorites_formset = FavoriteChartFormSet(request.POST) favorites_formset = FavoriteChartFormSet(request.POST)
@@ -115,7 +129,7 @@ def rower_favoritecharts_view(request,userid=0):
messages.error(request,message) messages.error(request,message)
else: else:
favorites_formset = FavoriteChartFormSet(initial=favorites_data) favorites_formset = FavoriteChartFormSet(initial=favorites_data)
context = { context = {
'favorites_formset':favorites_formset, 'favorites_formset':favorites_formset,
@@ -123,8 +137,8 @@ def rower_favoritecharts_view(request,userid=0):
'rower':r, 'rower':r,
} }
return render(request,'favoritecharts.html',context) return render(request,'favoritecharts.html',context)
# page where user sets his export settings # page where user sets his export settings
@@ -154,7 +168,7 @@ def rower_exportsettings_view(request,userid=0):
'name': 'Export Settings' 'name': 'Export Settings'
} }
] ]
return render(request, 'rower_exportsettings.html', return render(request, 'rower_exportsettings.html',
{'form':form, {'form':form,
'rower':r, 'rower':r,
@@ -367,7 +381,7 @@ def rower_prefs_view(request,userid=0,message=""):
'rower':r, 'rower':r,
}) })
# Revoke an app that you granted access through the API. # Revoke an app that you granted access through the API.
# this views is called when you press a button on the User edit page # this views is called when you press a button on the User edit page
# the button is only there when you have granted access to an app # the button is only there when you have granted access to an app
@@ -401,7 +415,7 @@ def rower_update_empower_view(
r = getrower(request.user) r = getrower(request.user)
except Rower.DoesNotExist: except Rower.DoesNotExist:
raise Http404("Rower doesn't exist") raise Http404("Rower doesn't exist")
if request.method == 'POST' and 'daterange' in request.POST: if request.method == 'POST' and 'daterange' in request.POST:
dateform = DateRangeForm(request.POST) dateform = DateRangeForm(request.POST)
if dateform.is_valid(): if dateform.is_valid():
@@ -416,7 +430,7 @@ def rower_update_empower_view(
'startdate':startdate, 'startdate':startdate,
'enddate':enddate, 'enddate':enddate,
}) })
if request.method == 'POST' and 'workouts' in request.POST: if request.method == 'POST' and 'workouts' in request.POST:
form = WorkoutMultipleCompareForm(request.POST) form = WorkoutMultipleCompareForm(request.POST)
@@ -424,7 +438,7 @@ def rower_update_empower_view(
cd = form.cleaned_data cd = form.cleaned_data
workouts = cd['workouts'] workouts = cd['workouts']
workoutdicts = [] workoutdicts = []
for w in workouts: for w in workouts:
if w.user != r: if w.user != r:
message = "You can only alter your own workouts" message = "You can only alter your own workouts"
@@ -440,7 +454,7 @@ def rower_update_empower_view(
messages.error(request,message) messages.error(request,message)
else: else:
workoutdict = { workoutdict = {
'id':w.id, 'id':w.id,
'boattype':w.boattype, 'boattype':w.boattype,
@@ -454,7 +468,7 @@ def rower_update_empower_view(
w.workoutsource = 'speedcoach2corrected' w.workoutsource = 'speedcoach2corrected'
w.save() w.save()
job = myqueue(queuelow,handle_update_empower, job = myqueue(queuelow,handle_update_empower,
request.user.email,workoutdicts, request.user.email,workoutdicts,
debug=False, debug=False,
@@ -479,7 +493,7 @@ def rower_update_empower_view(
workoutsource='speedcoach2', workoutsource='speedcoach2',
user=r, user=r,
).order_by("-date","-starttime") ).order_by("-date","-starttime")
form = WorkoutMultipleCompareForm() form = WorkoutMultipleCompareForm()
form.fields["workouts"].queryset = workouts form.fields["workouts"].queryset = workouts
# GET request = prepare form # GET request = prepare form
@@ -491,5 +505,3 @@ def rower_update_empower_view(
'form':form, 'form':form,
'rower':r 'rower':r
}) })