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 %}