Merge branch 'feature/simpleworkflow' into develop
This commit is contained in:
@@ -11,6 +11,7 @@ from django.forms import ModelForm
|
|||||||
import dataprep
|
import dataprep
|
||||||
import types
|
import types
|
||||||
import datetime
|
import datetime
|
||||||
|
from django.forms import formset_factory
|
||||||
|
|
||||||
# login form
|
# login form
|
||||||
class LoginForm(forms.Form):
|
class LoginForm(forms.Form):
|
||||||
@@ -129,6 +130,25 @@ class WorkFlowMiddlePanelForm(forms.Form):
|
|||||||
|
|
||||||
super(WorkFlowMiddlePanelForm,self).__init__(*args, **kwargs)
|
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
|
# The form to indicate additional actions to be performed immediately
|
||||||
# after a successful upload
|
# after a successful upload
|
||||||
class UploadOptionsForm(forms.Form):
|
class UploadOptionsForm(forms.Form):
|
||||||
|
|||||||
@@ -33,7 +33,7 @@
|
|||||||
{% block left_panel %}
|
{% block left_panel %}
|
||||||
<div class="grid_2 alpha">
|
<div class="grid_2 alpha">
|
||||||
<p>
|
<p>
|
||||||
<a class="button gray small" href="/rowers/me/workflowconfig">Configure this page</a>
|
<a class="button gray small" href="/rowers/me/workflowconfig2">Configure this page</a>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
{% for templateName in leftTemplates %}
|
{% for templateName in leftTemplates %}
|
||||||
|
|||||||
54
rowers/templates/workflowconfig2.html
Normal file
54
rowers/templates/workflowconfig2.html
Normal file
@@ -0,0 +1,54 @@
|
|||||||
|
{% extends "base.html" %}
|
||||||
|
|
||||||
|
{% block title %}Change Rower Export Settings{% endblock %}
|
||||||
|
|
||||||
|
{% block content %}
|
||||||
|
<script type="text/javascript" src="/static/js/reorderSelect.js"></script>
|
||||||
|
<script type="text/javascript" src="/static/admin/js/jquery.min.js"></script>
|
||||||
|
<script type="text/javascript" src="/static/admin/js/jquery.init.js"></script>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="grid_12 alpha">
|
||||||
|
{% if workoutid %}
|
||||||
|
<div class="grid_2 suffix_10 alpha">
|
||||||
|
<p>
|
||||||
|
<a class="button gray small" href="/rowers/workout/{{ workoutid }}/workflow">Return to Workout</a>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
<div class-"grid_12 alpha">
|
||||||
|
<h1>Workflow Page Configuration</h1>
|
||||||
|
<p>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.</p>
|
||||||
|
<div class="grid_6 alpha">
|
||||||
|
<h2>Left Panel</h2>
|
||||||
|
<form enctype="multipart/form-data" action="" method="post">
|
||||||
|
{{ leftpanel_formset.management_form }}
|
||||||
|
<table>
|
||||||
|
{{ leftpanel_formset.as_table }}
|
||||||
|
</table>
|
||||||
|
{% csrf_token %}
|
||||||
|
<input class="grid_2 alpha button green" type="submit" value="Save">
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="grid_6 omega ">
|
||||||
|
<h2>Middle Panel</h2>
|
||||||
|
<form enctype="multipart/form-data" action="" method="post">
|
||||||
|
{{ middlepanel_formset.management_form }}
|
||||||
|
<table>
|
||||||
|
{{ middlepanel_formset.as_table }}
|
||||||
|
</table>
|
||||||
|
{% csrf_token %}
|
||||||
|
<input class="grid_2 alpha button green" type="submit" value="Save">
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
{% endblock %}
|
||||||
@@ -313,6 +313,7 @@ urlpatterns = [
|
|||||||
url(r'^me/c2refresh/$',views.rower_c2_token_refresh),
|
url(r'^me/c2refresh/$',views.rower_c2_token_refresh),
|
||||||
url(r'^me/favoritecharts/$',views.rower_favoritecharts_view),
|
url(r'^me/favoritecharts/$',views.rower_favoritecharts_view),
|
||||||
url(r'^me/workflowconfig$',views.workout_workflow_config_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/send/$', views.sendmail),
|
||||||
url(r'^email/thankyou/$', TemplateView.as_view(template_name='thankyou.html'), name='thankyou'),
|
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'),
|
url(r'^email/$', TemplateView.as_view(template_name='email.html'), name='email'),
|
||||||
|
|||||||
@@ -23,6 +23,7 @@ from django.contrib.auth import authenticate, login, logout
|
|||||||
from rowers.forms import (
|
from rowers.forms import (
|
||||||
LoginForm,DocumentsForm,UploadOptionsForm,
|
LoginForm,DocumentsForm,UploadOptionsForm,
|
||||||
TeamUploadOptionsForm,WorkFlowLeftPanelForm,WorkFlowMiddlePanelForm,
|
TeamUploadOptionsForm,WorkFlowLeftPanelForm,WorkFlowMiddlePanelForm,
|
||||||
|
WorkFlowLeftPanelElement,WorkFlowMiddlePanelElement,
|
||||||
)
|
)
|
||||||
from django.core.urlresolvers import reverse
|
from django.core.urlresolvers import reverse
|
||||||
from django.core.exceptions import PermissionDenied
|
from django.core.exceptions import PermissionDenied
|
||||||
@@ -5864,6 +5865,7 @@ def workout_workflow_config_view(request):
|
|||||||
|
|
||||||
|
|
||||||
r = getrower(request.user)
|
r = getrower(request.user)
|
||||||
|
|
||||||
if request.method == 'POST' and 'leftpanel' in request.POST:
|
if request.method == 'POST' and 'leftpanel' in request.POST:
|
||||||
formleft = WorkFlowLeftPanelForm(request.POST)
|
formleft = WorkFlowLeftPanelForm(request.POST)
|
||||||
if formleft.is_valid():
|
if formleft.is_valid():
|
||||||
@@ -5877,13 +5879,14 @@ def workout_workflow_config_view(request):
|
|||||||
r.workflowmiddlepanel = middlepanel
|
r.workflowmiddlepanel = middlepanel
|
||||||
r.save()
|
r.save()
|
||||||
|
|
||||||
|
|
||||||
formleft = WorkFlowLeftPanelForm(instance=r)
|
formleft = WorkFlowLeftPanelForm(instance=r)
|
||||||
formmiddle = WorkFlowMiddlePanelForm(instance=r)
|
formmiddle = WorkFlowMiddlePanelForm(instance=r)
|
||||||
|
|
||||||
|
tmplt = 'workflowconfig.html'
|
||||||
|
|
||||||
# Add processing of POST data
|
|
||||||
|
|
||||||
return render(request,'workflowconfig.html',
|
return render(request,tmplt,
|
||||||
{
|
{
|
||||||
'rower':r,
|
'rower':r,
|
||||||
'formleft':formleft,
|
'formleft':formleft,
|
||||||
@@ -5891,6 +5894,84 @@ def workout_workflow_config_view(request):
|
|||||||
'workoutid': workoutid,
|
'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
|
# Workflow View
|
||||||
@login_required()
|
@login_required()
|
||||||
def workout_workflow_view(request,id):
|
def workout_workflow_view(request,id):
|
||||||
|
|||||||
Reference in New Issue
Block a user