models: add restricted-valueset attribute elements (#86937)
This commit is contained in:
parent
20b357071f
commit
71f15b35c4
|
@ -0,0 +1,41 @@
|
|||
# Generated by Django 3.2.18 on 2024-03-06 09:22
|
||||
|
||||
import django.db.models.deletion
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
dependencies = [
|
||||
('authentic2', '0050_initialize_users_advanced_configuration'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name='AttributeRestrictedValueSetElement',
|
||||
fields=[
|
||||
(
|
||||
'id',
|
||||
models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'),
|
||||
),
|
||||
('serialized_content', models.TextField(verbose_name='Serialized value')),
|
||||
('displayed_label', models.CharField(max_length=255, verbose_name='Displayed label')),
|
||||
('name', models.CharField(max_length=255, verbose_name='Element name')),
|
||||
(
|
||||
'attribute',
|
||||
models.ForeignKey(
|
||||
on_delete=django.db.models.deletion.CASCADE,
|
||||
related_name='valueset_elements',
|
||||
to='authentic2.attribute',
|
||||
verbose_name='attribute',
|
||||
),
|
||||
),
|
||||
],
|
||||
options={
|
||||
'unique_together': {
|
||||
('attribute', 'serialized_content'),
|
||||
('attribute', 'name'),
|
||||
('attribute', 'displayed_label'),
|
||||
},
|
||||
},
|
||||
),
|
||||
]
|
|
@ -146,6 +146,26 @@ class LogoutUrl(LogoutUrlAbstract):
|
|||
verbose_name_plural = _('logout URL')
|
||||
|
||||
|
||||
class AttributeRestrictedValueSetElement(models.Model):
|
||||
attribute = models.ForeignKey(
|
||||
'Attribute', verbose_name=_('attribute'), on_delete=models.CASCADE, related_name='valueset_elements'
|
||||
)
|
||||
serialized_content = models.TextField(verbose_name=_('Serialized value'))
|
||||
displayed_label = models.CharField(verbose_name=_('Displayed label'), max_length=255)
|
||||
name = models.CharField(verbose_name=_('Element name'), max_length=255)
|
||||
|
||||
def to_python(self):
|
||||
deserialize = self.attribute.get_kind()['deserialize']
|
||||
return deserialize(self.content)
|
||||
|
||||
class Meta:
|
||||
unique_together = (
|
||||
('attribute', 'name'),
|
||||
('attribute', 'displayed_label'),
|
||||
('attribute', 'serialized_content'),
|
||||
)
|
||||
|
||||
|
||||
class Attribute(models.Model):
|
||||
label = models.CharField(verbose_name=_('label'), max_length=63, unique=True)
|
||||
description = models.TextField(verbose_name=_('description'), blank=True)
|
||||
|
|
Loading…
Reference in New Issue