From f9231f94e02f79c7b28920c6852f2130ae22ab55 Mon Sep 17 00:00:00 2001
From: Sander Roosendaal
Date: Sat, 17 Aug 2019 17:38:39 +0200
Subject: [PATCH] further improvements to create/edit alerts
---
rowers/alerts.py | 17 +++++++++--------
rowers/models.py | 7 ++++++-
rowers/templates/alert_create.html | 6 +++---
rowers/templates/alert_edit.html | 4 ++--
4 files changed, 20 insertions(+), 14 deletions(-)
diff --git a/rowers/alerts.py b/rowers/alerts.py
index 5ac22e57..f5bbfec4 100644
--- a/rowers/alerts.py
+++ b/rowers/alerts.py
@@ -38,16 +38,17 @@ def create_alert(manager, rower, measured,period=7, emailalert=True,
if 'filter' in kwargs:
filters = kwargs['filter']
for f in filters:
- m = Condition(
- metric = f['metric'],
- value1 = f['value1'],
- value2 = f['value2'],
- condition = f['condition']
+ if f['metric'] and f['condition']:
+ m = Condition(
+ metric = f['metric'],
+ value1 = f['value1'],
+ value2 = f['value2'],
+ condition = f['condition']
)
+
+ m.save()
- m.save()
-
- alert.filter.add(m)
+ alert.filter.add(m)
return alert.id,'Your alert was created'
diff --git a/rowers/models.py b/rowers/models.py
index 06bfb562..9caf9810 100644
--- a/rowers/models.py
+++ b/rowers/models.py
@@ -1022,7 +1022,7 @@ class Condition(models.Model):
)
metric = models.CharField(max_length=50,choices=parchoicesy1,verbose_name='Metric')
value1 = models.FloatField(default=0)
- value2 = models.FloatField(default=0)
+ value2 = models.FloatField(default=0,null=True,blank=True)
condition = models.CharField(max_length=20,choices=conditionchoices,null=True)
class ConditionEditForm(ModelForm):
@@ -1030,6 +1030,11 @@ class ConditionEditForm(ModelForm):
model = Condition
fields = ['metric','condition','value1','value2']
+ def clean(self):
+ cd = self.cleaned_data
+ if cd['condition'] == 'between' and cd['value2'] is None:
+ raise forms.ValidationError('When using between, you must fill value 1 and value 2')
+
class BaseConditionFormSet(BaseFormSet):
def clean(self):
if any(self.errors):
diff --git a/rowers/templates/alert_create.html b/rowers/templates/alert_create.html
index 138e66c0..d7b1c57a 100644
--- a/rowers/templates/alert_create.html
+++ b/rowers/templates/alert_create.html
@@ -41,16 +41,16 @@
- {% for filter_form in formset %}
+ {% for filter_form in formset %}
-
- {% endfor %}
+ {% endfor %}
+
diff --git a/rowers/templates/alert_edit.html b/rowers/templates/alert_edit.html
index 7c15abda..081d9a36 100644
--- a/rowers/templates/alert_edit.html
+++ b/rowers/templates/alert_edit.html
@@ -39,16 +39,16 @@
- {% for filter_form in formset %}
+ {% for filter_form in formset %}
-
{% endfor %}
+