Private
Public Access
1
0

Merge branch 'feature/landingpage' into develop

This commit is contained in:
Sander Roosendaal
2017-10-22 11:34:19 +02:00
8 changed files with 710 additions and 695 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -12,6 +12,7 @@ import dataprep
import types import types
import datetime import datetime
from django.forms import formset_factory from django.forms import formset_factory
from utils import landingpages
# login form # login form
class LoginForm(forms.Form): class LoginForm(forms.Form):
@@ -180,6 +181,10 @@ class UploadOptionsForm(forms.Form):
makeprivate = forms.BooleanField(initial=False,required=False, makeprivate = forms.BooleanField(initial=False,required=False,
label='Make Workout Private') label='Make Workout Private')
landingpage = forms.ChoiceField(choices=landingpages,
initial='workout_edit_view',
label='Landing Page')
class Meta: class Meta:
fields = ['make_plot','plottype','upload_toc2','makeprivate'] fields = ['make_plot','plottype','upload_toc2','makeprivate']

View File

@@ -198,7 +198,7 @@ class TeamRequest(models.Model):
from utils import ( from utils import (
workflowleftpanel,workflowmiddlepanel, workflowleftpanel,workflowmiddlepanel,
defaultleft,defaultmiddle defaultleft,defaultmiddle,landingpages
) )
# Extension of User with rowing specific data # Extension of User with rowing specific data
@@ -281,8 +281,10 @@ class Rower(models.Model):
# Site Settings # Site Settings
workflowleftpanel = TemplateListField(default=defaultleft) workflowleftpanel = TemplateListField(default=defaultleft)
workflowmiddlepanel = TemplateListField(default=defaultmiddle) workflowmiddlepanel = TemplateListField(default=defaultmiddle)
defaultlandingpage = models.CharField(default='workout_edit_view',
max_length=200,
choices=landingpages)
# Access tokens # Access tokens
c2token = models.CharField(default='',max_length=200,blank=True,null=True) c2token = models.CharField(default='',max_length=200,blank=True,null=True)
@@ -889,7 +891,8 @@ class AccountRowerForm(ModelForm):
class Meta: class Meta:
model = Rower model = Rower
fields = ['weightcategory','getemailnotifications', fields = ['weightcategory','getemailnotifications',
'defaulttimezone','showfavoritechartnotes'] 'defaulttimezone','showfavoritechartnotes',
'defaultlandingpage']
class UserForm(ModelForm): class UserForm(ModelForm):
class Meta: class Meta:

View File

@@ -38,23 +38,10 @@
You can select one static plot to be generated immediately for You can select one static plot to be generated immediately for
this workout. You can select to export to major fitness this workout. You can select to export to major fitness
platforms automatically. platforms automatically.
If you check "make private", this workout will not be visible to your followers and will not show up in your teams' workouts list. If you check "make private", this workout will not be visible to your followers and will not show up in your teams' workouts list. With the Landing Page option, you can select to which (workout related) page you will be
taken after a successfull upload.
</p> </p>
<p>
Valid file types are:
<ul>
<li>Painsled iOS Stroke Export (CSV)</li>
<li>Painsled desktop version Stroke Export (CSV)</li>
<li>A TCX file with location data (lat,long) - with or without Heart Rate value, for example from RiM or CrewNerd</li>
<li>RowPro CSV export</li>
<li>SpeedCoach GPS and SpeedCoach GPS 2 CSV export</li>
<li>ErgData CSV export</li>
<li>ErgStick CSV export</li>
<li>BoatCoach CSV export</li>
<li>A FIT file with location data (experimental)</li>
</ul>
</p>
</div> </div>

View File

@@ -84,9 +84,9 @@
[RANKING PIECE] [RANKING PIECE]
{% endif %} {% endif %}
{% if workout.name != '' %} {% if workout.name != '' %}
<a href="/rowers/workout/{{ workout.id }}/edit">{{ workout.name }}</a> </td> <a href={% url rower.defaultlandingpage id=workout.id %}>{{ workout.name }}</a> </td>
{% else %} {% else %}
<a href="/rowers/workout/{{ workout.id }}/edit">No Name</a> </td> <a href={% url rower.defaultlandingpage id=workout.id %}>No Name</a> </td>
{% endif %} {% endif %}
{% else %} {% else %}
{% if workout.name != '' %} {% if workout.name != '' %}

View File

@@ -191,7 +191,8 @@ urlpatterns = [
url(r'^workout/compare/(?P<id>\d+)/$',views.workout_comparison_list), url(r'^workout/compare/(?P<id>\d+)/$',views.workout_comparison_list),
url(r'^workout/compare2/(?P<id1>\d+)/(?P<id2>\d+)/(?P<xparam>\w+.*)/(?P<yparam>\w+.*)/$',views.workout_comparison_view), url(r'^workout/compare2/(?P<id1>\d+)/(?P<id2>\d+)/(?P<xparam>\w+.*)/(?P<yparam>\w+.*)/$',views.workout_comparison_view),
url(r'^workout/compare/(?P<id>\d+)/(?P<startdatestring>\d+-\d+-\d+)/(?P<enddatestring>\w+.*)$',views.workout_comparison_list), url(r'^workout/compare/(?P<id>\d+)/(?P<startdatestring>\d+-\d+-\d+)/(?P<enddatestring>\w+.*)$',views.workout_comparison_list),
url(r'^workout/(?P<id>\d+)/edit$',views.workout_edit_view), url(r'^workout/(?P<id>\d+)/edit$',views.workout_edit_view,
name='workout_edit_view'),
url(r'^workout/(?P<id>\d+)/navionics$',views.workout_edit_view_navionics), url(r'^workout/(?P<id>\d+)/navionics$',views.workout_edit_view_navionics),
url(r'^workout/(?P<id>\d+)/map$',views.workout_map_view), url(r'^workout/(?P<id>\d+)/map$',views.workout_map_view),
url(r'^workout/(?P<id>\d+)/setprivate$',views.workout_setprivate_view), url(r'^workout/(?P<id>\d+)/setprivate$',views.workout_setprivate_view),
@@ -329,7 +330,8 @@ urlpatterns = [
url(r'^legal', TemplateView.as_view(template_name='legal.html'),name='legal'), url(r'^legal', TemplateView.as_view(template_name='legal.html'),name='legal'),
url(r'^register$',views.rower_register_view), url(r'^register$',views.rower_register_view),
url(r'^register/thankyou/$', TemplateView.as_view(template_name='registerthankyou.html'), name='registerthankyou'), url(r'^register/thankyou/$', TemplateView.as_view(template_name='registerthankyou.html'), name='registerthankyou'),
url(r'^workout/(?P<id>\d+)/workflow$',views.workout_workflow_view), url(r'^workout/(?P<id>\d+)/workflow$',views.workout_workflow_view,
name='workout_workflow_view'),
url(r'^workout/(?P<id>\d+)/flexchart/(?P<xparam>\w+.*)/(?P<yparam1>\w+.*)/(?P<yparam2>\w+.*)/(?P<plottype>\w+)/$',views.workout_flexchart3_view), url(r'^workout/(?P<id>\d+)/flexchart/(?P<xparam>\w+.*)/(?P<yparam1>\w+.*)/(?P<yparam2>\w+.*)/(?P<plottype>\w+)/$',views.workout_flexchart3_view),
url(r'^workout/(?P<id>\d+)/flexchart/(?P<xparam>\w+.*)/(?P<yparam1>\w+.*)/(?P<yparam2>\w+.*)/(?P<plottype>\w+.*)$',views.workout_flexchart3_view), url(r'^workout/(?P<id>\d+)/flexchart/(?P<xparam>\w+.*)/(?P<yparam1>\w+.*)/(?P<yparam2>\w+.*)/(?P<plottype>\w+.*)$',views.workout_flexchart3_view),
url(r'^workout/(?P<id>\d+)/flexchart/(?P<xparam>\w+.*)/(?P<yparam1>\w+.*)/(?P<yparam2>\w+.*)$',views.workout_flexchart3_view), url(r'^workout/(?P<id>\d+)/flexchart/(?P<xparam>\w+.*)/(?P<yparam1>\w+.*)/(?P<yparam2>\w+.*)$',views.workout_flexchart3_view),

View File

@@ -5,6 +5,12 @@ import colorsys
lbstoN = 4.44822 lbstoN = 4.44822
landingpages = (
('workout_edit_view','Edit View'),
('workout_workflow_view','Workflow View'),
)
workflowmiddlepanel = ( workflowmiddlepanel = (
('panel_statcharts.html','Static Charts'), ('panel_statcharts.html','Static Charts'),
('flexthumbnails.html','Flex Charts'), ('flexthumbnails.html','Flex Charts'),

View File

@@ -4454,6 +4454,7 @@ def workouts_view(request,message='',successmessage='',
return render(request, 'list_workouts.html', return render(request, 'list_workouts.html',
{'workouts': workouts, {'workouts': workouts,
'rower':r,
'dateform':dateform, 'dateform':dateform,
'startdate':startdate, 'startdate':startdate,
'enddate':enddate, 'enddate':enddate,
@@ -7587,13 +7588,17 @@ def workout_upload_view(request,
'make_plot':False, 'make_plot':False,
'upload_to_C2':False, 'upload_to_C2':False,
'plottype':'timeplot', 'plottype':'timeplot',
'landingpage':'workout_edit_view',
}, },
docformoptions={ docformoptions={
'workouttype':'rower', 'workouttype':'rower',
}): }):
r = getrower(request.user)
if 'uploadoptions' in request.session: if 'uploadoptions' in request.session:
uploadoptions = request.session['uploadoptions'] uploadoptions = request.session['uploadoptions']
uploadoptions['landingpage'] = r.defaultlandingpage
else: else:
request.session['uploadoptions'] = uploadoptions request.session['uploadoptions'] = uploadoptions
@@ -7622,36 +7627,40 @@ def workout_upload_view(request,
plottype = 'timeplot' plottype = 'timeplot'
try: try:
upload_toc2 = uploadoptions['upload_to_C2'] landingpage = uploadoptions['landingpage']
except KeyError: except KeyError:
upload_toc2 = False landingpage = r.defaultlandingpage
try: try:
upload_tostrava = uploadoptions['upload_to_Strava'] upload_to_c2 = uploadoptions['upload_to_C2']
except KeyError: except KeyError:
upload_tostrava = False upload_to_c2 = False
try: try:
upload_tost = uploadoptions['upload_to_SportTracks'] upload_to_strava = uploadoptions['upload_to_Strava']
except KeyError: except KeyError:
upload_tost = False upload_to_strava = False
try: try:
upload_tork = uploadoptions['upload_to_RunKeeper'] upload_to_st = uploadoptions['upload_to_SportTracks']
except KeyError: except KeyError:
upload_tork = False upload_to_st = False
try: try:
upload_toua = uploadoptions['upload_to_MapMyFitness'] upload_to_rk = uploadoptions['upload_to_RunKeeper']
except KeyError: except KeyError:
upload_toua = False upload_to_rk = False
try: try:
upload_totp = uploadoptions['upload_to_TrainingPeaks'] upload_to_ua = uploadoptions['upload_to_MapMyFitness']
except KeyError: except KeyError:
upload_totp = False upload_to_ua = False
try:
upload_to_tp = uploadoptions['upload_to_TrainingPeaks']
except KeyError:
upload_to_tp = False
r = getrower(request.user)
if request.method == 'POST': if request.method == 'POST':
form = DocumentsForm(request.POST,request.FILES) form = DocumentsForm(request.POST,request.FILES)
optionsform = UploadOptionsForm(request.POST) optionsform = UploadOptionsForm(request.POST)
@@ -7676,6 +7685,7 @@ def workout_upload_view(request,
upload_to_ua = optionsform.cleaned_data['upload_to_MapMyFitness'] upload_to_ua = optionsform.cleaned_data['upload_to_MapMyFitness']
upload_to_tp = optionsform.cleaned_data['upload_to_TrainingPeaks'] upload_to_tp = optionsform.cleaned_data['upload_to_TrainingPeaks']
makeprivate = optionsform.cleaned_data['makeprivate'] makeprivate = optionsform.cleaned_data['makeprivate']
landingpage = optionsform.cleaned_data['landingpage']
uploadoptions = { uploadoptions = {
'makeprivate':makeprivate, 'makeprivate':makeprivate,
@@ -7687,6 +7697,7 @@ def workout_upload_view(request,
'upload_to_RunKeeper':upload_to_rk, 'upload_to_RunKeeper':upload_to_rk,
'upload_to_MapMyFitness':upload_to_ua, 'upload_to_MapMyFitness':upload_to_ua,
'upload_to_TrainingPeaks':upload_to_tp, 'upload_to_TrainingPeaks':upload_to_tp,
'landingpage':r.defaultlandingpage,
} }
@@ -7809,8 +7820,8 @@ def workout_upload_view(request,
messages.info(request,message) messages.info(request,message)
else: else:
messages.error(request,message) messages.error(request,message)
url = reverse(workout_edit_view, url = reverse(landingpage,
kwargs = { kwargs = {
'id':w.id, 'id':w.id,
}) })
@@ -8778,6 +8789,7 @@ def rower_edit_view(request,message=""):
first_name = ucd['first_name'] first_name = ucd['first_name']
last_name = ucd['last_name'] last_name = ucd['last_name']
email = ucd['email'] email = ucd['email']
defaultlandingpage = cd['defaultlandingpage']
weightcategory = cd['weightcategory'] weightcategory = cd['weightcategory']
getemailnotifications = cd['getemailnotifications'] getemailnotifications = cd['getemailnotifications']
defaulttimezone=cd['defaulttimezone'] defaulttimezone=cd['defaulttimezone']
@@ -8794,6 +8806,7 @@ def rower_edit_view(request,message=""):
r.defaulttimezone=defaulttimezone r.defaulttimezone=defaulttimezone
r.weightcategory = weightcategory r.weightcategory = weightcategory
r.getemailnotifications = getemailnotifications r.getemailnotifications = getemailnotifications
r.defaultlandingpage = defaultlandingpage
r.save() r.save()
form = RowerForm(instance=r) form = RowerForm(instance=r)
powerform = RowerPowerForm(instance=r) powerform = RowerPowerForm(instance=r)