Private
Public Access
1
0

alert edit including filters

This commit is contained in:
Sander Roosendaal
2019-08-17 16:19:09 +02:00
parent 8009831ab1
commit 729ed0d4f8
4 changed files with 117 additions and 18 deletions

View File

@@ -4430,10 +4430,69 @@ def alert_edit_view(request,id=0,userid=0):
r = getrequestrower(request,userid=userid)
alert = Alert.objects.get(id=id)
FilterFormSet = formset_factory(ConditionEditForm, formset=BaseConditionFormSet,extra=0)
if len(alert.filter.all()) == 0:
FilterFormSet = formset_factory(ConditionEditForm, formset=BaseConditionFormSet, extra=1)
filter_data = [{'metric':m.metric,
'value1':m.value1,
'value2':m.value2,
'condition':m.condition}
for m in alert.filter.all()]
form = AlertEditForm(instance=alert)
measuredform = ConditionEditForm(instance=alert.measured)
if request.method == 'POST':
form = AlertEditForm(request.POST)
measuredform = ConditionEditForm(request.POST)
filter_formset = FilterFormSet(request.POST)
if form.is_valid() and measuredform.is_valid() and filter_formset.is_valid():
ad = form.cleaned_data
measured = measuredform.cleaned_data
period = ad['period']
emailalert = ad['emailalert']
reststrokes = ad['reststrokes']
workouttype = ad['workouttype']
name = ad['name']
m = alert.measured
m.metric = measured['metric']
m.value1 = measured['value1']
m.value2 = measured['value2']
m.condition = measured['condition']
m.save()
alert.period = period
alert.emailalert = emailalert
alert.reststrokes = reststrokes
alert.workouttype = workouttype
alert.name = name
alert.save()
filters = []
for filter_form in filter_formset:
metric = filter_form.cleaned_data.get('metric')
condition = filter_form.cleaned_data.get('condition')
value1 = filter_form.cleaned_data.get('value1')
value2 = filter_form.cleaned_data.get('value2')
filters.append(
{
'metric':metric,
'condition':condition,
'value1':value1,
'value2':value2,
}
)
res = alert_add_filters(alert, filters)
messages.info(request,'Alert was changed')
else:
form = AlertEditForm(instance=alert)
measuredform = ConditionEditForm(instance=alert.measured)
filter_formset = FilterFormSet(initial=filter_data)
@@ -4460,6 +4519,7 @@ def alert_edit_view(request,id=0,userid=0):
'rower':r,
'form':form,
'measuredform':measuredform,
'formset':filter_formset,
})
# alert delete view