def clean_order(self):
     order = self.cleaned_data['order']
     if HouseholdMemberGroup.objects.filter(order=order).count()>0 and self.initial.get('order', None) != int(order):
         message = 'This order already exists. The minimum available is %d.'% (HouseholdMemberGroup.max_order()+1)
         self._errors['order'] = self.error_class([message])
         del self.cleaned_data['order']
     return order
예제 #2
0
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)
예제 #3
0
    def test_should_return_max_order_of_all_groups(self):
        HouseholdMemberGroup.objects.create(name="Greater than 2 years",
                                            order=1)
        HouseholdMemberGroup.objects.create(name="Greater than 2 years",
                                            order=7)
        HouseholdMemberGroup.objects.create(name="Greater than 2 years",
                                            order=3)

        self.assertEqual(7, HouseholdMemberGroup.max_order())
예제 #4
0
 def clean_order(self):
     order = self.cleaned_data['order']
     if HouseholdMemberGroup.objects.filter(
             order=order).count() > 0 and self.initial.get(
                 'order', None) != int(order):
         message = 'This order already exists. The minimum available is %d.' % (
             HouseholdMemberGroup.max_order() + 1)
         self._errors['order'] = self.error_class([message])
         del self.cleaned_data['order']
     return order
예제 #5
0
    def test_invalid_order_on_add_group_if_group_already_exists(self):
        household_member_group = HouseholdMemberGroup.objects.create(
            name="5 to 6 years", order=7)

        form_data = {
            'name': household_member_group.name,
            'order': household_member_group.order,
            'conditions': [self.group_condition.id]
        }

        household_member_group_form = HouseholdMemberGroupForm(form_data)
        self.assertFalse(household_member_group_form.is_valid())
        self.assertEquals(1, len(household_member_group_form.errors))
        self.assertTrue(household_member_group_form.errors.has_key('order'))
        expected_form_error = 'This order already exists. The minimum available is %d.' % (
            HouseholdMemberGroup.max_order() + 1)
        self.assertEqual(household_member_group_form.errors['order'][0],
                         expected_form_error)
예제 #6
0
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"}

    return response or render(request, 'household_member_groups/new.html', context)
예제 #7
0
    def test_should_return_max_order_of_all_groups(self):
        HouseholdMemberGroup.objects.create(name="Greater than 2 years", order=1)
        HouseholdMemberGroup.objects.create(name="Greater than 2 years", order=7)
        HouseholdMemberGroup.objects.create(name="Greater than 2 years", order=3)

        self.assertEqual(7, HouseholdMemberGroup.max_order())
예제 #8
0
    def test_should_return_zero_if_no_group_created_yet(self):
        HouseholdMemberGroup.objects.all().delete()

        self.assertEqual(0, HouseholdMemberGroup.max_order())
예제 #9
0
    def test_should_return_zero_if_no_group_created_yet(self):
        HouseholdMemberGroup.objects.all().delete()

        self.assertEqual(0, HouseholdMemberGroup.max_order())
예제 #10
0
 def test_fields(self):
     group = HouseholdMemberGroup()
     fields = [str(item.attname) for item in group._meta.fields]
     self.assertEqual(5, len(fields))
     for field in ['id', 'created', 'modified', 'name', 'order']:
         self.assertIn(field, fields)
    def test_invalid_order_on_add_group_if_group_already_exists(self):
        household_member_group = HouseholdMemberGroup.objects.create(name="5 to 6 years", order=7)

        form_data = {
            'name': household_member_group.name,
            'order': household_member_group.order,
            'conditions': [self.group_condition.id]
        }

        household_member_group_form = HouseholdMemberGroupForm(form_data)
        self.assertFalse(household_member_group_form.is_valid())
        self.assertEquals(1, len(household_member_group_form.errors))
        self.assertTrue(household_member_group_form.errors.has_key('order'))
        expected_form_error = 'This order already exists. The minimum available is %d.'% (HouseholdMemberGroup.max_order()+1)
        self.assertEqual(household_member_group_form.errors['order'][0], expected_form_error)