def add_condition(request): response = None condition_form = GroupConditionForm() if request.is_ajax(): condition_form = GroupConditionForm(data=request.POST) _process_condition_form(request, condition_form) conditions = _get_conditions_hash() return HttpResponse(json.dumps(conditions), content_type='application/json') elif request.method == 'POST': condition_form = GroupConditionForm(data=request.POST) response = _process_condition_form(request, condition_form) context = { 'button_label': 'Save', 'title': 'New Criteria', 'id': 'add-condition-form', 'action': '/conditions/new/', 'request': request, 'condition_form': condition_form } return response or 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())
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())
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_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_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_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'])
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_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(request): params = request.POST response = None group_form = HouseholdMemberGroupForm( initial={'order': HouseholdMemberGroup.max_order() + 1}) if request.method == 'POST': group_form = HouseholdMemberGroupForm(params) response = _process_groupform(request, group_form, action='added', redirect_url='/groups/') context = { 'groups_form': group_form, 'conditions': GroupCondition.objects.all(), 'title': "New Group", 'button_label': 'Create', 'id': 'add_group_form', 'action': "/groups/new/", 'cancel_url': '/groups/', 'condition_form': GroupConditionForm(), 'condition_title': "New Eligibility Criteria" } request.breadcrumbs([ ('Member Groups', reverse('household_member_groups_page')), ]) return response or render(request, 'household_member_groups/new.html', context)
def edit_group(request, group_id): params = request.POST response = None group = HouseholdMemberGroup.objects.get(id=group_id) group_form = HouseholdMemberGroupForm( instance=group, initial={'conditions': [gp.id for gp in group.conditions.all()]}) if request.method == 'POST': group_form = HouseholdMemberGroupForm(params, instance=group) redirect_url = "/groups/%s/" % group_id performed_action = 'edited' response = _process_groupform(request, group_form, performed_action, redirect_url) context = { 'groups_form': group_form, 'conditions': GroupCondition.objects.all(), 'title': "Edit Group", 'button_label': 'Save', 'id': 'add_group_form', 'action': "/groups/%s/edit/" % group_id, 'condition_form': GroupConditionForm(), 'condition_title': "New Criteria" } request.breadcrumbs([ ('Member Groups', reverse('household_member_groups_page')), ]) return response or render(request, 'household_member_groups/new.html', context)
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 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_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())