diff --git a/rowers/forms.py b/rowers/forms.py
index 3f2ab3ca..7b7f2cc4 100644
--- a/rowers/forms.py
+++ b/rowers/forms.py
@@ -11,6 +11,7 @@ from django.forms import ModelForm
import dataprep
import types
import datetime
+from django.forms import formset_factory
# login form
class LoginForm(forms.Form):
@@ -128,6 +129,25 @@ class WorkFlowMiddlePanelForm(forms.Form):
panels = defaultmiddle
super(WorkFlowMiddlePanelForm,self).__init__(*args, **kwargs)
+
+class WorkFlowLeftPanelElement(forms.Form):
+ panelchoices = tuple(list(workflowleftpanel)+[('None','None')])
+
+ panel = forms.ChoiceField(
+ label='',
+ choices=panelchoices,
+ initial='None',
+ )
+
+class WorkFlowMiddlePanelElement(forms.Form):
+ panelchoices = tuple(list(workflowmiddlepanel)+[('None','None')])
+
+ panel = forms.ChoiceField(
+ label='',
+ choices=panelchoices,
+ initial='None',
+ )
+
# The form to indicate additional actions to be performed immediately
# after a successful upload
diff --git a/rowers/templates/workflow.html b/rowers/templates/workflow.html
index ebd65dd1..01a0d55c 100644
--- a/rowers/templates/workflow.html
+++ b/rowers/templates/workflow.html
@@ -33,7 +33,7 @@
{% block left_panel %}
{% for templateName in leftTemplates %}
diff --git a/rowers/templates/workflowconfig2.html b/rowers/templates/workflowconfig2.html
new file mode 100644
index 00000000..86b1e7f5
--- /dev/null
+++ b/rowers/templates/workflowconfig2.html
@@ -0,0 +1,54 @@
+{% extends "base.html" %}
+
+{% block title %}Change Rower Export Settings{% endblock %}
+
+{% block content %}
+
+
+
+
+
+
+ {% if workoutid %}
+
+ {% endif %}
+
+
Workflow Page Configuration
+
On this page, you can configure the content of your "Workflow" page
+ for each workout. If you want to remove an element, change it to "None".
+ You can add one new element at a time.
+
+
+
+
+
+
+
+
+
+
+{% endblock %}
diff --git a/rowers/urls.py b/rowers/urls.py
index 2331bc34..1691e9ae 100644
--- a/rowers/urls.py
+++ b/rowers/urls.py
@@ -313,6 +313,7 @@ urlpatterns = [
url(r'^me/c2refresh/$',views.rower_c2_token_refresh),
url(r'^me/favoritecharts/$',views.rower_favoritecharts_view),
url(r'^me/workflowconfig$',views.workout_workflow_config_view),
+ url(r'^me/workflowconfig2$',views.workout_workflow_config2_view),
url(r'^email/send/$', views.sendmail),
url(r'^email/thankyou/$', TemplateView.as_view(template_name='thankyou.html'), name='thankyou'),
url(r'^email/$', TemplateView.as_view(template_name='email.html'), name='email'),
diff --git a/rowers/views.py b/rowers/views.py
index 3b84a33c..0faed633 100644
--- a/rowers/views.py
+++ b/rowers/views.py
@@ -23,6 +23,7 @@ from django.contrib.auth import authenticate, login, logout
from rowers.forms import (
LoginForm,DocumentsForm,UploadOptionsForm,
TeamUploadOptionsForm,WorkFlowLeftPanelForm,WorkFlowMiddlePanelForm,
+ WorkFlowLeftPanelElement,WorkFlowMiddlePanelElement,
)
from django.core.urlresolvers import reverse
from django.core.exceptions import PermissionDenied
@@ -5864,6 +5865,7 @@ def workout_workflow_config_view(request):
r = getrower(request.user)
+
if request.method == 'POST' and 'leftpanel' in request.POST:
formleft = WorkFlowLeftPanelForm(request.POST)
if formleft.is_valid():
@@ -5877,20 +5879,99 @@ def workout_workflow_config_view(request):
r.workflowmiddlepanel = middlepanel
r.save()
+
formleft = WorkFlowLeftPanelForm(instance=r)
formmiddle = WorkFlowMiddlePanelForm(instance=r)
-
- # Add processing of POST data
+ tmplt = 'workflowconfig.html'
- return render(request,'workflowconfig.html',
+
+ return render(request,tmplt,
{
'rower':r,
'formleft':formleft,
'formmiddle':formmiddle,
'workoutid': workoutid,
})
+
+@login_required()
+def workout_workflow_config2_view(request):
+ request.session['referer'] = absolute(request)['PATH']
+ request.session[translation.LANGUAGE_SESSION_KEY] = USER_LANGUAGE
+ try:
+ workoutid = request.session['lastworkout']
+ except KeyError:
+ workoutid = 0
+
+
+ r = getrower(request.user)
+
+ MiddlePanelFormSet = formset_factory(WorkFlowMiddlePanelElement,extra=1)
+ LeftPanelFormSet = formset_factory(WorkFlowLeftPanelElement,extra=1)
+
+ if request.method == 'POST':
+ wasmiddle = [1 for key,value in request.POST.items() if 'middlepanel' in key.lower()]
+ wasleft = [1 for key,valye in request.POST.items() if 'leftpanel' in key.lower()]
+ if wasmiddle:
+ middlepanel_formset = MiddlePanelFormSet(request.POST,
+ prefix='middlepanel')
+ newmiddlepanel = []
+ if middlepanel_formset.is_valid():
+ for form in middlepanel_formset:
+ value = form.cleaned_data.get('panel')
+ if value != 'None':
+ newmiddlepanel.append(value)
+
+
+ newmiddlepanel = [i for i in newmiddlepanel if i != None]
+ r.workflowmiddlepanel = newmiddlepanel
+ try:
+ r.save()
+ except IntegrityError:
+ messages.error(request,'Something went wrong')
+ if wasleft:
+ leftpanel_formset = LeftPanelFormSet(request.POST,
+ prefix='leftpanel')
+ newleftpanel = []
+ if leftpanel_formset.is_valid():
+ for form in leftpanel_formset:
+ value = form.cleaned_data.get('panel')
+ if value != 'None':
+ newleftpanel.append(value)
+
+
+ newleftpanel = [i for i in newleftpanel if i != None]
+ r.workflowleftpanel = newleftpanel
+ try:
+ r.save()
+ except IntegrityError:
+ messages.error(request,'Something went wrong')
+
+ leftpanelform_data = [{'panel':panel}
+ for panel in r.workflowleftpanel]
+
+
+ middlepanelform_data = [{'panel':panel}
+ for panel in r.workflowmiddlepanel]
+
+ leftpanel_formset = LeftPanelFormSet(initial=leftpanelform_data,
+ prefix='leftpanel')
+ middlepanel_formset = MiddlePanelFormSet(initial=middlepanelform_data,
+ prefix='middlepanel')
+
+
+ tmplt = 'workflowconfig2.html'
+
+ return render(request,tmplt,
+ {
+ 'rower':r,
+ 'leftpanel_formset':leftpanel_formset,
+ 'middlepanel_formset':middlepanel_formset,
+ 'workoutid': workoutid,
+ })
+
+
# Workflow View
@login_required()
def workout_workflow_view(request,id):