Private
Public Access
1
0

Merge branch 'release/v10.87'

This commit is contained in:
Sander Roosendaal
2020-01-08 22:47:48 +01:00
40 changed files with 855 additions and 645 deletions
+8
View File
@@ -196,3 +196,11 @@ def alert_get_stats(alert,nperiod=0):
} }
# run alert report # run alert report
# check alert permission
def checkalertowner(alert,user):
if alert.manager == user:
return True
if alert.rower.user == user:
return True
return False
+21 -10
View File
@@ -1081,7 +1081,8 @@ def save_workout_database(f2, r, dosmooth=True, workouttype='rower',
makeprivate=False, makeprivate=False,
oarlength=2.89, inboard=0.88, oarlength=2.89, inboard=0.88,
forceunit='lbs', forceunit='lbs',
consistencychecks=False): consistencychecks=False,
impeller=False):
message = None message = None
powerperc = 100 * np.array([r.pw_ut2, powerperc = 100 * np.array([r.pw_ut2,
@@ -1289,7 +1290,8 @@ def save_workout_database(f2, r, dosmooth=True, workouttype='rower',
startdatetime=workoutstartdatetime, startdatetime=workoutstartdatetime,
inboard=inboard, oarlength=oarlength, inboard=inboard, oarlength=oarlength,
timezone=timezone_str, timezone=timezone_str,
privacy=privacy) privacy=privacy,
impeller=impeller)
try: try:
w.save() w.save()
except ValidationError: except ValidationError:
@@ -1421,24 +1423,30 @@ def handle_nonpainsled(f2, fileformat, summary=''):
oarlength = 2.89 oarlength = 2.89
inboard = 0.88 inboard = 0.88
hasrecognized = False hasrecognized = False
impeller = False
row,hasrecognized,summary,fileformat = parsenonpainsled(fileformat,f2,summary) row,hasrecognized,summary,fileformat = parsenonpainsled(fileformat,f2,summary)
# Handle c2log # Handle c2log
if (fileformat == 'c2log' or fileformat == 'rowprolog'): if (fileformat == 'c2log' or fileformat == 'rowprolog'):
return (0,'',0,0,'') return (0,'',0,0,'',impeller)
if not hasrecognized: if not hasrecognized:
return (0,'',0,0,'') return (0,'',0,0,'',impeller)
f_to_be_deleted = f2 f_to_be_deleted = f2
# should delete file # should delete file
f2 = f2[:-4] + 'o.csv' f2 = f2[:-4] + 'o.csv'
try:
row2 = rrdata(df = row.df) row2 = rrdata(df = row.df)
if 'speedcoach2' in fileformat:
# impeller consistency
impellerdata, consistent, ratio = row.impellerconsistent(threshold=0.3)
if impellerdata and consistent:
impeller = True
if impellerdata and not consistent:
row2.use_gpsdata()
row2.write_csv(f2, gzip=True) row2.write_csv(f2, gzip=True)
except:
return (0,'',0,0,'')
# os.remove(f2) # os.remove(f2)
try: try:
@@ -1449,7 +1457,7 @@ def handle_nonpainsled(f2, fileformat, summary=''):
except: except:
pass pass
return (f2, summary, oarlength, inboard, fileformat) return (f2, summary, oarlength, inboard, fileformat, impeller)
# Create new workout from file and store it in the database # Create new workout from file and store it in the database
# This routine should be used everywhere in views.py and mailprocessing.py # This routine should be used everywhere in views.py and mailprocessing.py
@@ -1464,6 +1472,7 @@ def new_workout_from_file(r, f2,
makeprivate=False, makeprivate=False,
notes=''): notes=''):
message = None message = None
impeller = False
try: try:
fileformat = get_file_type(f2) fileformat = get_file_type(f2)
except (IOError,UnicodeDecodeError): except (IOError,UnicodeDecodeError):
@@ -1476,6 +1485,7 @@ def new_workout_from_file(r, f2,
inboard = 0.88 inboard = 0.88
if len(fileformat) == 3 and fileformat[0] == 'zip': if len(fileformat) == 3 and fileformat[0] == 'zip':
f_to_be_deleted = f2 f_to_be_deleted = f2
impeller = False
workoutsbox = Mailbox.objects.filter(name='workouts')[0] workoutsbox = Mailbox.objects.filter(name='workouts')[0]
msg = Message(mailbox=workoutsbox, msg = Message(mailbox=workoutsbox,
from_header=r.user.email, from_header=r.user.email,
@@ -1543,7 +1553,7 @@ def new_workout_from_file(r, f2,
# handle non-Painsled by converting it to painsled compatible CSV # handle non-Painsled by converting it to painsled compatible CSV
if (fileformat != 'csv'): if (fileformat != 'csv'):
f2, summary, oarlength, inboard, fileformat = handle_nonpainsled( f2, summary, oarlength, inboard, fileformat, impeller = handle_nonpainsled(
f2, f2,
fileformat, fileformat,
summary=summary summary=summary
@@ -1571,7 +1581,8 @@ def new_workout_from_file(r, f2,
summary=summary, summary=summary,
inboard=inboard, oarlength=oarlength, inboard=inboard, oarlength=oarlength,
title=title, title=title,
forceunit='N' forceunit='N',
impeller=impeller,
) )
return (id, message, f2) return (id, message, f2)
+6
View File
@@ -31,6 +31,12 @@ formaxlabels = axlabels.copy()
formaxlabels.pop('None') formaxlabels.pop('None')
parchoices = list(sorted(formaxlabels.items(), key = lambda x:x[1])) parchoices = list(sorted(formaxlabels.items(), key = lambda x:x[1]))
class SurveyForm(forms.Form):
surveydone = forms.ChoiceField(
required=True,
choices=(('YES','YES'),('NO','NO')),
label='Will you take a 2 minute survey to help improve rowsandall?',
widget = forms.RadioSelect)
class FlexibleDecimalField(forms.DecimalField): class FlexibleDecimalField(forms.DecimalField):
+3 -2
View File
@@ -86,6 +86,7 @@ def rdata(file, rower=rrower()):
def make_new_workout_from_email(rower, datafile, name, cntr=0,testing=False): def make_new_workout_from_email(rower, datafile, name, cntr=0,testing=False):
""" This one is used in processemail """ """ This one is used in processemail """
workouttype = 'rower' workouttype = 'rower'
impeller = False
try: try:
datafilename = datafile.name datafilename = datafile.name
@@ -139,7 +140,7 @@ def make_new_workout_from_email(rower, datafile, name, cntr=0,testing=False):
if fileformat == 'att': if fileformat == 'att':
return 0 return 0
if fileformat != 'csv': if fileformat != 'csv':
filename_mediadir, summary, oarlength, inboard,fileformat = dataprep.handle_nonpainsled( filename_mediadir, summary, oarlength, inboard,fileformat,impeller = dataprep.handle_nonpainsled(
'media/' + datafilename, fileformat, summary) 'media/' + datafilename, fileformat, summary)
if not filename_mediadir: if not filename_mediadir:
return 0 return 0
@@ -181,7 +182,7 @@ def make_new_workout_from_email(rower, datafile, name, cntr=0,testing=False):
oarlength=oarlength, oarlength=oarlength,
title=name, title=name,
workoutsource=fileformat, workoutsource=fileformat,
notes='' notes='',impeller=impeller,
) )
+20
View File
@@ -98,8 +98,28 @@ allowed_paths = [
'/rowers/me/gdpr-optin-confirm' '/rowers/me/gdpr-optin-confirm'
'/rowers/exportallworkouts/', '/rowers/exportallworkouts/',
'/rowers/exportallworkouts', '/rowers/exportallworkouts',
'/rowers/survey/'
] ]
class SurveyMiddleWare(object):
def __init__(self, get_response):
self.get_response = get_response
def __call__(self, request):
if request.user.is_authenticated and request.path not in allowed_paths:
r = getrower(request.user)
nexturl = request.path
if 'survey' in nexturl:
nexturl = '/rowers/list-workouts'
if not r.surveydone:
return redirect(
'/rowers/survey/?next=%s' % nexturl
)
response = self.get_response(request)
return response
class GDPRMiddleWare(object): class GDPRMiddleWare(object):
def __init__(self, get_response): def __init__(self, get_response):
self.get_response = get_response self.get_response = get_response
+3
View File
@@ -730,6 +730,8 @@ class Rower(models.Model):
# Privacy Data # Privacy Data
gdproptin = models.BooleanField(default=False) gdproptin = models.BooleanField(default=False)
gdproptindate = models.DateTimeField(blank=True,null=True) gdproptindate = models.DateTimeField(blank=True,null=True)
surveydone = models.BooleanField(default=False)
surveydonedate = models.DateTimeField(blank=True,null=True)
# Heart Rate Zone data # Heart Rate Zone data
@@ -2734,6 +2736,7 @@ class Workout(models.Model):
choices=privacychoices) choices=privacychoices)
rankingpiece = models.BooleanField(default=False,verbose_name='Ranking Piece') rankingpiece = models.BooleanField(default=False,verbose_name='Ranking Piece')
duplicate = models.BooleanField(default=False,verbose_name='Duplicate Workout') duplicate = models.BooleanField(default=False,verbose_name='Duplicate Workout')
impeller = models.BooleanField(default=False,verbose_name='Impeller')
def save(self, *args, **kwargs): def save(self, *args, **kwargs):
user = self.user user = self.user
+16 -1
View File
@@ -287,10 +287,25 @@
<i class="fas fa-calculator-alt fa-fw"></i>&nbsp;OTW Power <i class="fas fa-calculator-alt fa-fw"></i>&nbsp;OTW Power
</a> </a>
</li> </li>
{% if 'speedcoach2' in workout.workoutsource %}
<li id="advanced-usegps">
<a href="/rowers/workout/{{ workout.id|encode }}/otwusegps/">
<i class="fas fa-satellite"></i>
{% if workout.impeller %}&nbsp;{% else %}&bull;&nbsp;{% endif %}Use GPS data
</a>
</li>
<li id="advanced-useimpeller">
<a href="/rowers/workout/{{ workout.id|encode }}/otwuseimpeller/">
<i class="fas fa-wind-turbine fa-rotate-180"></i>
{% if workout.impeller %}&bull;&nbsp;{% else %}&nbsp;{% endif %}Use Impeller data
</a>
</li>
{% endif %}
{% endif %} {% endif %}
<li id="advanced-instroke"> <li id="advanced-instroke">
<a href="/rowers/workout/{{ workout.id|encode }}/instroke/"> <a href="/rowers/workout/{{ workout.id|encode }}/instroke/">
<i class="fas fa-search-plus fa-fw"></i>&nbsp;In-Stroke Metrics <i class="fas fa-search-plus fa-fw"></i>
In-Stroke Metrics
</a> </a>
</li> </li>
<li id="advanced-recalcsummary"> <li id="advanced-recalcsummary">
+47
View File
@@ -0,0 +1,47 @@
{% extends "newbase.html" %}
{% load staticfiles %}
{% load rowerfilters %}
{% block title %}File loading{% endblock %}
{% block meta %}
<script type='text/javascript'
src='https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js'>
</script>
<script type='text/javascript'
src='https://ajax.aspnetcdn.com/ajax/jquery.validate/1.14.0/jquery.validate.min.js'>
</script>
<script>
$(document).ready(function(){
var frm = $("#surveyform")
frm.submit(function(e) {
// e.preventDefault()
const formData = new FormData(e.target);
console.log(formData.get('surveydone'));
if (formData.get('surveydone')=='YES') {
var a = window.open('https://wp.me/P8g86e-Bs', "survey");
a.focus();
}
});
});
</script>
{% endblock %}
{% block main %}
<ul class="main-content">
<li class="grid_4">
<form enctype="multipart/form-data" method="post" id="surveyform">
{% csrf_token %}
<table>
{{ form.as_table }}
</table>
<input type="submit" name="submit" value="SUBMIT">
</li>
</ul>
{% endblock %}
{% block sidebar %}
{% include 'menu_profile.html' %}
{% endblock %}
+48
View File
@@ -0,0 +1,48 @@
{% extends "newbase.html" %}
{% load staticfiles %}
{% load rowerfilters %}
{% block title %}Rowsandall {% endblock %}
{% block meta %}
<script type='text/javascript'
src='https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js'>
</script>
<script>
$(document).ready(function(){
var frm = $("#surveyform")
frm.submit(function(e) {
e.preventDefault()
const formData = new FormData(e.target);
console.log(formData);
});
});
</script>
{% endblock %}
{% block main %}
<ul class="main-content">
<li>
<form enctype="multipart/form-data" method="post" id="surveyform">
{% csrf_token %}
<table>
{{ form.as_table }}
</table>
<input type="submit" name="submit" value="SUBMIT">
</li>
</ul>
{% endblock %}
{% block sidebar %}
{% include 'menu_profile.html' %}
{% endblock %}
+4 -5
View File
@@ -20,7 +20,7 @@ class VirtualEventViewTest(TestCase):
self.r = Rower.objects.create(user=self.u, self.r = Rower.objects.create(user=self.u,
birthdate=faker.profile()['birthdate'], birthdate=faker.profile()['birthdate'],
gdproptin=True,gdproptindate=timezone.now(), gdproptin=True,surveydone=True,gdproptindate=timezone.now(),
rowerplan='coach') rowerplan='coach')
self.c = Client() self.c = Client()
@@ -36,7 +36,7 @@ class VirtualEventViewTest(TestCase):
self.rpiet = Rower.objects.create(user=self.upiet, self.rpiet = Rower.objects.create(user=self.upiet,
birthdate=faker.profile()['birthdate'], birthdate=faker.profile()['birthdate'],
gdproptin=True,gdproptindate=timezone.now(), gdproptin=True,surveydone=True,gdproptindate=timezone.now(),
rowerplan='basic') rowerplan='basic')
self.piet_workouts = WorkoutFactory.create_batch(5, user=self.rpiet) self.piet_workouts = WorkoutFactory.create_batch(5, user=self.rpiet)
@@ -49,7 +49,7 @@ class VirtualEventViewTest(TestCase):
self.rklaas = Rower.objects.create(user=self.uklaas, self.rklaas = Rower.objects.create(user=self.uklaas,
birthdate=faker.profile()['birthdate'], birthdate=faker.profile()['birthdate'],
gdproptin=True,gdproptindate=timezone.now(), gdproptin=True,surveydone=True,gdproptindate=timezone.now(),
rowerplan='basic') rowerplan='basic')
self.klaas_workouts = WorkoutFactory.create_batch(5, user=self.rklaas) self.klaas_workouts = WorkoutFactory.create_batch(5, user=self.rklaas)
@@ -62,7 +62,7 @@ class VirtualEventViewTest(TestCase):
self.rhenk = Rower.objects.create(user=self.uhenk, self.rhenk = Rower.objects.create(user=self.uhenk,
birthdate=faker.profile()['birthdate'], birthdate=faker.profile()['birthdate'],
gdproptin=True,gdproptindate=timezone.now(), gdproptin=True,surveydone=True,gdproptindate=timezone.now(),
rowerplan='basic') rowerplan='basic')
self.henk_workouts = WorkoutFactory.create_batch(5, user=self.rhenk) self.henk_workouts = WorkoutFactory.create_batch(5, user=self.rhenk)
@@ -851,4 +851,3 @@ class VirtualEventViewTest(TestCase):
# standalone # standalone
# calculate course adherence # calculate course adherence
# other background jobs # other background jobs
+14 -15
View File
@@ -17,7 +17,7 @@ class WorkoutCompareTest(TestCase):
self.r = Rower.objects.create(user=self.u, self.r = Rower.objects.create(user=self.u,
birthdate=faker.profile()['birthdate'], birthdate=faker.profile()['birthdate'],
gdproptin=True, gdproptin=True,surveydone=True,
gdproptindate=timezone.now(), gdproptindate=timezone.now(),
rowerplan='coach') rowerplan='coach')
@@ -81,7 +81,7 @@ class BoxPlotTest(TestCase):
self.r = Rower.objects.create(user=self.u, self.r = Rower.objects.create(user=self.u,
birthdate=faker.profile()['birthdate'], birthdate=faker.profile()['birthdate'],
gdproptin=True, gdproptin=True,surveydone=True,
gdproptindate=timezone.now(), gdproptindate=timezone.now(),
rowerplan='coach') rowerplan='coach')
@@ -179,7 +179,7 @@ class ListWorkoutTest(TestCase):
self.r = Rower.objects.create(user=self.u, self.r = Rower.objects.create(user=self.u,
birthdate=faker.profile()['birthdate'], birthdate=faker.profile()['birthdate'],
gdproptin=True, gdproptin=True,surveydone=True,
gdproptindate=timezone.now(), gdproptindate=timezone.now(),
rowerplan='coach') rowerplan='coach')
@@ -230,7 +230,7 @@ class PlannedSessionTests(TestCase):
self.r = Rower.objects.create(user=self.u, self.r = Rower.objects.create(user=self.u,
birthdate=faker.profile()['birthdate'], birthdate=faker.profile()['birthdate'],
gdproptin=True, gdproptin=True,surveydone=True,
gdproptindate=timezone.now(), gdproptindate=timezone.now(),
rowerplan='coach') rowerplan='coach')
@@ -281,7 +281,7 @@ class ForcecurveTest(TestCase):
self.r = Rower.objects.create(user=self.u, self.r = Rower.objects.create(user=self.u,
birthdate=faker.profile()['birthdate'], birthdate=faker.profile()['birthdate'],
gdproptin=True, gdproptin=True,surveydone=True,
gdproptindate=timezone.now(), gdproptindate=timezone.now(),
rowerplan='coach') rowerplan='coach')
@@ -317,7 +317,7 @@ class CumStatsTest(TestCase):
self.r = Rower.objects.create(user=self.u, self.r = Rower.objects.create(user=self.u,
birthdate=faker.profile()['birthdate'], birthdate=faker.profile()['birthdate'],
gdproptin=True, gdproptin=True,surveydone=True,
gdproptindate=timezone.now(), gdproptindate=timezone.now(),
rowerplan='coach') rowerplan='coach')
@@ -354,7 +354,7 @@ class CumFlexTest(TestCase):
self.r = Rower.objects.create(user=self.u, self.r = Rower.objects.create(user=self.u,
birthdate=faker.profile()['birthdate'], birthdate=faker.profile()['birthdate'],
gdproptin=True, gdproptin=True,surveydone=True,
gdproptindate=timezone.now(), gdproptindate=timezone.now(),
rowerplan='coach') rowerplan='coach')
@@ -459,7 +459,7 @@ class MultiFlexTest(TestCase):
self.r = Rower.objects.create(user=self.u, self.r = Rower.objects.create(user=self.u,
birthdate=faker.profile()['birthdate'], birthdate=faker.profile()['birthdate'],
gdproptin=True, gdproptin=True,surveydone=True,
gdproptindate=timezone.now(), gdproptindate=timezone.now(),
rowerplan='coach') rowerplan='coach')
@@ -561,7 +561,7 @@ class HistoTest(TestCase):
self.r = Rower.objects.create(user=self.u, self.r = Rower.objects.create(user=self.u,
birthdate=faker.profile()['birthdate'], birthdate=faker.profile()['birthdate'],
gdproptin=True, gdproptin=True,surveydone=True,
gdproptindate=timezone.now(), gdproptindate=timezone.now(),
rowerplan='coach') rowerplan='coach')
@@ -650,7 +650,7 @@ class WorkoutCompareTestNew(TestCase):
self.r = Rower.objects.create(user=self.u, self.r = Rower.objects.create(user=self.u,
birthdate=faker.profile()['birthdate'], birthdate=faker.profile()['birthdate'],
gdproptin=True, gdproptin=True,surveydone=True,
gdproptindate=timezone.now(), gdproptindate=timezone.now(),
rowerplan='coach') rowerplan='coach')
@@ -739,7 +739,7 @@ class WorkoutBoxPlotTestNew(TestCase):
self.r = Rower.objects.create(user=self.u, self.r = Rower.objects.create(user=self.u,
birthdate=faker.profile()['birthdate'], birthdate=faker.profile()['birthdate'],
gdproptin=True, gdproptin=True,surveydone=True,
gdproptindate=timezone.now(), gdproptindate=timezone.now(),
rowerplan='coach') rowerplan='coach')
@@ -827,7 +827,7 @@ class WorkoutHistoTestNew(TestCase):
self.r = Rower.objects.create(user=self.u, self.r = Rower.objects.create(user=self.u,
birthdate=faker.profile()['birthdate'], birthdate=faker.profile()['birthdate'],
gdproptin=True, gdproptin=True,surveydone=True,
gdproptindate=timezone.now(), gdproptindate=timezone.now(),
rowerplan='coach') rowerplan='coach')
@@ -915,7 +915,7 @@ class WorkoutFlexallTestNew(TestCase):
self.r = Rower.objects.create(user=self.u, self.r = Rower.objects.create(user=self.u,
birthdate=faker.profile()['birthdate'], birthdate=faker.profile()['birthdate'],
gdproptin=True, gdproptin=True,surveydone=True,
gdproptindate=timezone.now(), gdproptindate=timezone.now(),
rowerplan='coach') rowerplan='coach')
@@ -1003,7 +1003,7 @@ class WorkoutStatsTestNew(TestCase):
self.r = Rower.objects.create(user=self.u, self.r = Rower.objects.create(user=self.u,
birthdate=faker.profile()['birthdate'], birthdate=faker.profile()['birthdate'],
gdproptin=True, gdproptin=True,surveydone=True,
gdproptindate=timezone.now(), gdproptindate=timezone.now(),
rowerplan='coach') rowerplan='coach')
@@ -1134,4 +1134,3 @@ class WorkoutStatsTestNew(TestCase):
response = self.c.post('/rowers/user-analysis-select/',form_data) response = self.c.post('/rowers/user-analysis-select/',form_data)
self.assertEqual(response.status_code,200) self.assertEqual(response.status_code,200)
+1 -2
View File
@@ -36,7 +36,7 @@ class WorkoutViewTest(TestCase):
self.r = Rower.objects.create(user=self.u, self.r = Rower.objects.create(user=self.u,
birthdate=faker.profile()['birthdate'], birthdate=faker.profile()['birthdate'],
gdproptin=True, gdproptin=True,surveydone=True,
gdproptindate=timezone.now(), gdproptindate=timezone.now(),
rowerplan='coach') rowerplan='coach')
@@ -611,4 +611,3 @@ class WorkoutViewTest(TestCase):
self.assertRedirects(response, self.assertRedirects(response,
expected_url=expected_url, expected_url=expected_url,
status_code=302,target_status_code=200) status_code=302,target_status_code=200)
+1 -2
View File
@@ -18,7 +18,7 @@ class SimpleViewTest(TestCase):
self.r = Rower.objects.create(user=self.u, self.r = Rower.objects.create(user=self.u,
birthdate=faker.profile()['birthdate'], birthdate=faker.profile()['birthdate'],
gdproptin=True, gdproptin=True,surveydone=True,
gdproptindate=timezone.now(), gdproptindate=timezone.now(),
rowerplan='basic') rowerplan='basic')
@@ -59,4 +59,3 @@ class SimpleViewTest(TestCase):
self.assertRedirects(response, self.assertRedirects(response,
expected_url='/rowers/list-workouts/', expected_url='/rowers/list-workouts/',
status_code=302,target_status_code=200) status_code=302,target_status_code=200)
+1 -2
View File
@@ -11,7 +11,7 @@ class CoursesTest(TestCase):
self.u = User.objects.create_user('john', self.u = User.objects.create_user('john',
'sander@ds.ds', 'sander@ds.ds',
'koeinsloot') 'koeinsloot')
self.r = Rower.objects.create(user=self.u,gdproptin=True, self.r = Rower.objects.create(user=self.u,gdproptin=True,surveydone=True,
gdproptindate=timezone.now(), gdproptindate=timezone.now(),
rowerplan='coach', rowerplan='coach',
) )
@@ -78,4 +78,3 @@ class CoursesTest(TestCase):
response.get('Content-Disposition'), response.get('Content-Disposition'),
'attachment; filename="course_1.kml"' 'attachment; filename="course_1.kml"'
) )
+2 -4
View File
@@ -21,7 +21,7 @@ class OTWCPChartTest(TestCase):
self.r = Rower.objects.create(user=self.u, self.r = Rower.objects.create(user=self.u,
birthdate=faker.profile()['birthdate'], birthdate=faker.profile()['birthdate'],
gdproptin=True,sex='male', gdproptin=True,surveydone=True,sex='male',
weightcategory='hwt', weightcategory='hwt',
gdproptindate=timezone.now(), gdproptindate=timezone.now(),
rowerplan='coach') rowerplan='coach')
@@ -113,7 +113,7 @@ class CPChartTest(TestCase):
self.r = Rower.objects.create(user=self.u, self.r = Rower.objects.create(user=self.u,
birthdate=faker.profile()['birthdate'], birthdate=faker.profile()['birthdate'],
gdproptin=True,sex='male', gdproptin=True,surveydone=True,sex='male',
weightcategory='hwt', weightcategory='hwt',
gdproptindate=timezone.now(), gdproptindate=timezone.now(),
rowerplan='coach') rowerplan='coach')
@@ -322,5 +322,3 @@ class CPChartTest(TestCase):
response = self.c.get(url) response = self.c.get(url)
self.assertEqual(response.status_code, 200) self.assertEqual(response.status_code, 200)
+14 -15
View File
@@ -12,14 +12,14 @@ class EmailUpload(TestCase):
u = User.objects.create_user('john', u = User.objects.create_user('john',
'sander@ds.ds', 'sander@ds.ds',
'koeinsloot') 'koeinsloot')
r = Rower.objects.create(user=u,gdproptin=True, r = Rower.objects.create(user=u,gdproptin=True,surveydone=True,
gdproptindate=timezone.now() gdproptindate=timezone.now()
) )
self.theadmin = UserFactory(is_staff=True) self.theadmin = UserFactory(is_staff=True)
self.rtheadmin = Rower.objects.create(user=self.theadmin, self.rtheadmin = Rower.objects.create(user=self.theadmin,
birthdate = faker.profile()['birthdate'], birthdate = faker.profile()['birthdate'],
gdproptin=True, gdproptin=True,surveydone=True,
gdproptindate=timezone.now(), gdproptindate=timezone.now(),
rowerplan='coach') rowerplan='coach')
@@ -73,14 +73,14 @@ class ZipEmailUpload(TestCase):
u = User.objects.create_user('john', u = User.objects.create_user('john',
'sander@ds.ds', 'sander@ds.ds',
'koeinsloot') 'koeinsloot')
r = Rower.objects.create(user=u,gdproptin=True, r = Rower.objects.create(user=u,gdproptin=True,surveydone=True,
gdproptindate=timezone.now() gdproptindate=timezone.now()
) )
self.theadmin = UserFactory(is_staff=True) self.theadmin = UserFactory(is_staff=True)
self.rtheadmin = Rower.objects.create(user=self.theadmin, self.rtheadmin = Rower.objects.create(user=self.theadmin,
birthdate = faker.profile()['birthdate'], birthdate = faker.profile()['birthdate'],
gdproptin=True, gdproptin=True,surveydone=True,
gdproptindate=timezone.now(), gdproptindate=timezone.now(),
rowerplan='coach') rowerplan='coach')
@@ -135,14 +135,14 @@ class EmailUniCodeUpload(TestCase):
u = User.objects.create_user('john', u = User.objects.create_user('john',
'sander@ds.ds', 'sander@ds.ds',
'koeinsloot') 'koeinsloot')
r = Rower.objects.create(user=u,gdproptin=True, r = Rower.objects.create(user=u,gdproptin=True,surveydone=True,
gdproptindate=timezone.now() gdproptindate=timezone.now()
) )
self.theadmin = UserFactory(is_staff=True) self.theadmin = UserFactory(is_staff=True)
self.rtheadmin = Rower.objects.create(user=self.theadmin, self.rtheadmin = Rower.objects.create(user=self.theadmin,
birthdate = faker.profile()['birthdate'], birthdate = faker.profile()['birthdate'],
gdproptin=True, gdproptin=True,surveydone=True,
gdproptindate=timezone.now(), gdproptindate=timezone.now(),
rowerplan='coach') rowerplan='coach')
@@ -196,14 +196,14 @@ class EmailBikeErgUpload(TestCase):
u = User.objects.create_user('john', u = User.objects.create_user('john',
'sander@ds.ds', 'sander@ds.ds',
'koeinsloot') 'koeinsloot')
r = Rower.objects.create(user=u,gdproptin=True, r = Rower.objects.create(user=u,gdproptin=True,surveydone=True,
gdproptindate=timezone.now() gdproptindate=timezone.now()
) )
self.theadmin = UserFactory(is_staff=True) self.theadmin = UserFactory(is_staff=True)
self.rtheadmin = Rower.objects.create(user=self.theadmin, self.rtheadmin = Rower.objects.create(user=self.theadmin,
birthdate = faker.profile()['birthdate'], birthdate = faker.profile()['birthdate'],
gdproptin=True, gdproptin=True,surveydone=True,
gdproptindate=timezone.now(), gdproptindate=timezone.now(),
rowerplan='coach') rowerplan='coach')
@@ -257,14 +257,14 @@ class EmailBikeUpload(TestCase):
u = User.objects.create_user('john', u = User.objects.create_user('john',
'sander@ds.ds', 'sander@ds.ds',
'koeinsloot') 'koeinsloot')
r = Rower.objects.create(user=u,gdproptin=True, r = Rower.objects.create(user=u,gdproptin=True,surveydone=True,
gdproptindate=timezone.now() gdproptindate=timezone.now()
) )
self.theadmin = UserFactory(is_staff=True) self.theadmin = UserFactory(is_staff=True)
self.rtheadmin = Rower.objects.create(user=self.theadmin, self.rtheadmin = Rower.objects.create(user=self.theadmin,
birthdate = faker.profile()['birthdate'], birthdate = faker.profile()['birthdate'],
gdproptin=True, gdproptin=True,surveydone=True,
gdproptindate=timezone.now(), gdproptindate=timezone.now(),
rowerplan='coach') rowerplan='coach')
@@ -321,14 +321,14 @@ class EmailTests(TestCase):
u = User.objects.create_user('john', u = User.objects.create_user('john',
'sander@ds.ds', 'sander@ds.ds',
'koeinsloot') 'koeinsloot')
r = Rower.objects.create(user=u,gdproptin=True, r = Rower.objects.create(user=u,gdproptin=True,surveydone=True,
gdproptindate=timezone.now() gdproptindate=timezone.now()
) )
self.theadmin = UserFactory(is_staff=True) self.theadmin = UserFactory(is_staff=True)
self.rtheadmin = Rower.objects.create(user=self.theadmin, self.rtheadmin = Rower.objects.create(user=self.theadmin,
birthdate = faker.profile()['birthdate'], birthdate = faker.profile()['birthdate'],
gdproptin=True, gdproptin=True,surveydone=True,
gdproptindate=timezone.now(), gdproptindate=timezone.now(),
rowerplan='coach') rowerplan='coach')
@@ -404,7 +404,7 @@ class EmailAdminUpload(TestCase):
u = User.objects.create_user('john', u = User.objects.create_user('john',
'sander@ds.ds', 'sander@ds.ds',
'koeinsloot') 'koeinsloot')
r = Rower.objects.create(user=u,gdproptin=True, r = Rower.objects.create(user=u,gdproptin=True,surveydone=True,
gdproptindate=timezone.now(), gdproptindate=timezone.now(),
birthdate = faker.profile()['birthdate'] birthdate = faker.profile()['birthdate']
) )
@@ -412,7 +412,7 @@ class EmailAdminUpload(TestCase):
self.theadmin = UserFactory(is_staff=True) self.theadmin = UserFactory(is_staff=True)
self.rtheadmin = Rower.objects.create(user=self.theadmin, self.rtheadmin = Rower.objects.create(user=self.theadmin,
birthdate = faker.profile()['birthdate'], birthdate = faker.profile()['birthdate'],
gdproptin=True, gdproptin=True,surveydone=True,
gdproptindate=timezone.now(), gdproptindate=timezone.now(),
rowerplan='coach') rowerplan='coach')
@@ -473,4 +473,3 @@ race 1
result = results[0] result = results[0]
self.assertTrue(result.coursecompleted) self.assertTrue(result.coursecompleted)
+1 -1
View File
@@ -14,7 +14,7 @@ class EmpowerTest(TestCase):
'sander@ds.ds', 'sander@ds.ds',
'koeinsloot', 'koeinsloot',
) )
r = Rower.objects.create(user=u,rowerplan='coach',gdproptin=True, r = Rower.objects.create(user=u,rowerplan='coach',gdproptin=True,surveydone=True,
gdproptindate=timezone.now()) gdproptindate=timezone.now())
self.c = Client() self.c = Client()
+1 -1
View File
@@ -12,7 +12,7 @@ class WorkoutViewTest(TestCase):
self.r = Rower.objects.create(user=self.u, self.r = Rower.objects.create(user=self.u,
birthdate=faker.profile()['birthdate'], birthdate=faker.profile()['birthdate'],
gdproptin=True, gdproptin=True,surveydone=True,
gdproptindate=timezone.now(), gdproptindate=timezone.now(),
rowerplan='coach', rowerplan='coach',
showfavoritechartnotes=True) showfavoritechartnotes=True)
+8 -8
View File
@@ -22,7 +22,7 @@ class C2Objects(DjangoTestCase):
self.u.first_name = 'John' self.u.first_name = 'John'
self.u.last_name = 'Sander' self.u.last_name = 'Sander'
self.u.save() self.u.save()
self.r = Rower.objects.create(user=self.u,gdproptin=True, self.r = Rower.objects.create(user=self.u,gdproptin=True,surveydone=True,
gdproptindate=timezone.now() gdproptindate=timezone.now()
) )
@@ -157,7 +157,7 @@ class C2ObjectsTokenExpired(DjangoTestCase):
self.u.first_name = 'John' self.u.first_name = 'John'
self.u.last_name = 'Sander' self.u.last_name = 'Sander'
self.u.save() self.u.save()
self.r = Rower.objects.create(user=self.u,gdproptin=True, self.r = Rower.objects.create(user=self.u,gdproptin=True,surveydone=True,
gdproptindate=timezone.now() gdproptindate=timezone.now()
) )
@@ -236,7 +236,7 @@ class StravaObjects(DjangoTestCase):
self.u.first_name = 'John' self.u.first_name = 'John'
self.u.last_name = 'Sander' self.u.last_name = 'Sander'
self.u.save() self.u.save()
self.r = Rower.objects.create(user=self.u,gdproptin=True, self.r = Rower.objects.create(user=self.u,gdproptin=True,surveydone=True,
gdproptindate=timezone.now() gdproptindate=timezone.now()
) )
@@ -342,7 +342,7 @@ class STObjects(DjangoTestCase):
self.u.first_name = 'John' self.u.first_name = 'John'
self.u.last_name = 'Sander' self.u.last_name = 'Sander'
self.u.save() self.u.save()
self.r = Rower.objects.create(user=self.u,gdproptin=True, self.r = Rower.objects.create(user=self.u,gdproptin=True,surveydone=True,
gdproptindate=timezone.now() gdproptindate=timezone.now()
) )
@@ -490,7 +490,7 @@ class RunKeeperObjects(DjangoTestCase):
self.u.first_name = 'John' self.u.first_name = 'John'
self.u.last_name = 'Sander' self.u.last_name = 'Sander'
self.u.save() self.u.save()
self.r = Rower.objects.create(user=self.u,gdproptin=True, self.r = Rower.objects.create(user=self.u,gdproptin=True,surveydone=True,
gdproptindate=timezone.now() gdproptindate=timezone.now()
) )
@@ -583,7 +583,7 @@ class UAObjects(DjangoTestCase):
self.u.first_name = 'John' self.u.first_name = 'John'
self.u.last_name = 'Sander' self.u.last_name = 'Sander'
self.u.save() self.u.save()
self.r = Rower.objects.create(user=self.u,gdproptin=True, self.r = Rower.objects.create(user=self.u,gdproptin=True,surveydone=True,
gdproptindate=timezone.now() gdproptindate=timezone.now()
) )
@@ -686,7 +686,7 @@ class TPObjects(DjangoTestCase):
self.u.first_name = 'John' self.u.first_name = 'John'
self.u.last_name = 'Sander' self.u.last_name = 'Sander'
self.u.save() self.u.save()
self.r = Rower.objects.create(user=self.u,gdproptin=True, self.r = Rower.objects.create(user=self.u,gdproptin=True,surveydone=True,
gdproptindate=timezone.now() gdproptindate=timezone.now()
) )
@@ -769,7 +769,7 @@ class AutoExportTests(TestCase):
u = User.objects.create_user('john', u = User.objects.create_user('john',
'sander@ds.ds', 'sander@ds.ds',
'koeinsloot') 'koeinsloot')
r = Rower.objects.create(user=u,gdproptin=True, r = Rower.objects.create(user=u,gdproptin=True,surveydone=True,
gdproptindate=timezone.now() gdproptindate=timezone.now()
) )
+1 -3
View File
@@ -14,7 +14,7 @@ class InteractiveChartTest(TestCase):
u = User.objects.create_user('john', u = User.objects.create_user('john',
'sander@ds.ds', 'sander@ds.ds',
'koeinsloot') 'koeinsloot')
r = Rower.objects.create(user=u,gdproptin=True, r = Rower.objects.create(user=u,gdproptin=True,surveydone=True,
gdproptindate=timezone.now() gdproptindate=timezone.now()
) )
self.nu = datetime.datetime.now() self.nu = datetime.datetime.now()
@@ -137,5 +137,3 @@ class InteractiveChartTest(TestCase):
res = iplots.interactive_flex_chart2(self.wote.id,promember=1, res = iplots.interactive_flex_chart2(self.wote.id,promember=1,
xparam='distance', xparam='distance',
yparam1='pace',yparam2='spm') yparam1='pace',yparam2='spm')
+2 -5
View File
@@ -17,7 +17,7 @@ class WorkoutTests(TestCase):
self.u = User.objects.create_user('john', self.u = User.objects.create_user('john',
'sander@ds.ds', 'sander@ds.ds',
'koeinsloot') 'koeinsloot')
self.r = Rower.objects.create(user=self.u,gdproptin=True, self.r = Rower.objects.create(user=self.u,gdproptin=True,surveydone=True,
gdproptindate=timezone.now() gdproptindate=timezone.now()
) )
nu = datetime.datetime.now() nu = datetime.datetime.now()
@@ -37,7 +37,7 @@ class C2Tests(TestCase):
self.u = User.objects.create_user('john', self.u = User.objects.create_user('john',
'sander@ds.ds', 'sander@ds.ds',
'koeinsloot') 'koeinsloot')
self.r = Rower.objects.create(user=self.u,gdproptin=True, self.r = Rower.objects.create(user=self.u,gdproptin=True,surveydone=True,
gdproptindate=timezone.now() gdproptindate=timezone.now()
) )
self.nu = datetime.datetime.now() self.nu = datetime.datetime.now()
@@ -77,6 +77,3 @@ class subroutinetests(TestCase):
jsond = json.dumps(data) jsond = json.dumps(data)
data = c2stuff.createc2workoutdata_as_splits(w) data = c2stuff.createc2workoutdata_as_splits(w)
jsond = json.dumps(data) jsond = json.dumps(data)
+1 -4
View File
@@ -44,7 +44,7 @@ class NewUserRegistrationTest(TestCase):
response = self.c.post('/rowers/register/', form_data, follow=True) response = self.c.post('/rowers/register/', form_data, follow=True)
self.assertRedirects(response, self.assertRedirects(response,
expected_url='/rowers/me/gdpr-optin/?next=/rowers/list-workouts/', expected_url='/rowers/survey/?next=/rowers/list-workouts/',
status_code=302,target_status_code=200) status_code=302,target_status_code=200)
@@ -84,6 +84,3 @@ class NewUserRegistrationTest(TestCase):
self.assertRedirects(response, self.assertRedirects(response,
expected_url='/login/', expected_url='/login/',
status_code=302,target_status_code=200) status_code=302,target_status_code=200)
+12 -13
View File
@@ -64,7 +64,7 @@ class PaymentTest(TestCase):
u = UserFactory() u = UserFactory()
r = Rower.objects.create(user=u, r = Rower.objects.create(user=u,
birthdate=faker.profile()['birthdate'], birthdate=faker.profile()['birthdate'],
gdproptin=True, gdproptin=True,surveydone=True,
gdproptindate=timezone.now(), gdproptindate=timezone.now(),
rowerplan='coach', rowerplan='coach',
paymentprocessor='braintree', paymentprocessor='braintree',
@@ -122,7 +122,7 @@ class PaymentTest(TestCase):
u = UserFactory() u = UserFactory()
r = Rower.objects.create(user=u, r = Rower.objects.create(user=u,
birthdate=faker.profile()['birthdate'], birthdate=faker.profile()['birthdate'],
gdproptin=True, gdproptin=True,surveydone=True,
gdproptindate=timezone.now(), gdproptindate=timezone.now(),
rowerplan='coach', rowerplan='coach',
paymentprocessor='braintree', paymentprocessor='braintree',
@@ -185,7 +185,7 @@ class PaymentTest(TestCase):
u = UserFactory() u = UserFactory()
r = Rower.objects.create(user=u, r = Rower.objects.create(user=u,
birthdate=faker.profile()['birthdate'], birthdate=faker.profile()['birthdate'],
gdproptin=True, gdproptin=True,surveydone=True,
gdproptindate=timezone.now(), gdproptindate=timezone.now(),
rowerplan='coach', rowerplan='coach',
paymentprocessor='braintree', paymentprocessor='braintree',
@@ -251,7 +251,7 @@ class PaymentTest(TestCase):
u = UserFactory() u = UserFactory()
r = Rower.objects.create(user=u, r = Rower.objects.create(user=u,
birthdate=faker.profile()['birthdate'], birthdate=faker.profile()['birthdate'],
gdproptin=True, gdproptin=True,surveydone=True,
gdproptindate=timezone.now(), gdproptindate=timezone.now(),
rowerplan='coach', rowerplan='coach',
paymentprocessor='braintree', paymentprocessor='braintree',
@@ -289,7 +289,7 @@ class PaymentTest(TestCase):
u = UserFactory() u = UserFactory()
r = Rower.objects.create(user=u, r = Rower.objects.create(user=u,
birthdate=faker.profile()['birthdate'], birthdate=faker.profile()['birthdate'],
gdproptin=True, gdproptin=True,surveydone=True,
gdproptindate=timezone.now(), gdproptindate=timezone.now(),
rowerplan='coach', rowerplan='coach',
paymentprocessor='braintree', paymentprocessor='braintree',
@@ -329,7 +329,7 @@ class PaymentTest(TestCase):
u = UserFactory() u = UserFactory()
r = Rower.objects.create(user=u, r = Rower.objects.create(user=u,
birthdate=faker.profile()['birthdate'], birthdate=faker.profile()['birthdate'],
gdproptin=True, gdproptin=True,surveydone=True,
gdproptindate=timezone.now(), gdproptindate=timezone.now(),
rowerplan='coach', rowerplan='coach',
paymentprocessor='braintree', paymentprocessor='braintree',
@@ -350,7 +350,7 @@ class PaymentTest(TestCase):
u = UserFactory() u = UserFactory()
r = Rower.objects.create(user=u, r = Rower.objects.create(user=u,
birthdate=faker.profile()['birthdate'], birthdate=faker.profile()['birthdate'],
gdproptin=True, gdproptin=True,surveydone=True,
gdproptindate=timezone.now(), gdproptindate=timezone.now(),
rowerplan='coach', rowerplan='coach',
paymentprocessor='braintree', paymentprocessor='braintree',
@@ -396,7 +396,7 @@ class PaymentTest(TestCase):
u = UserFactory() u = UserFactory()
r = Rower.objects.create(user=u, r = Rower.objects.create(user=u,
birthdate=faker.profile()['birthdate'], birthdate=faker.profile()['birthdate'],
gdproptin=True, gdproptin=True,surveydone=True,
gdproptindate=timezone.now(), gdproptindate=timezone.now(),
rowerplan='coach', rowerplan='coach',
paymentprocessor='braintree', paymentprocessor='braintree',
@@ -441,7 +441,7 @@ class PaymentTest(TestCase):
u = UserFactory() u = UserFactory()
r = Rower.objects.create(user=u, r = Rower.objects.create(user=u,
birthdate=faker.profile()['birthdate'], birthdate=faker.profile()['birthdate'],
gdproptin=True, gdproptin=True,surveydone=True,
gdproptindate=timezone.now(), gdproptindate=timezone.now(),
rowerplan='coach', rowerplan='coach',
paymentprocessor='braintree', paymentprocessor='braintree',
@@ -486,7 +486,7 @@ class PaymentTest(TestCase):
u = UserFactory() u = UserFactory()
r = Rower.objects.create(user=u, r = Rower.objects.create(user=u,
birthdate=faker.profile()['birthdate'], birthdate=faker.profile()['birthdate'],
gdproptin=True, gdproptin=True,surveydone=True,
gdproptindate=timezone.now(), gdproptindate=timezone.now(),
rowerplan='coach', rowerplan='coach',
paymentprocessor='braintree', paymentprocessor='braintree',
@@ -536,7 +536,7 @@ class PaymentTest(TestCase):
u = UserFactory() u = UserFactory()
r = Rower.objects.create(user=u, r = Rower.objects.create(user=u,
birthdate=faker.profile()['birthdate'], birthdate=faker.profile()['birthdate'],
gdproptin=True, gdproptin=True,surveydone=True,
gdproptindate=timezone.now(), gdproptindate=timezone.now(),
rowerplan='coach', rowerplan='coach',
paymentprocessor='braintree', paymentprocessor='braintree',
@@ -581,7 +581,7 @@ class PaymentTest(TestCase):
u = UserFactory() u = UserFactory()
r = Rower.objects.create(user=u, r = Rower.objects.create(user=u,
birthdate=faker.profile()['birthdate'], birthdate=faker.profile()['birthdate'],
gdproptin=True, gdproptin=True,surveydone=True,
gdproptindate=timezone.now(), gdproptindate=timezone.now(),
rowerplan='coach', rowerplan='coach',
paymentprocessor='braintree', paymentprocessor='braintree',
@@ -620,4 +620,3 @@ class PaymentTest(TestCase):
self.assertRedirects(response, self.assertRedirects(response,
expected_url = '/rowers/downgradecompleted/', expected_url = '/rowers/downgradecompleted/',
status_code=302,target_status_code=200) status_code=302,target_status_code=200)
+24 -24
View File
@@ -23,7 +23,7 @@ class PermissionsFreeCoach(TestCase):
self.ufreecoach = UserFactory(username='coachuser') self.ufreecoach = UserFactory(username='coachuser')
self.rfreecoach = Rower.objects.create(user=self.ufreecoach, self.rfreecoach = Rower.objects.create(user=self.ufreecoach,
birthdate=faker.profile()['birthdate'], birthdate=faker.profile()['birthdate'],
gdproptin=True,gdproptindate=timezone.now(), gdproptin=True,surveydone=True,gdproptindate=timezone.now(),
rowerplan='freecoach',clubsize=100) rowerplan='freecoach',clubsize=100)
self.coachinggroup = CoachingGroup.objects.create() self.coachinggroup = CoachingGroup.objects.create()
@@ -37,7 +37,7 @@ class PermissionsFreeCoach(TestCase):
self.uplan = UserFactory(username='planuser') self.uplan = UserFactory(username='planuser')
self.rplan = Rower.objects.create(user=self.uplan, self.rplan = Rower.objects.create(user=self.uplan,
birthdate=faker.profile()['birthdate'], birthdate=faker.profile()['birthdate'],
gdproptin=True,gdproptindate=timezone.now(), gdproptin=True,surveydone=True,gdproptindate=timezone.now(),
rowerplan='plan') rowerplan='plan')
self.uplan_workouts = WorkoutFactory.create_batch(5, user=self.rplan) self.uplan_workouts = WorkoutFactory.create_batch(5, user=self.rplan)
@@ -49,7 +49,7 @@ class PermissionsFreeCoach(TestCase):
self.upro = UserFactory(username='prouser') self.upro = UserFactory(username='prouser')
self.rpro = Rower.objects.create(user=self.upro, self.rpro = Rower.objects.create(user=self.upro,
birthdate=faker.profile()['birthdate'], birthdate=faker.profile()['birthdate'],
gdproptin=True,gdproptindate=timezone.now(), gdproptin=True,surveydone=True,gdproptindate=timezone.now(),
rowerplan='pro') rowerplan='pro')
self.upro_workouts = WorkoutFactory.create_batch(5, user=self.rpro) self.upro_workouts = WorkoutFactory.create_batch(5, user=self.rpro)
@@ -61,7 +61,7 @@ class PermissionsFreeCoach(TestCase):
self.uplan2 = UserFactory(username='planuser2') self.uplan2 = UserFactory(username='planuser2')
self.rplan2 = Rower.objects.create(user=self.uplan2, self.rplan2 = Rower.objects.create(user=self.uplan2,
birthdate=faker.profile()['birthdate'], birthdate=faker.profile()['birthdate'],
gdproptin=True,gdproptindate=timezone.now(), gdproptin=True,surveydone=True,gdproptindate=timezone.now(),
rowerplan='plan') rowerplan='plan')
self.uplan2_workouts = WorkoutFactory.create_batch(5, user=self.rplan2) self.uplan2_workouts = WorkoutFactory.create_batch(5, user=self.rplan2)
@@ -73,7 +73,7 @@ class PermissionsFreeCoach(TestCase):
self.upro2 = UserFactory(username='prouser2') self.upro2 = UserFactory(username='prouser2')
self.rpro2 = Rower.objects.create(user=self.upro2, self.rpro2 = Rower.objects.create(user=self.upro2,
birthdate=faker.profile()['birthdate'], birthdate=faker.profile()['birthdate'],
gdproptin=True,gdproptindate=timezone.now(), gdproptin=True,surveydone=True,gdproptindate=timezone.now(),
rowerplan='pro') rowerplan='pro')
self.upro2_workouts = WorkoutFactory.create_batch(5, user=self.rpro2) self.upro2_workouts = WorkoutFactory.create_batch(5, user=self.rpro2)
@@ -85,7 +85,7 @@ class PermissionsFreeCoach(TestCase):
self.ubasic = UserFactory(username='basicuser') self.ubasic = UserFactory(username='basicuser')
self.rbasic = Rower.objects.create(user=self.ubasic, self.rbasic = Rower.objects.create(user=self.ubasic,
birthdate=faker.profile()['birthdate'], birthdate=faker.profile()['birthdate'],
gdproptin=True,gdproptindate=timezone.now(), gdproptin=True,surveydone=True,gdproptindate=timezone.now(),
rowerplan='basic') rowerplan='basic')
self.ubasic_workouts = WorkoutFactory.create_batch(5, user=self.rbasic) self.ubasic_workouts = WorkoutFactory.create_batch(5, user=self.rbasic)
@@ -201,7 +201,7 @@ class PermissionsBasicsTests(TestCase):
self.ucoach = UserFactory(username='coachuser') self.ucoach = UserFactory(username='coachuser')
self.rcoach = Rower.objects.create(user=self.ucoach, self.rcoach = Rower.objects.create(user=self.ucoach,
birthdate=faker.profile()['birthdate'], birthdate=faker.profile()['birthdate'],
gdproptin=True,gdproptindate=timezone.now(), gdproptin=True,surveydone=True,gdproptindate=timezone.now(),
rowerplan='coach',clubsize=10) rowerplan='coach',clubsize=10)
self.ucoach_workouts = WorkoutFactory.create_batch(5, user=self.rcoach) self.ucoach_workouts = WorkoutFactory.create_batch(5, user=self.rcoach)
@@ -216,7 +216,7 @@ class PermissionsBasicsTests(TestCase):
self.uplan = UserFactory(username='planuser') self.uplan = UserFactory(username='planuser')
self.rplan = Rower.objects.create(user=self.uplan, self.rplan = Rower.objects.create(user=self.uplan,
birthdate=faker.profile()['birthdate'], birthdate=faker.profile()['birthdate'],
gdproptin=True,gdproptindate=timezone.now(), gdproptin=True,surveydone=True,gdproptindate=timezone.now(),
rowerplan='plan') rowerplan='plan')
self.uplan_workouts = WorkoutFactory.create_batch(5, user=self.rplan) self.uplan_workouts = WorkoutFactory.create_batch(5, user=self.rplan)
@@ -228,7 +228,7 @@ class PermissionsBasicsTests(TestCase):
self.upro = UserFactory(username='prouser') self.upro = UserFactory(username='prouser')
self.rpro = Rower.objects.create(user=self.upro, self.rpro = Rower.objects.create(user=self.upro,
birthdate=faker.profile()['birthdate'], birthdate=faker.profile()['birthdate'],
gdproptin=True,gdproptindate=timezone.now(), gdproptin=True,surveydone=True,gdproptindate=timezone.now(),
rowerplan='pro') rowerplan='pro')
self.upro_workouts = WorkoutFactory.create_batch(5, user=self.rpro) self.upro_workouts = WorkoutFactory.create_batch(5, user=self.rpro)
@@ -240,7 +240,7 @@ class PermissionsBasicsTests(TestCase):
self.uplan2 = UserFactory(username='planuser2') self.uplan2 = UserFactory(username='planuser2')
self.rplan2 = Rower.objects.create(user=self.uplan2, self.rplan2 = Rower.objects.create(user=self.uplan2,
birthdate=faker.profile()['birthdate'], birthdate=faker.profile()['birthdate'],
gdproptin=True,gdproptindate=timezone.now(), gdproptin=True,surveydone=True,gdproptindate=timezone.now(),
rowerplan='plan') rowerplan='plan')
self.uplan2_workouts = WorkoutFactory.create_batch(5, user=self.rplan2) self.uplan2_workouts = WorkoutFactory.create_batch(5, user=self.rplan2)
@@ -252,7 +252,7 @@ class PermissionsBasicsTests(TestCase):
self.upro2 = UserFactory(username='prouser2') self.upro2 = UserFactory(username='prouser2')
self.rpro2 = Rower.objects.create(user=self.upro2, self.rpro2 = Rower.objects.create(user=self.upro2,
birthdate=faker.profile()['birthdate'], birthdate=faker.profile()['birthdate'],
gdproptin=True,gdproptindate=timezone.now(), gdproptin=True,surveydone=True,gdproptindate=timezone.now(),
rowerplan='pro') rowerplan='pro')
self.upro2_workouts = WorkoutFactory.create_batch(5, user=self.rpro2) self.upro2_workouts = WorkoutFactory.create_batch(5, user=self.rpro2)
@@ -264,7 +264,7 @@ class PermissionsBasicsTests(TestCase):
self.ubasic = UserFactory(username='basicuser') self.ubasic = UserFactory(username='basicuser')
self.rbasic = Rower.objects.create(user=self.ubasic, self.rbasic = Rower.objects.create(user=self.ubasic,
birthdate=faker.profile()['birthdate'], birthdate=faker.profile()['birthdate'],
gdproptin=True,gdproptindate=timezone.now(), gdproptin=True,surveydone=True,gdproptindate=timezone.now(),
rowerplan='basic') rowerplan='basic')
self.ubasic_workouts = WorkoutFactory.create_batch(5, user=self.rbasic) self.ubasic_workouts = WorkoutFactory.create_batch(5, user=self.rbasic)
@@ -461,7 +461,7 @@ class PermissionsViewTests(TestCase):
self.ucoach = UserFactory(username='coachuser') self.ucoach = UserFactory(username='coachuser')
self.rcoach = Rower.objects.create(user=self.ucoach, self.rcoach = Rower.objects.create(user=self.ucoach,
birthdate=faker.profile()['birthdate'], birthdate=faker.profile()['birthdate'],
gdproptin=True,gdproptindate=timezone.now(), gdproptin=True,surveydone=True,gdproptindate=timezone.now(),
rowerplan='coach',clubsize=10) rowerplan='coach',clubsize=10)
self.ucoach_workouts = WorkoutFactory.create_batch(5, user=self.rcoach) self.ucoach_workouts = WorkoutFactory.create_batch(5, user=self.rcoach)
@@ -476,7 +476,7 @@ class PermissionsViewTests(TestCase):
self.uplan = UserFactory(username='planuser') self.uplan = UserFactory(username='planuser')
self.rplan = Rower.objects.create(user=self.uplan, self.rplan = Rower.objects.create(user=self.uplan,
birthdate=faker.profile()['birthdate'], birthdate=faker.profile()['birthdate'],
gdproptin=True,gdproptindate=timezone.now(), gdproptin=True,surveydone=True,gdproptindate=timezone.now(),
rowerplan='plan') rowerplan='plan')
self.uplan_workouts = WorkoutFactory.create_batch(5, user=self.rplan) self.uplan_workouts = WorkoutFactory.create_batch(5, user=self.rplan)
@@ -488,7 +488,7 @@ class PermissionsViewTests(TestCase):
self.upro = UserFactory(username='prouser') self.upro = UserFactory(username='prouser')
self.rpro = Rower.objects.create(user=self.upro, self.rpro = Rower.objects.create(user=self.upro,
birthdate=faker.profile()['birthdate'], birthdate=faker.profile()['birthdate'],
gdproptin=True,gdproptindate=timezone.now(), gdproptin=True,surveydone=True,gdproptindate=timezone.now(),
rowerplan='pro') rowerplan='pro')
self.upro_workouts = WorkoutFactory.create_batch(5, user=self.rpro) self.upro_workouts = WorkoutFactory.create_batch(5, user=self.rpro)
@@ -500,7 +500,7 @@ class PermissionsViewTests(TestCase):
self.uplan2 = UserFactory(username='planuser2') self.uplan2 = UserFactory(username='planuser2')
self.rplan2 = Rower.objects.create(user=self.uplan2, self.rplan2 = Rower.objects.create(user=self.uplan2,
birthdate=faker.profile()['birthdate'], birthdate=faker.profile()['birthdate'],
gdproptin=True,gdproptindate=timezone.now(), gdproptin=True,surveydone=True,gdproptindate=timezone.now(),
rowerplan='plan') rowerplan='plan')
self.uplan2_workouts = WorkoutFactory.create_batch(5, user=self.rplan2) self.uplan2_workouts = WorkoutFactory.create_batch(5, user=self.rplan2)
@@ -512,7 +512,7 @@ class PermissionsViewTests(TestCase):
self.upro2 = UserFactory(username='prouser2') self.upro2 = UserFactory(username='prouser2')
self.rpro2 = Rower.objects.create(user=self.upro2, self.rpro2 = Rower.objects.create(user=self.upro2,
birthdate=faker.profile()['birthdate'], birthdate=faker.profile()['birthdate'],
gdproptin=True,gdproptindate=timezone.now(), gdproptin=True,surveydone=True,gdproptindate=timezone.now(),
rowerplan='pro') rowerplan='pro')
self.upro2_workouts = WorkoutFactory.create_batch(5, user=self.rpro2) self.upro2_workouts = WorkoutFactory.create_batch(5, user=self.rpro2)
@@ -524,7 +524,7 @@ class PermissionsViewTests(TestCase):
self.ubasic = UserFactory(username='basicuser') self.ubasic = UserFactory(username='basicuser')
self.rbasic = Rower.objects.create(user=self.ubasic, self.rbasic = Rower.objects.create(user=self.ubasic,
birthdate=faker.profile()['birthdate'], birthdate=faker.profile()['birthdate'],
gdproptin=True,gdproptindate=timezone.now(), gdproptin=True,surveydone=True,gdproptindate=timezone.now(),
rowerplan='basic') rowerplan='basic')
self.ubasic_workouts = WorkoutFactory.create_batch(5, user=self.rbasic) self.ubasic_workouts = WorkoutFactory.create_batch(5, user=self.rbasic)
@@ -1215,7 +1215,7 @@ class PermissionsCoachingTests(TestCase):
self.ucoach = UserFactory(username='coachuser') self.ucoach = UserFactory(username='coachuser')
self.rcoach = Rower.objects.create(user=self.ucoach, self.rcoach = Rower.objects.create(user=self.ucoach,
birthdate=faker.profile()['birthdate'], birthdate=faker.profile()['birthdate'],
gdproptin=True,gdproptindate=timezone.now(), gdproptin=True,surveydone=True,gdproptindate=timezone.now(),
rowerplan='coach',clubsize=10) rowerplan='coach',clubsize=10)
self.ucoach_workouts = WorkoutFactory.create_batch(5, user=self.rcoach) self.ucoach_workouts = WorkoutFactory.create_batch(5, user=self.rcoach)
@@ -1230,7 +1230,7 @@ class PermissionsCoachingTests(TestCase):
self.uplan = UserFactory(username='planuser') self.uplan = UserFactory(username='planuser')
self.rplan = Rower.objects.create(user=self.uplan, self.rplan = Rower.objects.create(user=self.uplan,
birthdate=faker.profile()['birthdate'], birthdate=faker.profile()['birthdate'],
gdproptin=True,gdproptindate=timezone.now(), gdproptin=True,surveydone=True,gdproptindate=timezone.now(),
rowerplan='plan') rowerplan='plan')
self.uplan_workouts = WorkoutFactory.create_batch(5, user=self.rplan) self.uplan_workouts = WorkoutFactory.create_batch(5, user=self.rplan)
@@ -1242,7 +1242,7 @@ class PermissionsCoachingTests(TestCase):
self.upro = UserFactory(username='prouser') self.upro = UserFactory(username='prouser')
self.rpro = Rower.objects.create(user=self.upro, self.rpro = Rower.objects.create(user=self.upro,
birthdate=faker.profile()['birthdate'], birthdate=faker.profile()['birthdate'],
gdproptin=True,gdproptindate=timezone.now(), gdproptin=True,surveydone=True,gdproptindate=timezone.now(),
rowerplan='pro') rowerplan='pro')
self.upro_workouts = WorkoutFactory.create_batch(5, user=self.rpro) self.upro_workouts = WorkoutFactory.create_batch(5, user=self.rpro)
@@ -1254,7 +1254,7 @@ class PermissionsCoachingTests(TestCase):
self.uplan2 = UserFactory(username='planuser2') self.uplan2 = UserFactory(username='planuser2')
self.rplan2 = Rower.objects.create(user=self.uplan2, self.rplan2 = Rower.objects.create(user=self.uplan2,
birthdate=faker.profile()['birthdate'], birthdate=faker.profile()['birthdate'],
gdproptin=True,gdproptindate=timezone.now(), gdproptin=True,surveydone=True,gdproptindate=timezone.now(),
rowerplan='plan') rowerplan='plan')
self.uplan2_workouts = WorkoutFactory.create_batch(5, user=self.rplan2) self.uplan2_workouts = WorkoutFactory.create_batch(5, user=self.rplan2)
@@ -1266,7 +1266,7 @@ class PermissionsCoachingTests(TestCase):
self.upro2 = UserFactory(username='prouser2') self.upro2 = UserFactory(username='prouser2')
self.rpro2 = Rower.objects.create(user=self.upro2, self.rpro2 = Rower.objects.create(user=self.upro2,
birthdate=faker.profile()['birthdate'], birthdate=faker.profile()['birthdate'],
gdproptin=True,gdproptindate=timezone.now(), gdproptin=True,surveydone=True,gdproptindate=timezone.now(),
rowerplan='pro') rowerplan='pro')
self.upro2_workouts = WorkoutFactory.create_batch(5, user=self.rpro2) self.upro2_workouts = WorkoutFactory.create_batch(5, user=self.rpro2)
@@ -1278,7 +1278,7 @@ class PermissionsCoachingTests(TestCase):
self.ubasic = UserFactory(username='basicuser') self.ubasic = UserFactory(username='basicuser')
self.rbasic = Rower.objects.create(user=self.ubasic, self.rbasic = Rower.objects.create(user=self.ubasic,
birthdate=faker.profile()['birthdate'], birthdate=faker.profile()['birthdate'],
gdproptin=True,gdproptindate=timezone.now(), gdproptin=True,surveydone=True,gdproptindate=timezone.now(),
rowerplan='basic') rowerplan='basic')
self.ubasic_workouts = WorkoutFactory.create_batch(5, user=self.rbasic) self.ubasic_workouts = WorkoutFactory.create_batch(5, user=self.rbasic)
+7 -7
View File
@@ -17,7 +17,7 @@ class TrainingPlanTest(TestCase):
self.r = Rower.objects.create(user=self.u, self.r = Rower.objects.create(user=self.u,
birthdate=faker.profile()['birthdate'], birthdate=faker.profile()['birthdate'],
gdproptin=True, gdproptin=True,surveydone=True,
gdproptindate=timezone.now(), gdproptindate=timezone.now(),
rowerplan='coach') rowerplan='coach')
@@ -175,7 +175,7 @@ class SessionLinkTest(TestCase):
self.r = Rower.objects.create(user=self.u, self.r = Rower.objects.create(user=self.u,
birthdate=faker.profile()['birthdate'], birthdate=faker.profile()['birthdate'],
gdproptin=True, gdproptin=True,surveydone=True,
gdproptindate=timezone.now(), gdproptindate=timezone.now(),
rowerplan='coach') rowerplan='coach')
@@ -348,7 +348,7 @@ class SessionCompleteTest(TestCase):
self.r = Rower.objects.create(user=self.u, self.r = Rower.objects.create(user=self.u,
birthdate=faker.profile()['birthdate'], birthdate=faker.profile()['birthdate'],
gdproptin=True, gdproptin=True,surveydone=True,
gdproptindate=timezone.now(), gdproptindate=timezone.now(),
rowerplan='coach') rowerplan='coach')
@@ -603,7 +603,7 @@ class ChallengeCompleteTest(TestCase):
self.r = Rower.objects.create(user=self.u, self.r = Rower.objects.create(user=self.u,
birthdate=faker.profile()['birthdate'], birthdate=faker.profile()['birthdate'],
gdproptin=True, gdproptin=True,surveydone=True,
gdproptindate=timezone.now(), gdproptindate=timezone.now(),
rowerplan='coach') rowerplan='coach')
@@ -827,7 +827,7 @@ class MandatoryTestCompleteTest(TestCase):
self.r = Rower.objects.create(user=self.u, self.r = Rower.objects.create(user=self.u,
birthdate=faker.profile()['birthdate'], birthdate=faker.profile()['birthdate'],
gdproptin=True, gdproptin=True,surveydone=True,
gdproptindate=timezone.now(), gdproptindate=timezone.now(),
rowerplan='coach') rowerplan='coach')
@@ -1040,7 +1040,7 @@ class PlannedSessionsView(TestCase):
self.r = Rower.objects.create(user=self.u, self.r = Rower.objects.create(user=self.u,
birthdate=faker.profile()['birthdate'], birthdate=faker.profile()['birthdate'],
gdproptin=True, gdproptin=True,surveydone=True,
gdproptindate=timezone.now(), gdproptindate=timezone.now(),
rowerplan='coach') rowerplan='coach')
self.r.save() self.r.save()
@@ -1049,7 +1049,7 @@ class PlannedSessionsView(TestCase):
self.u2 = UserFactory(username='testbasicuser') self.u2 = UserFactory(username='testbasicuser')
self.r2 = Rower.objects.create(user=self.u2, self.r2 = Rower.objects.create(user=self.u2,
birthdate=faker.profile()['birthdate'], birthdate=faker.profile()['birthdate'],
gdproptin=True, gdproptin=True,surveydone=True,
gdproptindate=timezone.now(), gdproptindate=timezone.now(),
rowerplan='basic') rowerplan='basic')
+1 -4
View File
@@ -14,7 +14,7 @@ class TrialsTest(TestCase):
self.r = Rower.objects.create(user=self.u, self.r = Rower.objects.create(user=self.u,
birthdate=faker.profile()['birthdate'], birthdate=faker.profile()['birthdate'],
gdproptin=True, gdproptin=True,surveydone=True,
gdproptindate=timezone.now(), gdproptindate=timezone.now(),
rowerplan='basic') rowerplan='basic')
@@ -64,6 +64,3 @@ class TrialsTest(TestCase):
self.assertEqual(hasplannedsessions(self.u),True) self.assertEqual(hasplannedsessions(self.u),True)
self.assertEqual(iscoachmember(self.u),False) self.assertEqual(iscoachmember(self.u),False)
self.assertEqual(ispromember(self.u),True) self.assertEqual(ispromember(self.u),True)
+1 -1
View File
@@ -14,7 +14,7 @@ class DataTest(TestCase):
u = User.objects.create_user('john', u = User.objects.create_user('john',
'sander@ds.ds', 'sander@ds.ds',
'koeinsloot') 'koeinsloot')
r = Rower.objects.create(user=u,gdproptin=True, r = Rower.objects.create(user=u,gdproptin=True,surveydone=True,
gdproptindate=timezone.now() gdproptindate=timezone.now()
) )
self.nu = datetime.datetime.now() self.nu = datetime.datetime.now()
+1 -1
View File
@@ -36,7 +36,7 @@ class SimpleViewTest(TestCase):
self.r = Rower.objects.create(user=self.u, self.r = Rower.objects.create(user=self.u,
birthdate=faker.profile()['birthdate'], birthdate=faker.profile()['birthdate'],
gdproptin=True, gdproptin=True,surveydone=True,
gdproptindate=timezone.now(), gdproptindate=timezone.now(),
rowerplan='coach') rowerplan='coach')
+1 -1
View File
@@ -18,7 +18,7 @@ class PlotTests(TestCase):
'sander@ds.ds', 'sander@ds.ds',
'koeinsloot') 'koeinsloot')
r = Rower.objects.create(user=u, r = Rower.objects.create(user=u,
gdproptin=True, gdproptin=True,surveydone=True,
gdproptindate=timezone.now(), gdproptindate=timezone.now(),
rowerplan='basic') rowerplan='basic')
self.nu = datetime.datetime.now() self.nu = datetime.datetime.now()
+2 -4
View File
@@ -41,7 +41,7 @@ class TeamTest(TestCase):
r = Rower.objects.create( r = Rower.objects.create(
birthdate=faker.profile()['birthdate'], birthdate=faker.profile()['birthdate'],
gdproptin=True, gdproptin=True,surveydone=True,
gdproptindate=timezone.now(), gdproptindate=timezone.now(),
rowerplan='coach', rowerplan='coach',
user=u, user=u,
@@ -264,7 +264,7 @@ class TeamTestLowLevel(TestCase):
r = Rower.objects.create( r = Rower.objects.create(
birthdate=faker.profile()['birthdate'], birthdate=faker.profile()['birthdate'],
gdproptin=True, gdproptin=True,surveydone=True,
gdproptindate=timezone.now(), gdproptindate=timezone.now(),
rowerplan='coach', rowerplan='coach',
user=u, user=u,
@@ -353,5 +353,3 @@ class TeamTestLowLevel(TestCase):
# cannot create invite for team you don't manage # cannot create invite for team you don't manage
id, comment = create_invite(self.t, self.users[3],self.users[4]) id, comment = create_invite(self.t, self.users[3],self.users[4])
self.assertEqual(id,0) self.assertEqual(id,0)
+2 -2
View File
@@ -26,7 +26,7 @@ class ForceUnits(TestCase):
self.r = Rower.objects.create(user=self.u, self.r = Rower.objects.create(user=self.u,
birthdate=faker.profile()['birthdate'], birthdate=faker.profile()['birthdate'],
gdproptin=True, gdproptin=True,surveydone=True,
gdproptindate=timezone.now(), gdproptindate=timezone.now(),
rowerplan='coach') rowerplan='coach')
@@ -164,7 +164,7 @@ class TestForceUnit(TestCase):
self.r = Rower.objects.create(user=self.u, self.r = Rower.objects.create(user=self.u,
birthdate=faker.profile()['birthdate'], birthdate=faker.profile()['birthdate'],
gdproptin=True, gdproptin=True,surveydone=True,
gdproptindate=timezone.now(), gdproptindate=timezone.now(),
rowerplan='coach') rowerplan='coach')
+1 -2
View File
@@ -18,7 +18,7 @@ class ViewTest(TestCase):
self.u = User.objects.create_user('john', self.u = User.objects.create_user('john',
'sander@ds.ds', 'sander@ds.ds',
'koeinsloot') 'koeinsloot')
self.r = Rower.objects.create(user=self.u,gdproptin=True, self.r = Rower.objects.create(user=self.u,gdproptin=True,surveydone=True,
gdproptindate=timezone.now(), gdproptindate=timezone.now(),
rowerplan='coach', rowerplan='coach',
) )
@@ -783,4 +783,3 @@ class ViewTest(TestCase):
os.remove(f_to_be_deleted+'.gz') os.remove(f_to_be_deleted+'.gz')
except (FileNotFoundError,OSError): except (FileNotFoundError,OSError):
pass pass
+2 -4
View File
@@ -80,8 +80,8 @@ class UserPreferencesTest(TestCase):
self.r = Rower.objects.create(user=self.u, self.r = Rower.objects.create(user=self.u,
birthdate=faker.profile()['birthdate'], birthdate=faker.profile()['birthdate'],
gdproptin=True, gdproptin=True,surveydone=Trueoptin=True,
gdproptindate=timezone.now(), gdproptin=True,surveydone=Trueoptindate=timezone.now(),
rowerplan='coach') rowerplan='coach')
self.c = Client() self.c = Client()
@@ -245,5 +245,3 @@ class UserPreferencesTest(TestCase):
response = self.c.post(url,form_data) response = self.c.post(url,form_data)
self.assertEqual(response.status_code,200) self.assertEqual(response.status_code,200)
+5
View File
@@ -283,6 +283,10 @@ urlpatterns = [
re_path(r'^graph/(?P<pk>\d+)/delete/$',views.GraphDelete.as_view(),name='graph_delete'), re_path(r'^graph/(?P<pk>\d+)/delete/$',views.GraphDelete.as_view(),name='graph_delete'),
re_path(r'^workout/(?P<id>\b[0-9A-Fa-f]+\b)/get-thumbnails/$',views.get_thumbnails, re_path(r'^workout/(?P<id>\b[0-9A-Fa-f]+\b)/get-thumbnails/$',views.get_thumbnails,
name='get_thumbnails'), name='get_thumbnails'),
re_path(r'^workout/(?P<id>\b[0-9A-Fa-f]+\b)/otwuseimpeller/$',views.otw_use_impeller,
name='otw_use_impeller'),
re_path(r'^workout/(?P<id>\b[0-9A-Fa-f]+\b)/otwusegps/$',views.otw_use_gps,
name='otw_use_gps'),
re_path(r'^workout/(?P<id>\b[0-9A-Fa-f]+\b)/toggle-ranking/$',views.workout_toggle_ranking, re_path(r'^workout/(?P<id>\b[0-9A-Fa-f]+\b)/toggle-ranking/$',views.workout_toggle_ranking,
name='workout_toggle_ranking'), name='workout_toggle_ranking'),
re_path(r'^workout/(?P<id>\b[0-9A-Fa-f]+\b)/get-testscript/$',views.get_testscript, re_path(r'^workout/(?P<id>\b[0-9A-Fa-f]+\b)/get-testscript/$',views.get_testscript,
@@ -445,6 +449,7 @@ urlpatterns = [
re_path(r'^user-multiflex-data/$',views.multiflex_data,name='multiflex_data'), re_path(r'^user-multiflex-data/$',views.multiflex_data,name='multiflex_data'),
re_path(r'^me/deactivate/$',views.deactivate_user,name='deactivate_user'), re_path(r'^me/deactivate/$',views.deactivate_user,name='deactivate_user'),
re_path(r'^me/delete/$',views.remove_user,name='remove_user'), re_path(r'^me/delete/$',views.remove_user,name='remove_user'),
re_path(r'^survey/$',views.survey,name='survey'),
re_path(r'^me/gdpr-optin-confirm/?/$',views.user_gdpr_confirm,name='user_gdpr_confirm'), re_path(r'^me/gdpr-optin-confirm/?/$',views.user_gdpr_confirm,name='user_gdpr_confirm'),
re_path(r'^me/gdpr-optin-confirm/$',views.user_gdpr_confirm,name='user_gdpr_confirm'), re_path(r'^me/gdpr-optin-confirm/$',views.user_gdpr_confirm,name='user_gdpr_confirm'),
re_path(r'^me/gdpr-optin/?/$',views.user_gdpr_optin,name='user_gdpr_optin'), re_path(r'^me/gdpr-optin/?/$',views.user_gdpr_optin,name='user_gdpr_optin'),
+11 -8
View File
@@ -4322,9 +4322,10 @@ def agegrouprecordview(request,sex='male',weightcategory='hwt',
}) })
# alert overview view # alert overview view
@user_passes_test(ispromember, login_url="/rowers/paidplans", #@user_passes_test(ispromember, login_url="/rowers/paidplans",
message="This functionality requires a Pro plan or higher. If you are already a Pro user, please log in to access this functionality", # message="This functionality requires a Pro plan or higher. If you are already a Pro user, please log in to access this functionality",
redirect_field_name=None) # redirect_field_name=None)
@login_required
def alerts_view(request,userid=0): def alerts_view(request,userid=0):
r = getrequestrower(request,userid=userid) r = getrequestrower(request,userid=userid)
@@ -4436,9 +4437,7 @@ def alert_create_view(request,userid=0):
}) })
# alert report view # alert report view
@user_passes_test(ispromember, login_url="/rowers/paidplans", @login_required()
message="This functionality requires a Pro plan or higher. If you are already a Pro user, please log in to access this functionality",
redirect_field_name=None)
def alert_report_view(request,id=0,userid=0,nperiod=0): def alert_report_view(request,id=0,userid=0,nperiod=0):
r = getrequestrower(request,userid=userid) r = getrequestrower(request,userid=userid)
if userid == 0: if userid == 0:
@@ -4453,7 +4452,7 @@ def alert_report_view(request,id=0,userid=0,nperiod=0):
raise Http404("This alert doesn't exist") raise Http404("This alert doesn't exist")
if alert.manager != request.user: if not checkalertowner(alert,request.user):
raise PermissionDenied('You are not allowed to edit this Alert') raise PermissionDenied('You are not allowed to edit this Alert')
stats = alert_get_stats(alert,nperiod=nperiod) stats = alert_get_stats(alert,nperiod=nperiod)
@@ -4505,7 +4504,7 @@ def alert_edit_view(request,id=0,userid=0):
raise Http404("This alert doesn't exist") raise Http404("This alert doesn't exist")
if alert.manager != request.user: if not alert.manager != request.user:
raise PermissionDenied('You are not allowed to edit this Alert') raise PermissionDenied('You are not allowed to edit this Alert')
FilterFormSet = formset_factory(ConditionEditForm, formset=BaseConditionFormSet,extra=0) FilterFormSet = formset_factory(ConditionEditForm, formset=BaseConditionFormSet,extra=0)
@@ -4603,6 +4602,7 @@ def alert_edit_view(request,id=0,userid=0):
}) })
# alert delete view # alert delete view
class AlertDelete(DeleteView): class AlertDelete(DeleteView):
login_requird = True login_requird = True
model = Alert model = Alert
@@ -4650,6 +4650,9 @@ class AlertDelete(DeleteView):
def get_object(self, *args, **kwargs): def get_object(self, *args, **kwargs):
obj = super(AlertDelete, self).get_object(*args, **kwargs) obj = super(AlertDelete, self).get_object(*args, **kwargs)
if obj.manager != self.request.user:
raise PermissionDenied("You are not allowed to delete this Alert")
# some checks # some checks
return obj return obj
+1 -1
View File
@@ -60,7 +60,7 @@ from rowers.forms import (
MetricsForm,DisqualificationForm,disqualificationreasons, MetricsForm,DisqualificationForm,disqualificationreasons,
disqualifiers,SearchForm,BillingForm,PlanSelectForm, disqualifiers,SearchForm,BillingForm,PlanSelectForm,
VideoAnalysisCreateForm,WorkoutSingleSelectForm, VideoAnalysisCreateForm,WorkoutSingleSelectForm,
VideoAnalysisMetricsForm, VideoAnalysisMetricsForm,SurveyForm,
) )
from django.urls import reverse, reverse_lazy from django.urls import reverse, reverse_lazy
+25
View File
@@ -5,6 +5,31 @@ from __future__ import unicode_literals
from rowers.views.statements import * from rowers.views.statements import *
@login_required()
def survey(request):
r = getrower(request.user)
surveyform = SurveyForm()
if request.method == 'POST':
form = SurveyForm(request.POST)
r.surveydone = True
r.surveydonedate = timezone.now()
r.save()
nexturl = request.GET.get('next')
return HttpResponseRedirect(nexturl)
context = {
'teams':get_my_teams(request.user),
'rower':r,
'form':surveyform,
}
return render(request,'survey.html',context)
@login_required() @login_required()
def start_trial_view(request): def start_trial_view(request):
r = getrower(request.user) r = getrower(request.user)
+48 -12
View File
@@ -456,18 +456,54 @@ def workout_forcecurve_view(request,id=0,workstrokesonly=False):
'teams':get_my_teams(request.user), 'teams':get_my_teams(request.user),
}) })
# Test asynchronous tasking and messaging # Switch from GPS to Impeller (only for SpeedCoach 2, if impeller data)
#@login_required() @login_required
#def workout_test_task_view(request,id=0): def otw_use_impeller(request,id=0):
# row = Workout.objects.get(id=id) w = get_workout(id)
# res = myqueue(queuehigh,addcomment2,request.user.id,row.id)#
# if (checkworkoutuser(request.user,w)==False):
# raise PermissionDenied("Access denied")
# url = reverse('workout_edit_view',
# kwargs = { row = rdata(w.csvfilename)
# 'id':int(id), success = row.use_impellerdata()
# }) if success:
# return HttpResponseRedirect(url) row.write_csv(w.csvfilename)
dataprep.update_strokedata(w.id,row.df)
w.impeller = True
w.save()
messages.info(request,'The distance and speed data are now based on Impeller data')
else:
messages.error(request,'No impeller data found')
url = reverse('workout_edit_view',kwargs={'id':encoder.encode_hex(w.id)})
return HttpResponseRedirect(url)
# Switch from Impeller to GPS (only for SpeedCoach 2, if impeller data)
@login_required
def otw_use_gps(request,id=0):
w = get_workout(id)
if (checkworkoutuser(request.user,w)==False):
raise PermissionDenied("Access denied")
row = rdata(w.csvfilename)
success = row.use_gpsdata()
if success:
row.write_csv(w.csvfilename)
dataprep.update_strokedata(w.id,row.df)
w.impeller = False
w.save()
messages.info(request,'The distance and speed data are now based on GPS data')
else:
messages.error(request,'No GPS data found')
url = reverse('workout_edit_view',kwargs={'id':encoder.encode_hex(w.id)})
return HttpResponseRedirect(url)
# Show Stroke power histogram for a workout # Show Stroke power histogram for a workout
@login_required() @login_required()
+1
View File
@@ -97,6 +97,7 @@ MIDDLEWARE = [
'django.contrib.messages.middleware.MessageMiddleware', 'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware',
'tz_detect.middleware.TimezoneMiddleware', 'tz_detect.middleware.TimezoneMiddleware',
'rowers.middleware.SurveyMiddleWare',
'rowers.middleware.GDPRMiddleWare', 'rowers.middleware.GDPRMiddleWare',
'rowers.middleware.PowerTimeFitnessMetricMiddleWare', 'rowers.middleware.PowerTimeFitnessMetricMiddleWare',
'rowers.middleware.RowerPlanMiddleWare', 'rowers.middleware.RowerPlanMiddleWare',
+6
View File
@@ -43,6 +43,7 @@
<link rel="stylesheet" href="/static/css/resetnew.css" /> <link rel="stylesheet" href="/static/css/resetnew.css" />
<link rel="stylesheet" href="/static/fontawesome/css/fontawesome.min.css"> <link rel="stylesheet" href="/static/fontawesome/css/fontawesome.min.css">
<link rel="stylesheet" href="/static/fontawesome/css/all.min.css"> <link rel="stylesheet" href="/static/fontawesome/css/all.min.css">
<link rel="stylesheet" href="https://pro.fontawesome.com/releases/v5.12.0/css/all.css" integrity="sha384-ekOryaXPbeCpWQNxMwSWVvQ0+1VrStoPJq54shlYhR8HzQgig1v5fas6YgOqLoKz" crossorigin="anonymous">
<link rel="stylesheet" href="/static/css/styles2.min.css"> <link rel="stylesheet" href="/static/css/styles2.min.css">
<link rel="stylesheet" href="/static/css/text2.css" /> <link rel="stylesheet" href="/static/css/text2.css" />
<link rel="stylesheet" href="/static/css/rowsandall2.min.css" /> <link rel="stylesheet" href="/static/css/rowsandall2.min.css" />
@@ -326,6 +327,11 @@
</p> </p>
{% endif %} {% endif %}
{% block ad %} {% block ad %}
<div class="site-announcement-box">
<div class="site-announcement-white">
<a href="https://wp.me/P8g86e-Bs">Please take 2 minutes to fill out the survey!</a>
</div>
</div>
<div id="id_blogs"> <div id="id_blogs">
</div> </div>
<a href="https://pryglrowing.com"> <a href="https://pryglrowing.com">