models: order AttributeValue according to corresponding attribute (#47627)
This commit is contained in:
parent
c0590210ab
commit
7216172fd0
|
@ -336,6 +336,7 @@ class AttributeValue(models.Model):
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
verbose_name = _('attribute value')
|
verbose_name = _('attribute value')
|
||||||
|
ordering = ('attribute__order', 'id')
|
||||||
verbose_name_plural = _('attribute values')
|
verbose_name_plural = _('attribute values')
|
||||||
unique_together = (
|
unique_together = (
|
||||||
('content_type', 'object_id', 'attribute', 'multiple', 'content'),
|
('content_type', 'object_id', 'attribute', 'multiple', 'content'),
|
||||||
|
|
|
@ -16,6 +16,7 @@
|
||||||
# authentic2
|
# authentic2
|
||||||
|
|
||||||
import pytest
|
import pytest
|
||||||
|
import datetime
|
||||||
|
|
||||||
from django.core.exceptions import ValidationError
|
from django.core.exceptions import ValidationError
|
||||||
from django.core import management
|
from django.core import management
|
||||||
|
@ -215,3 +216,23 @@ def test_attributes_hasattr(db):
|
||||||
assert not hasattr(user.verified_attributes, 'email')
|
assert not hasattr(user.verified_attributes, 'email')
|
||||||
assert hasattr(user.verified_attributes, 'first_name')
|
assert hasattr(user.verified_attributes, 'first_name')
|
||||||
assert user.verified_attributes.last_name is None
|
assert user.verified_attributes.last_name is None
|
||||||
|
|
||||||
|
|
||||||
|
def test_attribute_values_order(db):
|
||||||
|
phone = Attribute.objects.create(name='phone', label='phone', kind='string', order=9)
|
||||||
|
birthdate = Attribute.objects.create(name='birthdate', label='birthdate', kind='birthdate', order=10)
|
||||||
|
user = User.objects.create(first_name='john', last_name='Doe')
|
||||||
|
user.attributes.phone = '0123456789'
|
||||||
|
user.attributes.birthdate = datetime.date(year=1980, month=1, day=2)
|
||||||
|
|
||||||
|
attribute_values = user.attribute_values.all().reverse()
|
||||||
|
val1, val2 = attribute_values[:2]
|
||||||
|
assert val1.attribute.label == 'birthdate'
|
||||||
|
assert val2.attribute.label == 'phone'
|
||||||
|
|
||||||
|
phone.order, birthdate.order = birthdate.order, phone.order
|
||||||
|
phone.save()
|
||||||
|
birthdate.save()
|
||||||
|
val1, val2 = attribute_values[:2]
|
||||||
|
assert val1.attribute.label == 'phone'
|
||||||
|
assert val2.attribute.label == 'birthdate'
|
||||||
|
|
Loading…
Reference in New Issue