Projet

Général

Profil

0001-profile-add-required_on_login-flag-to-AttributeDefin.patch

Benjamin Dauvergne, 29 juillet 2021 09:01

Télécharger (7,07 ko)

Voir les différences:

Subject: [PATCH 1/2] profile: add required_on_login flag to
 AttributeDefinition (#55865)

 .../migrations/0005_auto_20210727_1633.py      | 18 ++++++++++++++++++
 hobo/profile/models.py                         |  1 +
 hobo/profile/views.py                          |  2 ++
 tests/test_hobo_json.py                        |  7 +++++++
 tests/test_manager.py                          |  1 +
 tests_schemas/example_env.json                 | 11 +++++++++++
 6 files changed, 40 insertions(+)
 create mode 100644 hobo/profile/migrations/0005_auto_20210727_1633.py
hobo/profile/migrations/0005_auto_20210727_1633.py
1
# Generated by Django 2.2.19 on 2021-07-27 14:33
2

  
3
from django.db import migrations, models
4

  
5

  
6
class Migration(migrations.Migration):
7

  
8
    dependencies = [
9
        ('profile', '0004_auto_20200518_1810'),
10
    ]
11

  
12
    operations = [
13
        migrations.AddField(
14
            model_name='attributedefinition',
15
            name='required_on_login',
16
            field=models.BooleanField(blank=True, default=False, verbose_name='required on login'),
17
        ),
18
    ]
hobo/profile/models.py
36 36
        error_messages={'unique': _('Field names must be unique.')},
37 37
    )
38 38
    required = models.BooleanField(verbose_name=_('required'), blank=True, default=False)
39
    required_on_login = models.BooleanField(verbose_name=_('required on login'), blank=True, default=False)
39 40
    asked_on_registration = models.BooleanField(
40 41
        verbose_name=_('asked on registration'), blank=True, default=False
41 42
    )
hobo/profile/views.py
37 37
        'name',
38 38
        'description',
39 39
        'required',
40
        'required_on_login',
40 41
        'asked_on_registration',
41 42
        'user_editable',
42 43
        'user_visible',
......
58 59
        'label',
59 60
        'description',
60 61
        'required',
62
        'required_on_login',
61 63
        'asked_on_registration',
62 64
        'user_editable',
63 65
        'user_visible',
tests/test_hobo_json.py
54 54

  
55 55
    assert hobo_json['profile']['fields'][1]['name'] == 'first_name'
56 56
    assert hobo_json['profile']['fields'][1]['required'] is True
57

  
58

  
59
def test_required_on_login(request, empty_site):
60
    AttributeDefinition.objects.create(name='cgu', label='CGU', required_on_login=True)
61
    hobo_json = get_hobo_json()
62
    assert hobo_json['profile']['fields'][-1]['name'] == 'cgu'
63
    assert hobo_json['profile']['fields'][-1]['required_on_login'] is True
tests/test_manager.py
68 68
    page.form['name'] = 'test'
69 69
    page.form['description'] = 'test'
70 70
    page.form['required'] = True
71
    page.form['required_on_login'] = True
71 72
    page.form['asked_on_registration'] = False
72 73
    page.form['user_editable'] = False
73 74
    page.form['user_visible'] = False
tests_schemas/example_env.json
9 9
                "label": "Civilit\u00e9",
10 10
                "name": "title",
11 11
                "required": false,
12
                "required_on_login": false,
12 13
                "searchable": false,
13 14
                "user_editable": true,
14 15
                "user_visible": true
......
21 22
                "label": "Pr\u00e9nom",
22 23
                "name": "first_name",
23 24
                "required": true,
25
                "required_on_login": false,
24 26
                "searchable": false,
25 27
                "user_editable": true,
26 28
                "user_visible": true
......
33 35
                "label": "Nom",
34 36
                "name": "last_name",
35 37
                "required": true,
38
                "required_on_login": false,
36 39
                "searchable": false,
37 40
                "user_editable": true,
38 41
                "user_visible": true
......
45 48
                "label": "Adresse \u00e9lectronique",
46 49
                "name": "email",
47 50
                "required": true,
51
                "required_on_login": false,
48 52
                "searchable": false,
49 53
                "user_editable": true,
50 54
                "user_visible": true
......
57 61
                "label": "Adresse",
58 62
                "name": "address",
59 63
                "required": false,
64
                "required_on_login": false,
60 65
                "searchable": false,
61 66
                "user_editable": true,
62 67
                "user_visible": true
......
69 74
                "label": "Code postal",
70 75
                "name": "zipcode",
71 76
                "required": false,
77
                "required_on_login": false,
72 78
                "searchable": false,
73 79
                "user_editable": true,
74 80
                "user_visible": true
......
81 87
                "label": "Commune",
82 88
                "name": "city",
83 89
                "required": false,
90
                "required_on_login": false,
84 91
                "searchable": false,
85 92
                "user_editable": true,
86 93
                "user_visible": true
......
93 100
                "label": "Pays",
94 101
                "name": "country",
95 102
                "required": false,
103
                "required_on_login": false,
96 104
                "searchable": false,
97 105
                "user_editable": true,
98 106
                "user_visible": true
......
105 113
                "label": "Date de naissance",
106 114
                "name": "birthdate",
107 115
                "required": false,
116
                "required_on_login": false,
108 117
                "searchable": false,
109 118
                "user_editable": true,
110 119
                "user_visible": true
......
117 126
                "label": "T\u00e9l\u00e9phone",
118 127
                "name": "phone",
119 128
                "required": false,
129
                "required_on_login": false,
120 130
                "searchable": false,
121 131
                "user_editable": true,
122 132
                "user_visible": true
......
129 139
                "label": "Mobile",
130 140
                "name": "mobile",
131 141
                "required": false,
142
                "required_on_login": false,
132 143
                "searchable": false,
133 144
                "user_editable": true,
134 145
                "user_visible": true
135
-