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

View File

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

View File

@@ -38,23 +38,10 @@
You can select one static plot to be generated immediately for
this workout. You can select to export to major fitness
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>
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>

View File

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

View File

@@ -191,7 +191,8 @@ urlpatterns = [
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/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+)/map$',views.workout_map_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'^register$',views.rower_register_view),
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+.*)$',views.workout_flexchart3_view),

View File

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

View File

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