Rename "enums" attribute on the EnumGroup to "values" (#20)

This commit is contained in:
Iwo Herka 2018-07-27 12:54:05 +00:00
parent 9d044ee8e2
commit e0a76f86b2
5 changed files with 23 additions and 23 deletions

View file

@ -61,10 +61,10 @@ class BaseDynamicEntityForm(ModelForm):
datatype = attribute.datatype
if datatype == attribute.TYPE_ENUM:
enums = attribute.get_choices() \
values = attribute.get_choices() \
.values_list('id', 'value')
choices = [('', '-----')] + list(enums)
choices = [('', '-----')] + list(values)
defaults.update({'choices': choices})
if value:
@ -102,7 +102,7 @@ class BaseDynamicEntityForm(ModelForm):
value = self.cleaned_data.get(attribute.slug)
if attribute.datatype == attribute.TYPE_ENUM:
if value:
value = attribute.enum_group.enums.get(pk=value)
value = attribute.enum_group.values.get(pk=value)
else:
value = None

View file

@ -67,7 +67,7 @@ class Migration(migrations.Migration):
),
migrations.AddField(
model_name='enumgroup',
name='enums',
name='values',
field=models.ManyToManyField(to='eav.EnumValue', verbose_name='enum group'),
),
migrations.AddField(

View file

@ -34,7 +34,7 @@ class EnumValue(models.Model):
unknown = EnumValue.objects.create(value='Unknown')
ynu = EnumGroup.objects.create(name='Yes / No / Unknown')
ynu.enums.add(yes, no, unknown)
ynu.values.add(yes, no, unknown)
Attribute.objects.create(name='has fever?', datatype=Attribute.TYPE_ENUM, enum_group=ynu)
# = <Attribute: has fever? (Multiple Choice)>
@ -55,14 +55,14 @@ class EnumValue(models.Model):
class EnumGroup(models.Model):
'''
*EnumGroup* objects have two fields - a *name* ``CharField`` and *enums*,
*EnumGroup* objects have two fields - a *name* ``CharField`` and *values*,
a ``ManyToManyField`` to :class:`EnumValue`. :class:`Attribute` classes
with datatype *TYPE_ENUM* have a ``ForeignKey`` field to *EnumGroup*.
See :class:`EnumValue` for an example.
'''
name = models.CharField(_('name'), unique = True, max_length = 100)
enums = models.ManyToManyField(EnumValue, verbose_name = _('enum group'))
values = models.ManyToManyField(EnumValue, verbose_name = _('enum group'))
def __str__(self):
return '<EnumGroup {}>'.format(self.name)
@ -108,7 +108,7 @@ class Attribute(models.Model):
no = EnumValue.objects.create(value='no')
unknown = EnumValue.objects.create(value='unknown')
ynu = EnumGroup.objects.create(name='Yes / No / Unknown')
ynu.enums.add(yes, no, unknown)
ynu.values.add(yes, no, unknown)
Attribute.objects.create(name='has fever?', datatype=Attribute.TYPE_ENUM, enum_group=ynu)
# = <Attribute: has fever? (Multiple Choice)>
@ -241,7 +241,7 @@ class Attribute(models.Model):
validator(value)
if self.datatype == self.TYPE_ENUM:
if value not in self.enum_group.enums.all():
if value not in self.enum_group.values.all():
raise ValidationError(
_('%(val)s is not a valid choice for %(attr)s')
% dict(val = value, attr = self)
@ -279,7 +279,7 @@ class Attribute(models.Model):
Returns a query set of :class:`EnumValue` objects for this attribute.
Returns None if the datatype of this attribute is not *TYPE_ENUM*.
'''
return self.enum_group.enums.all() if self.datatype == Attribute.TYPE_ENUM else None
return self.enum_group.values.all() if self.datatype == Attribute.TYPE_ENUM else None
def save_value(self, entity, value):
'''
@ -407,7 +407,7 @@ class Value(models.Model):
and value_enum is not a valid choice for this value's attribute.
'''
if self.attribute.datatype == Attribute.TYPE_ENUM and self.value_enum:
if self.value_enum not in self.attribute.enum_group.enums.all():
if self.value_enum not in self.attribute.enum_group.values.all():
raise ValidationError(
_('%(enum)s is not a valid choice for %(attr)s')
% dict(enum = self.value_enum, attr = self.attribute)

View file

@ -145,9 +145,9 @@ class DataValidation(TestCase):
unkown = EnumValue.objects.create(value='unkown')
green = EnumValue.objects.create(value='green')
ynu = EnumGroup.objects.create(name='Yes / No / Unknown')
ynu.enums.add(yes)
ynu.enums.add(no)
ynu.enums.add(unkown)
ynu.values.add(yes)
ynu.values.add(no)
ynu.values.add(unkown)
Attribute.objects.create(name='Fever?', datatype=Attribute.TYPE_ENUM, enum_group=ynu)
p = Patient.objects.create(name='Joe')
@ -172,9 +172,9 @@ class DataValidation(TestCase):
no = EnumValue.objects.create(value='no')
unkown = EnumValue.objects.create(value='unkown')
ynu = EnumGroup.objects.create(name='Yes / No / Unknown')
ynu.enums.add(yes)
ynu.enums.add(no)
ynu.enums.add(unkown)
ynu.values.add(yes)
ynu.values.add(no)
ynu.values.add(unkown)
a = Attribute(name='Age Bracket', datatype=Attribute.TYPE_ENUM, enum_group=ynu)
a.save()
@ -183,8 +183,8 @@ class DataValidation(TestCase):
no = EnumValue.objects.create(value='no')
unkown = EnumValue.objects.create(value='unkown')
ynu = EnumGroup.objects.create(name='Yes / No / Unknown')
ynu.enums.add(yes)
ynu.enums.add(no)
ynu.enums.add(unkown)
ynu.values.add(yes)
ynu.values.add(no)
ynu.values.add(unkown)
a = Attribute(name='color', datatype=Attribute.TYPE_TEXT, enum_group=ynu)
self.assertRaises(ValidationError, a.save)

View file

@ -24,9 +24,9 @@ class Queries(TestCase):
self.unknown = EnumValue.objects.create(value='unknown')
ynu = EnumGroup.objects.create(name='Yes / No / Unknown')
ynu.enums.add(self.yes)
ynu.enums.add(self.no)
ynu.enums.add(self.unknown)
ynu.values.add(self.yes)
ynu.values.add(self.no)
ynu.values.add(self.unknown)
Attribute.objects.create(name='fever', datatype=Attribute.TYPE_ENUM, enum_group=ynu)