From be36e2d77f8fdc6b877e76ab7440a741769acda8 Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Thu, 19 Oct 2017 19:00:19 +0200 Subject: [PATCH] somewhat working form config2 --- rowers/forms.py | 8 ++--- rowers/templates/workflowconfig2.html | 18 ++++------ rowers/views.py | 47 +++++++++++++++++---------- 3 files changed, 40 insertions(+), 33 deletions(-) diff --git a/rowers/forms.py b/rowers/forms.py index f06ae90c..7b7f2cc4 100644 --- a/rowers/forms.py +++ b/rowers/forms.py @@ -131,21 +131,21 @@ class WorkFlowMiddlePanelForm(forms.Form): super(WorkFlowMiddlePanelForm,self).__init__(*args, **kwargs) class WorkFlowLeftPanelElement(forms.Form): - panelchoices = tuple(list(workflowleftpanel)+[(None,'None')]) + panelchoices = tuple(list(workflowleftpanel)+[('None','None')]) panel = forms.ChoiceField( label='', choices=panelchoices, - initial=None, + initial='None', ) class WorkFlowMiddlePanelElement(forms.Form): - panelchoices = tuple(list(workflowmiddlepanel)+[(None,'None')]) + panelchoices = tuple(list(workflowmiddlepanel)+[('None','None')]) panel = forms.ChoiceField( label='', choices=panelchoices, - initial=None, + initial='None', ) diff --git a/rowers/templates/workflowconfig2.html b/rowers/templates/workflowconfig2.html index 67153891..e9465081 100644 --- a/rowers/templates/workflowconfig2.html +++ b/rowers/templates/workflowconfig2.html @@ -6,7 +6,7 @@ -{{ formmiddle.media }} +
{% if workoutid %} @@ -20,10 +20,8 @@

Workflow Page Configuration

Left Panel

-

- {{ leftpanel_formset.management_form }} -

+ {{ leftpanel_formset.management_form }} {% for leftpanel_form in leftpanel_formset %}
@@ -38,10 +36,8 @@

Middle Panel

-

- {{ middlepanel_formset.management_form }} -

+ {{ middlepanel_formset.management_form }} {% for middlepanel_form in middlepanel_formset %}
@@ -61,12 +57,12 @@ diff --git a/rowers/views.py b/rowers/views.py index e502e55f..826d2a3c 100644 --- a/rowers/views.py +++ b/rowers/views.py @@ -5906,31 +5906,42 @@ def workout_workflow_config2_view(request): 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') + 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) + leftpanel_formset = LeftPanelFormSet(initial=leftpanelform_data, + prefix='leftpanel') + middlepanel_formset = MiddlePanelFormSet(initial=middlepanelform_data, + prefix='middlepanel') tmplt = 'workflowconfig2.html'