Example #1
0
def add_group_condition(request, group_id):
    condition_form = GroupConditionForm()
    if request.method == 'POST':
        condition_form = GroupConditionForm(data=request.POST)
        if condition_form.is_valid():
            try:
                group = HouseholdMemberGroup.objects.get(id=group_id)
                condition = condition_form.save()
                condition.groups.add(group)
                condition.save()
                messages.success(request, "Criteria successfully added.")
                redirect_url = '/groups/%s/' % group_id
            except ObjectDoesNotExist:
                messages.error(request, "Group does not exist.")
                redirect_url = '/groups/'
            return HttpResponseRedirect(redirect_url)

    context = {
        'button_label': 'Create',
        'title': 'New Criteria',
        'id': 'add-condition-to-group-form',
        'action': '/groups/%s/conditions/new/' % group_id,
        'request': request,
        'condition_form': condition_form
    }
    return render(request, 'household_member_groups/conditions/new.html',
                  context)
    def test_invalid_value_which_is_not_an_integer_form(self):
        form_data = {
            'value' : 0.1,
            'attribute': "AGE",
            'condition': 'GREATER_THAN'
        }

        group_condition_form = GroupConditionForm(form_data)
        self.assertFalse(group_condition_form.is_valid())
 def test_valid_form(self):
     form_data = {
         'value' : 3,
         'attribute': "AGE",
         'condition': 'GREATER_THAN'
     }
     
     group_condition_form = GroupConditionForm(form_data)
     self.assertTrue(group_condition_form.is_valid())
Example #4
0
    def test_valid_form(self):
        form_data = {
            'value': 3,
            'attribute': "AGE",
            'condition': 'GREATER_THAN'
        }

        group_condition_form = GroupConditionForm(form_data)
        self.assertTrue(group_condition_form.is_valid())
Example #5
0
    def test_invalid_value_which_is_not_an_integer_form(self):
        form_data = {
            'value': 0.1,
            'attribute': "AGE",
            'condition': 'GREATER_THAN'
        }

        group_condition_form = GroupConditionForm(form_data)
        self.assertFalse(group_condition_form.is_valid())
Example #6
0
    def test_valid_form_due_to_invalid_condition(self):
        form_data = {'value': 3, 'attribute': "AGE", 'condition': 'GREATER'}

        group_condition_form = GroupConditionForm(form_data)
        self.assertFalse(group_condition_form.is_valid())
        self.assertEqual(1, len(group_condition_form.errors))
        self.assertTrue(group_condition_form.errors.has_key("condition"))
        invalid_condition_choice = "Select a valid choice. GREATER is not one of the available choices."
        self.assertEqual(group_condition_form.errors["condition"][0],
                         invalid_condition_choice)
    def test_validates_unqique_constraint_on_group_condition(self):
        form_data = {
            'value': 'HEAD',
            'attribute': GroupCondition.GROUP_TYPES['GENERAL'],
            'condition': GroupCondition.CONDITIONS['EQUALS'],
        }

        group_condition_form = GroupConditionForm(form_data)
        self.assertTrue(group_condition_form.is_valid())
        group_condition_form.save()

        duplicate_data = {
            'value': 'HEAD',
            'attribute': GroupCondition.GROUP_TYPES['GENERAL'],
            'condition': GroupCondition.CONDITIONS['EQUALS'],
            }

        duplicate_group_condition_form = GroupConditionForm(duplicate_data)
        self.assertFalse(duplicate_group_condition_form.is_valid())
Example #8
0
    def test_validates_unqique_constraint_on_group_condition(self):
        form_data = {
            'value': 'HEAD',
            'attribute': GroupCondition.GROUP_TYPES['GENERAL'],
            'condition': GroupCondition.CONDITIONS['EQUALS'],
        }

        group_condition_form = GroupConditionForm(form_data)
        self.assertTrue(group_condition_form.is_valid())
        group_condition_form.save()

        duplicate_data = {
            'value': 'HEAD',
            'attribute': GroupCondition.GROUP_TYPES['GENERAL'],
            'condition': GroupCondition.CONDITIONS['EQUALS'],
        }

        duplicate_group_condition_form = GroupConditionForm(duplicate_data)
        self.assertFalse(duplicate_group_condition_form.is_valid())
    def test_general_only_accepts_equal_condition(self):
        form_data = {
            'value': 'HEAD',
            'attribute': GroupCondition.GROUP_TYPES['GENERAL'],
            'condition': GroupCondition.CONDITIONS['GREATER_THAN'],
        }

        group_condition_form = GroupConditionForm(form_data)
        self.assertFalse(group_condition_form.is_valid())
        message = "GENERAL can only have condition: EQUALS."
        self.assertEqual([message], group_condition_form.errors['condition'])
Example #10
0
    def test_valid_form_due_to_empty_fields_present(self):
        form_field_keys = ['value', 'attribute', 'condition']
        form_data = {'value': '', 'attribute': "", 'condition': ''}

        group_condition_form = GroupConditionForm(form_data)
        self.assertFalse(group_condition_form.is_valid())
        self.assertEqual(3, len(group_condition_form.errors))
        [
            self.assertTrue(group_condition_form.errors.has_key(key))
            for key in form_field_keys
        ]
Example #11
0
    def test_gender_only_accepts_male_or_female_values(self):
        form_data = {
            'value': 'not Male',
            'attribute': GroupCondition.GROUP_TYPES['GENDER'],
            'condition': GroupCondition.CONDITIONS['EQUALS'],
        }

        group_condition_form = GroupConditionForm(form_data)
        self.assertFalse(group_condition_form.is_valid())
        message = "GENDER can only have male or female values."
        self.assertEqual([message], group_condition_form.errors['value'])
    def test_age_should_be_positive(self):
        form_data = {
            'value': '-3',
            'attribute': GroupCondition.GROUP_TYPES['AGE'],
            'condition': GroupCondition.CONDITIONS['EQUALS'],
        }

        group_condition_form = GroupConditionForm(form_data)
        self.assertFalse(group_condition_form.is_valid())
        message = "Age cannot be negative."
        self.assertEqual([message], group_condition_form.errors['value'])
Example #13
0
    def test_age_should_be_positive(self):
        form_data = {
            'value': '-3',
            'attribute': GroupCondition.GROUP_TYPES['AGE'],
            'condition': GroupCondition.CONDITIONS['EQUALS'],
        }

        group_condition_form = GroupConditionForm(form_data)
        self.assertFalse(group_condition_form.is_valid())
        message = "Age cannot be negative."
        self.assertEqual([message], group_condition_form.errors['value'])
    def test_gender_only_accepts_male_or_female_values(self):
        form_data = {
            'value': 'not Male',
            'attribute': GroupCondition.GROUP_TYPES['GENDER'],
            'condition': GroupCondition.CONDITIONS['EQUALS'],
        }

        group_condition_form = GroupConditionForm(form_data)
        self.assertFalse(group_condition_form.is_valid())
        message = "GENDER can only have male or female values."
        self.assertEqual([message], group_condition_form.errors['value'])
Example #15
0
    def test_general_only_accepts_equal_condition(self):
        form_data = {
            'value': 'HEAD',
            'attribute': GroupCondition.GROUP_TYPES['GENERAL'],
            'condition': GroupCondition.CONDITIONS['GREATER_THAN'],
        }

        group_condition_form = GroupConditionForm(form_data)
        self.assertFalse(group_condition_form.is_valid())
        message = "GENERAL can only have condition: EQUALS."
        self.assertEqual([message], group_condition_form.errors['condition'])
    def test_general_only_accepts_head_as_value(self):
        form_data = {
            'value': 'not HEAD',
            'attribute': GroupCondition.GROUP_TYPES['GENERAL'],
            'condition': GroupCondition.CONDITIONS['EQUALS'],
        }

        group_condition_form = GroupConditionForm(form_data)
        self.assertFalse(group_condition_form.is_valid())
        message = "GENERAL can only have the value: HEAD."
        self.assertEqual([message], group_condition_form.errors['value'])
Example #17
0
    def test_general_only_accepts_head_as_value(self):
        form_data = {
            'value': 'not HEAD',
            'attribute': GroupCondition.GROUP_TYPES['GENERAL'],
            'condition': GroupCondition.CONDITIONS['EQUALS'],
        }

        group_condition_form = GroupConditionForm(form_data)
        self.assertFalse(group_condition_form.is_valid())
        message = "GENERAL can only have the value: HEAD."
        self.assertEqual([message], group_condition_form.errors['value'])
    def test_valid_form_due_to_empty_fields_present(self):
        form_field_keys = ['value', 'attribute', 'condition']
        form_data = {
            'value': '',
            'attribute': "",
            'condition': ''
        }

        group_condition_form = GroupConditionForm(form_data)
        self.assertFalse(group_condition_form.is_valid())
        self.assertEqual(3, len(group_condition_form.errors))
        [self.assertTrue(group_condition_form.errors.has_key(key)) for key in form_field_keys]
    def test_valid_form_due_to_invalid_condition(self):
        form_data = {
            'value' : 3,
            'attribute': "AGE",
            'condition': 'GREATER'
        }

        group_condition_form = GroupConditionForm(form_data)
        self.assertFalse(group_condition_form.is_valid())
        self.assertEqual(1, len(group_condition_form.errors))
        self.assertTrue(group_condition_form.errors.has_key("condition"))
        invalid_condition_choice = "Select a valid choice. GREATER is not one of the available choices."
        self.assertEqual(group_condition_form.errors["condition"][0], invalid_condition_choice)
def add_group_condition(request, group_id):
    condition_form = GroupConditionForm()
    if request.method == 'POST':
        condition_form = GroupConditionForm(data=request.POST)
        if condition_form.is_valid():
            try:
                group = HouseholdMemberGroup.objects.get(id=group_id)
                condition = condition_form.save()
                condition.groups.add(group)
                condition.save()
                messages.success(request, "Criteria successfully added.")
                redirect_url = '/groups/%s/' % group_id
            except ObjectDoesNotExist:
                messages.error(request, "Group does not exist.")
                redirect_url = '/groups/'
            return HttpResponseRedirect(redirect_url)

    context = {'button_label': 'Create',
               'title': 'New Criteria',
               'id': 'add-condition-to-group-form',
               'action': '/groups/%s/conditions/new/' % group_id,
               'request': request,
               'condition_form': condition_form}
    return render(request, 'household_member_groups/conditions/new.html', context)