profile: add required_on_login flag to AttributeDefinition (#55865)

This commit is contained in:
Benjamin Dauvergne 2021-07-27 16:37:16 +02:00
parent 7d4973b758
commit 9cabbc197a
6 changed files with 40 additions and 0 deletions

View File

@ -0,0 +1,18 @@
# Generated by Django 2.2.19 on 2021-07-27 14:33
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('profile', '0004_auto_20200518_1810'),
]
operations = [
migrations.AddField(
model_name='attributedefinition',
name='required_on_login',
field=models.BooleanField(blank=True, default=False, verbose_name='required on login'),
),
]

View File

@ -36,6 +36,7 @@ class AttributeDefinition(models.Model):
error_messages={'unique': _('Field names must be unique.')},
)
required = models.BooleanField(verbose_name=_('required'), blank=True, default=False)
required_on_login = models.BooleanField(verbose_name=_('required on login'), blank=True, default=False)
asked_on_registration = models.BooleanField(
verbose_name=_('asked on registration'), blank=True, default=False
)

View File

@ -37,6 +37,7 @@ class AddAttributeView(CreateView):
'name',
'description',
'required',
'required_on_login',
'asked_on_registration',
'user_editable',
'user_visible',
@ -58,6 +59,7 @@ class OptionsView(UpdateView):
'label',
'description',
'required',
'required_on_login',
'asked_on_registration',
'user_editable',
'user_visible',

View File

@ -54,3 +54,10 @@ def test_profile(request, empty_site):
assert hobo_json['profile']['fields'][1]['name'] == 'first_name'
assert hobo_json['profile']['fields'][1]['required'] is True
def test_required_on_login(request, empty_site):
AttributeDefinition.objects.create(name='cgu', label='CGU', required_on_login=True)
hobo_json = get_hobo_json()
assert hobo_json['profile']['fields'][-1]['name'] == 'cgu'
assert hobo_json['profile']['fields'][-1]['required_on_login'] is True

View File

@ -68,6 +68,7 @@ def test_add_attribute(logged_app, admin_user, kind):
page.form['name'] = 'test'
page.form['description'] = 'test'
page.form['required'] = True
page.form['required_on_login'] = True
page.form['asked_on_registration'] = False
page.form['user_editable'] = False
page.form['user_visible'] = False

View File

@ -9,6 +9,7 @@
"label": "Civilit\u00e9",
"name": "title",
"required": false,
"required_on_login": false,
"searchable": false,
"user_editable": true,
"user_visible": true
@ -21,6 +22,7 @@
"label": "Pr\u00e9nom",
"name": "first_name",
"required": true,
"required_on_login": false,
"searchable": false,
"user_editable": true,
"user_visible": true
@ -33,6 +35,7 @@
"label": "Nom",
"name": "last_name",
"required": true,
"required_on_login": false,
"searchable": false,
"user_editable": true,
"user_visible": true
@ -45,6 +48,7 @@
"label": "Adresse \u00e9lectronique",
"name": "email",
"required": true,
"required_on_login": false,
"searchable": false,
"user_editable": true,
"user_visible": true
@ -57,6 +61,7 @@
"label": "Adresse",
"name": "address",
"required": false,
"required_on_login": false,
"searchable": false,
"user_editable": true,
"user_visible": true
@ -69,6 +74,7 @@
"label": "Code postal",
"name": "zipcode",
"required": false,
"required_on_login": false,
"searchable": false,
"user_editable": true,
"user_visible": true
@ -81,6 +87,7 @@
"label": "Commune",
"name": "city",
"required": false,
"required_on_login": false,
"searchable": false,
"user_editable": true,
"user_visible": true
@ -93,6 +100,7 @@
"label": "Pays",
"name": "country",
"required": false,
"required_on_login": false,
"searchable": false,
"user_editable": true,
"user_visible": true
@ -105,6 +113,7 @@
"label": "Date de naissance",
"name": "birthdate",
"required": false,
"required_on_login": false,
"searchable": false,
"user_editable": true,
"user_visible": true
@ -117,6 +126,7 @@
"label": "T\u00e9l\u00e9phone",
"name": "phone",
"required": false,
"required_on_login": false,
"searchable": false,
"user_editable": true,
"user_visible": true
@ -129,6 +139,7 @@
"label": "Mobile",
"name": "mobile",
"required": false,
"required_on_login": false,
"searchable": false,
"user_editable": true,
"user_visible": true