mirror of
https://github.com/jazzband/django-eav2.git
synced 2026-03-16 22:40:26 +00:00
Rename "enums" attribute on the EnumGroup to "values" (#20)
This commit is contained in:
parent
9d044ee8e2
commit
e0a76f86b2
5 changed files with 23 additions and 23 deletions
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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(
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue