workflow config form working
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
from django import forms
|
||||
from django.contrib.admin.widgets import FilteredSelectMultiple
|
||||
from rowers.models import Workout
|
||||
from rowers.rows import validate_file_extension,must_be_csv
|
||||
from django.contrib.auth.forms import UserCreationForm
|
||||
@@ -58,37 +59,72 @@ class DocumentsForm(forms.Form):
|
||||
fields = ['title','file','workouttype','fileformat']
|
||||
|
||||
from utils import workflowleftpanel,workflowmiddlepanel
|
||||
|
||||
defaultleft = [p[0] for p in workflowleftpanel]
|
||||
defaultmiddle = [p[0] for p in workflowmiddlepanel]
|
||||
|
||||
# Form to change Workflow page layout
|
||||
class WorkFlowLeftPanelForm(forms.Form):
|
||||
panels = ['panel_editbuttons.html','panel_stats.html','panel_staticchart.html']
|
||||
leftpanel = forms.MultipleChoiceField(label='Left Panel',
|
||||
choices=workflowleftpanel,
|
||||
initial=panels)
|
||||
panels = defaultleft
|
||||
|
||||
leftpanel = forms.MultipleChoiceField(
|
||||
label='',
|
||||
choices=workflowleftpanel,
|
||||
initial=panels,
|
||||
widget=FilteredSelectMultiple(
|
||||
('elements'),
|
||||
False
|
||||
)
|
||||
)
|
||||
|
||||
class Media:
|
||||
css = {
|
||||
'all':['admin/css/widgets.css',]
|
||||
# 'css/uid-manage-form.css'],
|
||||
}
|
||||
js = ['/admin/jsi18n/']
|
||||
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
if 'instance' in kwargs:
|
||||
r = kwargs.pop('instance')
|
||||
panels = r.workflowleftpanel
|
||||
self.base_fields['leftpanel'].initial=panels
|
||||
else:
|
||||
panels = ['panel_editbuttons.html','panel_stats.html','panel_staticchart.html']
|
||||
panels = defaultleft
|
||||
|
||||
|
||||
super(WorkFlowLeftPanelForm,self).__init__(*args, **kwargs)
|
||||
|
||||
|
||||
class WorkFlowMiddlePanelForm(forms.Form):
|
||||
panels = ['panel_statcharts.html',
|
||||
'flexthumbnails.html',
|
||||
'panel_summary.html']
|
||||
panels = defaultmiddle
|
||||
|
||||
|
||||
middlepanel = forms.MultipleChoiceField(
|
||||
label='',
|
||||
choices=workflowmiddlepanel,
|
||||
initial=panels,
|
||||
widget=FilteredSelectMultiple(
|
||||
('elements'),
|
||||
False
|
||||
)
|
||||
)
|
||||
|
||||
class Media:
|
||||
css = {
|
||||
'all':['admin/css/widgets.css',]
|
||||
# 'css/uid-manage-form.css'],
|
||||
}
|
||||
js = ['/admin/jsi18n/']
|
||||
|
||||
middlepanel = forms.MultipleChoiceField(label='Middle Panel',
|
||||
choices=workflowmiddlepanel,
|
||||
initial=panels)
|
||||
def __init__(self, *args, **kwargs):
|
||||
if 'instance' in kwargs:
|
||||
r = kwargs.pop('instance')
|
||||
panels = r.workflowleftpanel
|
||||
panels = r.workflowmiddlepanel
|
||||
self.base_fields['middlepanel'].initial=panels
|
||||
else:
|
||||
panels = ['panel_editbuttons.html','panel_stats.html','panel_staticchart.html']
|
||||
panels = defaultmiddle
|
||||
|
||||
super(WorkFlowMiddlePanelForm,self).__init__(*args, **kwargs)
|
||||
|
||||
|
||||
@@ -196,7 +196,11 @@ class TeamRequest(models.Model):
|
||||
issuedate = models.DateField(default=timezone.now)
|
||||
code = models.CharField(max_length=150,unique=True)
|
||||
|
||||
|
||||
from utils import workflowleftpanel,workflowmiddlepanel
|
||||
|
||||
defaultleft = [p[0] for p in workflowleftpanel]
|
||||
defaultmiddle = [p[0] for p in workflowmiddlepanel]
|
||||
|
||||
# Extension of User with rowing specific data
|
||||
class Rower(models.Model):
|
||||
weightcategories = (
|
||||
@@ -276,16 +280,9 @@ class Rower(models.Model):
|
||||
'Pwr AN'])
|
||||
|
||||
# Site Settings
|
||||
workflowleftpanel = TemplateListField(default=[
|
||||
'panel_statcharts.html',
|
||||
'flexthumbnails.html',
|
||||
'panel_summary.html'])
|
||||
workflowleftpanel = TemplateListField(default=defaultleft)
|
||||
|
||||
workflowmiddlepanel = TemplateListField(default=[
|
||||
'panel_editbuttons.html',
|
||||
'panel_stats.html',
|
||||
'panel_staticchart.html',
|
||||
])
|
||||
workflowmiddlepanel = TemplateListField(default=defaultmiddle)
|
||||
|
||||
# Access tokens
|
||||
c2token = models.CharField(default='',max_length=200,blank=True,null=True)
|
||||
|
||||
@@ -4,17 +4,16 @@
|
||||
|
||||
{% 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">
|
||||
<h1>Workflow Page Configuration</h1>
|
||||
<p>
|
||||
Here, you can configure which elements, and in which order, are visible on the Workflow page.
|
||||
</p>
|
||||
<p>
|
||||
Select the elements you want to have in each panel. You can select multiple by holding down Control while clicking on an item. Similarly, you can unselect one item by holding down Control while clicking. Use the arrows to change the order by moving selected items up, resp down. Press the Save button to store your configuration.
|
||||
</p>
|
||||
|
||||
<h2>Left Panel</h2>
|
||||
<form enctype="multipart/form-data" action="" method="post">
|
||||
<div class="grid_4 alpha">
|
||||
<div class="grid_11 alpha">
|
||||
<p>
|
||||
{% if formleft.errors %}
|
||||
<p style="color: red;">
|
||||
@@ -28,28 +27,45 @@
|
||||
{% csrf_token %}
|
||||
</p>
|
||||
</div>
|
||||
<div class="grid_2">
|
||||
<img src="/static/img/moveup.gif" alt="Move Up" onclick="moveUp('id_leftpanel')" onmouseover="style.cursor=pointer;" /><br />
|
||||
<img src="/static/img/movedn.gif" alt="Move Down" onclick="moveDown('id_leftpanel')" />
|
||||
<div class="grid_1 omega">
|
||||
<img src="/static/img/moveup.gif" alt="Move Up" onclick="moveUp('id_leftpanel_to')" style="cursor:pointer" /><br />
|
||||
<img src="/static/img/movedn.gif" alt="Move Down" onclick="moveDown('id_leftpanel_to')" style="cursor:pointer" />
|
||||
</div>
|
||||
<div class="grid_4">
|
||||
</div>
|
||||
|
||||
<div class="grid_12 alpha">
|
||||
<div class="grid_4 prefix_4 suffix_4">
|
||||
<input class="grid_4 button green" type="submit" value="Save">
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<div class="grid_12 alpha">
|
||||
<h2>Middle Panel</h2>
|
||||
<form enctype="multipart/form-data" action="" method="post">
|
||||
<div class="grid_11 alpha">
|
||||
<p>
|
||||
{% if formmiddle.errors %}
|
||||
<p style="color: red;">
|
||||
Please correct the error{{ formmiddle.errors|pluralize }} below.
|
||||
</p>
|
||||
{% endif %}
|
||||
|
||||
|
||||
<table>
|
||||
{{ formmiddle.as_table }}
|
||||
</table>
|
||||
{{ formmiddle.as_table }}
|
||||
</table>
|
||||
{% csrf_token %}
|
||||
</div>
|
||||
<div class="grid_2 omega">
|
||||
<img src="/static/img/moveup.gif" alt="Move Up" onclick="moveUp('id_middlepanel')" onmouseover="style.cursor=pointer;" /><br />
|
||||
<img src="/static/img/movedn.gif" alt="Move Down" onclick="moveDown('id_middlepanel')" />
|
||||
<div class="grid_1 omega">
|
||||
<img src="/static/img/moveup.gif" alt="Move Up" onclick="moveUp('id_middlepanel_to')" style="cursor:pointer" /><br />
|
||||
<img src="/static/img/movedn.gif" alt="Move Down" onclick="moveDown('id_middlepanel_to')" style="cursor:pointer" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="grid_12 alpha">
|
||||
<div class="grid_4 prefix_4 suffix_4">
|
||||
<input class="grid_4 button green" type="submit" value="Save">
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -5858,11 +5858,25 @@ def workout_workflow_config_view(request):
|
||||
request.session['referer'] = absolute(request)['PATH']
|
||||
request.session[translation.LANGUAGE_SESSION_KEY] = USER_LANGUAGE
|
||||
r = getrower(request.user)
|
||||
formleft = WorkFlowLeftPanelForm(instance=r)
|
||||
formmiddle = WorkFlowMiddlePanelForm()
|
||||
if request.method == 'POST' and 'leftpanel' in request.POST:
|
||||
formleft = WorkFlowLeftPanelForm(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 = WorkFlowMiddlePanelForm(request.POST)
|
||||
if formmiddle.is_valid():
|
||||
middlepanel = formmiddle.cleaned_data['middlepanel']
|
||||
r.workflowmiddlepanel = middlepanel
|
||||
r.save()
|
||||
|
||||
formleft = WorkFlowLeftPanelForm(instance=r)
|
||||
formmiddle = WorkFlowMiddlePanelForm(instance=r)
|
||||
|
||||
# Add processing of POST data
|
||||
|
||||
# Add processing of POST data
|
||||
|
||||
return render(request,'workflowconfig.html',
|
||||
{
|
||||
'rower':r,
|
||||
@@ -5909,9 +5923,9 @@ def workout_workflow_view(request,id):
|
||||
statcharts = GraphImage.objects.filter(workout=row)
|
||||
|
||||
# This will be user configurable in the future
|
||||
middleTemplates = r.workflowleftpanel
|
||||
middleTemplates = r.workflowmiddlepanel
|
||||
|
||||
leftTemplates = r.workflowmiddlepanel
|
||||
leftTemplates = r.workflowleftpanel
|
||||
|
||||
return render(request,
|
||||
'workflow.html',
|
||||
|
||||
Reference in New Issue
Block a user