Exemple #1
0
    def clean(self):
        # Get kit quantities from the data that was passed in
        name_prefix = "kit-quantity-"
        prefix_len = len(name_prefix)

        kits = {
            Kit.objects.get(pk=int(name[prefix_len:])): int(value)
            for name, value in self.data.iteritems()
            if name.startswith(name_prefix) and value and is_int(value)
            and int(value)
        }
        self.cleaned_data['kits'] = kits

        if len(kits) == 0:
            raise ValidationError('Please add a quantity of at least one kit')

        if len(kits) > 1:
            if not self.cleaned_data.get('name', False):
                raise ValidationError('Name required if more than one '
                                      'kit is included')
        # If there's just one kit, default the name and description to its name and description
        if len(kits) == 1:
            kit = kits.keys()[0]
            if not self.cleaned_data.get('name', False):
                self.cleaned_data['name'] = kit.name
            if not self.cleaned_data.get('description', False):
                self.cleaned_data['description'] = kit.description
        return self.cleaned_data
Exemple #2
0
    def clean(self):
        # Get kit quantities from the data that was passed in
        name_prefix = "kit-quantity-"
        prefix_len = len(name_prefix)

        kits = {
            Kit.objects.get(pk=int(name[prefix_len:])): int(value)
            for name, value in self.data.iteritems()
            if name.startswith(name_prefix) and value and is_int(value) and int(value)
        }
        self.cleaned_data['kits'] = kits

        if len(kits) == 0:
            raise ValidationError('Please add a quantity of at least one kit')

        if len(kits) > 1:
            if not self.cleaned_data.get('name', False):
                raise ValidationError('Name required if more than one '
                                      'kit is included')
        # If there's just one kit, default the name and description to its name and description
        if len(kits) == 1:
            kit = kits.keys()[0]
            if not self.cleaned_data.get('name', False):
                self.cleaned_data['name'] = kit.name
            if not self.cleaned_data.get('description', False):
                self.cleaned_data['description'] = kit.description
        return self.cleaned_data
Exemple #3
0
 def test_is_int(self):
     for value, result in [
         ("1", True),
         ("", False),
         ("1,000", False),
         ("1.05", False),
         ("queryt", False),
         ("1234db", False),
         ("1_23", False),
     ]:
         self.assertEqual(result, is_int(value))