alert edit including filters
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user