Private
Public Access
1
0

alternative panel config form

This commit is contained in:
Sander Roosendaal
2017-10-18 23:41:56 +02:00
parent 456e667432
commit a9d84c4961
4 changed files with 153 additions and 3 deletions

View File

@@ -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

View File

@@ -0,0 +1,76 @@
{% 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>
{{ formmiddle.media }}
<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>
<div class="grid_6 alpha">
<h2>Left Panel</h2>
<p>
{{ leftpanel_formset.management_form }}
</p>
<form enctype="multipart/form-data" action="" method="post">
{% for leftpanel_form in leftpanel_formset %}
<div class="leftpanel-formset grid_5 alpha">
<table>
{{ leftpanel_form.as_table }}
</table>
</div>
{% endfor %}
{% csrf_token %}
<input class="grid_2 alpha button green" type="submit" value="Save">
</form>
</div>
<div class="grid_6 omega ">
<h2>Middle Panel</h2>
<p>
{{ middlepanel_formset.management_form }}
</p>
<form enctype="multipart/form-data" action="" method="post">
{% for middlepanel_form in middlepanel_formset %}
<div class="middlepanel-formset grid_5 alpha">
<table>
{{ middlepanel_form.as_table }}
</table>
</div>
{% endfor %}
{% csrf_token %}
<input class="grid_2 alpha button green" type="submit" value="Save">
</form>
</div>
</div>
</div>
<!-- Include formset plugin - including jQuery dependency -->
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<script src="/static/js/jquery.formset.js"></script>
<script>
$('.leftpanel-formset').formset({
addText: '<div class="button grid_2 green small">add element</div>',
deleteText: '<div class="button grid_2 red small">remove</div>'
});
$('.middlepanel-formset').formset({
addText: '<div class="button grid_2 green small">add element</div>',
deleteText: '<div class="button grid_2 red small">remove</div>'
});
</script>
{% endblock %}

View File

@@ -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'),

View File

@@ -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,71 @@ 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)
leftpanelform_data = [{'panel':panel}
for panel in r.workflowleftpanel]
LeftPanelFormSet = formset_factory(WorkFlowLeftPanelElement,extra=0)
middlepanelform_data = [{'panel':panel}
for panel in r.workflowmiddlepanel]
MiddlePanelFormSet = formset_factory(WorkFlowMiddlePanelElement,extra=0)
if request.method == 'POST' and 'leftpanel' in request.POST:
formleft = WorkFlowLeftPanelSimpleForm(request.POST)
if formleft.is_valid():
leftpanel = formleft.cleaned_data['leftpanel']
r.workflowleftpanel = leftpanel
r.save()
if request.method == 'POST' and 'middlepanel' in request.POST:
formmiddle = WorkFlowMiddlePanelSimpleForm(request.POST)
if formmiddle.is_valid():
middlepanel = formmiddle.cleaned_data['middlepanel']
r.workflowmiddlepanel = middlepanel
r.save()
leftpanel_formset = LeftPanelFormSet(initial=leftpanelform_data)
middlepanel_formset = MiddlePanelFormSet(initial=middlepanelform_data)
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):