From 8bfafec7e5c625f8373b9cd44086026447e89a18 Mon Sep 17 00:00:00 2001 From: Benjamin Dauvergne Date: Tue, 18 Mar 2014 13:57:00 +0100 Subject: [PATCH] models: add field enterprise_name, enterprise_siret and enterprise_id --- portail_citoyen/admin.py | 1 + .../locale/fr/LC_MESSAGES/django.po | 233 ++++++++++++------ ...ise_name__add_field_citoyen_enterprise_.py | 88 +++++++ portail_citoyen/models.py | 60 ++++- 4 files changed, 301 insertions(+), 81 deletions(-) create mode 100644 portail_citoyen/migrations/0006_auto__add_field_citoyen_enterprise_name__add_field_citoyen_enterprise_.py diff --git a/portail_citoyen/admin.py b/portail_citoyen/admin.py index a8ccbad..8352766 100644 --- a/portail_citoyen/admin.py +++ b/portail_citoyen/admin.py @@ -39,6 +39,7 @@ if settings.AUTH_USER_MODEL == 'portail_citoyen.Citoyen': (_('Personal info'), {'fields': ('first_name', 'last_name', 'email', 'address', 'city', 'postal_code', 'phone', 'mobile')}), + (_('Enterprise account'), {'fields': ('enterprise_name', 'enterprise_siret', 'enterprise_id')}), (_('Permissions'), {'fields': ('is_active', 'is_superuser', 'groups')}), (_('Important dates'), {'fields': ('last_login', 'date_joined')}), diff --git a/portail_citoyen/locale/fr/LC_MESSAGES/django.po b/portail_citoyen/locale/fr/LC_MESSAGES/django.po index d5d643c..b53b1d0 100644 --- a/portail_citoyen/locale/fr/LC_MESSAGES/django.po +++ b/portail_citoyen/locale/fr/LC_MESSAGES/django.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: portail_citoyen 0.1.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-01-22 14:32+0100\n" -"PO-Revision-Date: 2013-09-06 14:17+0200\n" +"POT-Creation-Date: 2014-03-18 16:39+0100\n" +"PO-Revision-Date: 2014-03-18 16:40+0100\n" "Last-Translator: Benjamin Dauvergne \n" "Language: fr\n" "MIME-Version: 1.0\n" @@ -28,18 +28,22 @@ msgstr "" msgid "Important dates" msgstr "Dates importantes" -#: admin.py:138 apps/data_source_plugin/models.py:40 +#: admin.py:45 +msgid "Enterprise account" +msgstr "Compte entreprise" + +#: admin.py:139 apps/data_source_plugin/models.py:40 msgid "URL" msgstr "" -#: admin.py:170 +#: admin.py:171 msgid "" "Unable to retrieve SAML 2.0 metadatas, please report it to an administrator" msgstr "" "Impossible de récupérer les métadonnées SAML 2.0, veuillez rapporter cet " "incident à un administrateur" -#: admin.py:178 +#: admin.py:179 #, python-format msgid "Unable to create the SAML 2.0 provider: %s" msgstr "" @@ -48,7 +52,7 @@ msgstr "" msgid "account form plugin" msgstr "" -#: cms_plugins.py:73 +#: cms_plugins.py:75 msgid "account management plugin" msgstr "" @@ -88,56 +92,64 @@ msgstr "Reporter un bug" msgid "Dashboard" msgstr "Tableau de bord" -#: models.py:15 +#: models.py:23 +msgid "SIRET number must contain 14 digits" +msgstr "Le SIRET doit contenir 14 chiffres" + +#: models.py:28 +msgid "SIRET validation code does not match" +msgstr "Votre SIRET est invalide, veuillez le vérifier." + +#: models.py:32 msgctxt "person title" msgid "title" msgstr "civilité" -#: models.py:16 +#: models.py:33 msgid "Mrs" msgstr "Madame" -#: models.py:17 +#: models.py:34 msgid "Mr" msgstr "Monsieur" -#: models.py:19 +#: models.py:36 msgid "first name" msgstr "prénom" -#: models.py:20 +#: models.py:37 msgid "last name" msgstr "nom" -#: models.py:21 +#: models.py:38 msgid "e-mail address" msgstr "e-mail" -#: models.py:22 +#: models.py:39 msgid "city" msgstr "ville" -#: models.py:23 +#: models.py:40 msgid "address" msgstr "adresse" -#: models.py:24 +#: models.py:41 msgid "postal code" msgstr "code postal" -#: models.py:27 +#: models.py:44 msgid "Postal code must be five numbers" msgstr "Le code postal doit comporter 5 chiffres" -#: models.py:28 +#: models.py:45 msgid "Invalid postal code" msgstr "Code postal invalide" -#: models.py:31 +#: models.py:48 msgid "phone" msgstr "Téléphone fixe" -#: models.py:33 models.py:36 +#: models.py:50 models.py:53 msgid "" "Phone number must start with 01, 02, 03, 04, 05, 08 or 07 and be ten digits " "long without spaces" @@ -145,15 +157,15 @@ msgstr "" "Les numéros de téléphone fixe doivent commencer par 01, 02, 03, 04, 05, 08 " "ou 07 et contenir 10 chiffres sans espaces" -#: models.py:37 models.py:44 +#: models.py:54 models.py:61 msgid "Invalid mobile phone number" msgstr "" -#: models.py:38 +#: models.py:55 msgid "mobile" msgstr "Téléphone mobile" -#: models.py:40 models.py:43 +#: models.py:57 models.py:60 msgid "" "Mobile phone number must start with 06 or 07 and be ten digits long without " "spaces" @@ -162,71 +174,137 @@ msgstr "" "contenir 10 chiffres sans espaces" #: models.py:62 +msgid "enterprise name" +msgstr "Nom de l'entreprise" + +#: models.py:64 +msgid "enterprise siret" +msgstr "SIRET" + +#: models.py:67 +msgid "enterprise internal id" +msgstr "Identifiant interne de l'entreprise" + +#: models.py:93 +msgid "Enterprise Name" +msgstr "Nom de l'entreprise" + +#: models.py:99 +msgid "Enterprise SIRET" +msgstr "SIRET" + +#: models.py:105 +msgid "Enterprise ID" +msgstr "Identifiant interne de l'entreprise" + +#: models.py:115 msgid "role" msgstr "rôle" -#: models.py:63 +#: models.py:116 msgid "roles" msgstr "rôles" #: settings.py:45 msgid "French" -msgstr "" +msgstr "Français" #: apps/a2_service_list_plugin/cms_plugins.py:11 msgid "Authentic2 Service List Plugin" msgstr "" -#: apps/auquotidien_plugin/cms_plugins.py:27 -#: apps/auquotidien_plugin/models.py:43 -msgid "au-quotidien active forms plugin" +#: apps/auquotidien_plugin/cms_plugins.py:63 +#: apps/auquotidien_plugin/models.py:67 apps/auquotidien_plugin/models.py:68 +msgid "au-quotidien active forms" msgstr "" -#: apps/auquotidien_plugin/models.py:18 +#: apps/auquotidien_plugin/cms_plugins.py:75 +#: apps/auquotidien_plugin/models.py:82 +msgid "au-quotidien categories" +msgstr "" + +#: apps/auquotidien_plugin/models.py:14 apps/feed_plugin/models.py:35 +msgid "name" +msgstr "nom" + +#: apps/auquotidien_plugin/models.py:16 +msgid "active" +msgstr "" + +#: apps/auquotidien_plugin/models.py:17 +msgid "order" +msgstr "" + +#: apps/auquotidien_plugin/models.py:19 msgid "liberty service provider for the au-quotidien service" msgstr "" -#: apps/auquotidien_plugin/models.py:20 +#: apps/auquotidien_plugin/models.py:21 msgid "origin" msgstr "" -#: apps/auquotidien_plugin/models.py:21 +#: apps/auquotidien_plugin/models.py:22 msgid "hashing algorithm" msgstr "" -#: apps/auquotidien_plugin/models.py:23 +#: apps/auquotidien_plugin/models.py:24 msgid "signature key" msgstr "" -#: apps/auquotidien_plugin/models.py:30 apps/auquotidien_plugin/models.py:37 +#: apps/auquotidien_plugin/models.py:26 apps/data_source_plugin/models.py:46 +msgid "verify certificate" +msgstr "" + +#: apps/auquotidien_plugin/models.py:28 apps/data_source_plugin/models.py:48 +msgid "allows HTTP redirections" +msgstr "" + +#: apps/auquotidien_plugin/models.py:29 apps/data_source_plugin/models.py:49 +msgid "it can improve latencies to forbid redirection follow" +msgstr "" + +#: apps/auquotidien_plugin/models.py:31 apps/data_source_plugin/models.py:51 +msgid "timeout" +msgstr "" + +#: apps/auquotidien_plugin/models.py:33 apps/data_source_plugin/models.py:53 +msgid "time in second to wait before failing to download a datasource" +msgstr "" + +#: apps/auquotidien_plugin/models.py:50 msgid "au-quotidien API endpoint" msgstr "" -#: apps/auquotidien_plugin/models.py:31 +#: apps/auquotidien_plugin/models.py:51 msgid "au-quotidien API endpoints" msgstr "" -#: apps/auquotidien_plugin/models.py:38 -msgid "maximum forms" -msgstr "" - -#: apps/auquotidien_plugin/models.py:39 +#: apps/auquotidien_plugin/models.py:56 apps/auquotidien_plugin/models.py:71 msgid "refresh timeout" msgstr "" -#: apps/auquotidien_plugin/models.py:40 apps/data_source_plugin/models.py:101 +#: apps/auquotidien_plugin/models.py:57 apps/auquotidien_plugin/models.py:72 +#: apps/data_source_plugin/models.py:108 msgid "Number of seconds between two web service calls" msgstr "" -#: apps/auquotidien_plugin/models.py:44 -msgid "au-quotidien active forms plugins" +#: apps/auquotidien_plugin/models.py:61 apps/auquotidien_plugin/models.py:76 +msgid "refresh {0}" msgstr "" -#: apps/data_source_plugin/cms_plugins.py:134 +#: apps/auquotidien_plugin/templates/auquotidien_plugin/categories.html:2 +msgid "Other procedures.." +msgstr "" + +#: apps/auquotidien_plugin/templates/auquotidien_plugin/categories.html:20 +msgid "All categories" +msgstr "" + +#: apps/data_source_plugin/cms_plugins.py:137 msgid "Raw Inline Template Plugin" msgstr "" -#: apps/data_source_plugin/cms_plugins.py:143 +#: apps/data_source_plugin/cms_plugins.py:146 msgid "Data Source Plugin" msgstr "" @@ -263,48 +341,43 @@ msgstr "" msgid "Signature key" msgstr "" -#: apps/data_source_plugin/models.py:46 -msgid "verify certificate" -msgstr "" - -#: apps/data_source_plugin/models.py:51 +#: apps/data_source_plugin/models.py:58 msgid "You must choose a hashing algorithm if you set a signature key" msgstr "" -#: apps/data_source_plugin/models.py:55 -#, python-brace-format +#: apps/data_source_plugin/models.py:62 msgid "Data source {name}, url: {url} mime-type: {mime_type}" msgstr "" -#: apps/data_source_plugin/models.py:59 +#: apps/data_source_plugin/models.py:66 msgid "Data source" msgstr "" -#: apps/data_source_plugin/models.py:60 +#: apps/data_source_plugin/models.py:67 msgid "Data sources" msgstr "" -#: apps/data_source_plugin/models.py:76 +#: apps/data_source_plugin/models.py:83 msgid "Overloaded template" msgstr "" -#: apps/data_source_plugin/models.py:91 apps/data_source_plugin/models.py:95 +#: apps/data_source_plugin/models.py:98 apps/data_source_plugin/models.py:102 msgid "Raw inline template plugin" msgstr "" -#: apps/data_source_plugin/models.py:92 +#: apps/data_source_plugin/models.py:99 msgid "Raw inline template plugins" msgstr "" -#: apps/data_source_plugin/models.py:99 +#: apps/data_source_plugin/models.py:106 msgid "Maximum entries" msgstr "" -#: apps/data_source_plugin/models.py:100 +#: apps/data_source_plugin/models.py:107 msgid "Refresh timeout" msgstr "" -#: apps/data_source_plugin/models.py:108 +#: apps/data_source_plugin/models.py:115 #, python-format msgid "DataSource with %d sources" msgstr "" @@ -314,9 +387,8 @@ msgid "federation management plugin" msgstr "" #: apps/federation_plugin/models.py:19 -#, fuzzy msgid "provider restrictions" -msgstr "Enregistrement réussi" +msgstr "restriction sur les fournisseurs" #: apps/federation_plugin/models.py:20 msgid "" @@ -350,11 +422,11 @@ msgstr[1] "" msgid "You have no federation currently." msgstr "" -#: apps/feed_plugin/cms_plugins.py:23 +#: apps/feed_plugin/cms_plugins.py:18 msgid "select user feeds" msgstr "" -#: apps/feed_plugin/cms_plugins.py:47 +#: apps/feed_plugin/cms_plugins.py:42 msgid "show user feeds" msgstr "" @@ -362,36 +434,31 @@ msgstr "" msgid "Your feeds" msgstr "" -#: apps/feed_plugin/models.py:12 +#: apps/feed_plugin/models.py:24 msgid "user feed subscription" msgstr "" -#: apps/feed_plugin/models.py:13 +#: apps/feed_plugin/models.py:25 msgid "user feed subscriptions" msgstr "" -#: apps/feed_plugin/models.py:23 -#, fuzzy -msgid "name" -msgstr "nom" - -#: apps/feed_plugin/models.py:26 +#: apps/feed_plugin/models.py:38 msgid "Color" msgstr "" -#: apps/feed_plugin/models.py:27 +#: apps/feed_plugin/models.py:39 msgid "as an hexadecimal number" msgstr "" -#: apps/feed_plugin/models.py:30 +#: apps/feed_plugin/models.py:42 msgid "CSS classes" msgstr "" -#: apps/feed_plugin/models.py:34 +#: apps/feed_plugin/models.py:86 msgid "feed" msgstr "" -#: apps/feed_plugin/models.py:35 +#: apps/feed_plugin/models.py:87 msgid "feeds" msgstr "" @@ -417,15 +484,15 @@ msgstr "" msgid "Logout" msgstr "" -#: apps/msp/models.py:11 +#: apps/msp/models.py:14 msgid "user" msgstr "" -#: apps/msp/models.py:12 +#: apps/msp/models.py:15 msgid "access grant code" msgstr "" -#: apps/msp/models.py:13 +#: apps/msp/models.py:16 msgid "access token" msgstr "" @@ -458,12 +525,10 @@ msgid "passerelle url" msgstr "" #: apps/passerelle_register_plugin/models.py:22 -#, fuzzy msgid "ressources restrictions" msgstr "Enregistrement réussi" #: apps/passerelle_register_plugin/models.py:23 -#, fuzzy msgid "transports restrictions" msgstr "Enregistrement réussi" @@ -593,3 +658,13 @@ msgstr "Enregistrement réussi" msgid "You are now registered. Activation email sent." msgstr "" "Vous êtes désormais enregistré. Un courriel d'activation vous a été envoyé." + +#~ msgid "Invalid SIRET number" +#~ msgstr "Numéro de SIRET invalide" + +#~ msgid "The SIRET of your enterprise" +#~ msgstr "" +#~ "Pour les entreprises étrangères utiliser 99999999999999, pour les " +#~ "porteurs de project BIC utiliser 88888888888888, pour les UMR, organismes " +#~ "de recherche ou écoles utiliser 77777777777777, pour les organismes en " +#~ "attente de mise à jour du SIRET utiliser 66666666666666." diff --git a/portail_citoyen/migrations/0006_auto__add_field_citoyen_enterprise_name__add_field_citoyen_enterprise_.py b/portail_citoyen/migrations/0006_auto__add_field_citoyen_enterprise_name__add_field_citoyen_enterprise_.py new file mode 100644 index 0000000..2e302e2 --- /dev/null +++ b/portail_citoyen/migrations/0006_auto__add_field_citoyen_enterprise_name__add_field_citoyen_enterprise_.py @@ -0,0 +1,88 @@ +# -*- coding: utf-8 -*- +from south.utils import datetime_utils as datetime +from south.db import db +from south.v2 import SchemaMigration +from django.db import models + + +class Migration(SchemaMigration): + + def forwards(self, orm): + # Adding field 'Citoyen.enterprise_name' + db.add_column(u'portail_citoyen_citoyen', 'enterprise_name', + self.gf('django.db.models.fields.CharField')(default='', max_length=64, blank=True), + keep_default=False) + + # Adding field 'Citoyen.enterprise_siret' + db.add_column(u'portail_citoyen_citoyen', 'enterprise_siret', + self.gf('django.db.models.fields.CharField')(default='', max_length=64, blank=True), + keep_default=False) + + # Adding field 'Citoyen.enterprise_id' + db.add_column(u'portail_citoyen_citoyen', 'enterprise_id', + self.gf('django.db.models.fields.CharField')(default='', max_length=64, blank=True), + keep_default=False) + + + def backwards(self, orm): + # Deleting field 'Citoyen.enterprise_name' + db.delete_column(u'portail_citoyen_citoyen', 'enterprise_name') + + # Deleting field 'Citoyen.enterprise_siret' + db.delete_column(u'portail_citoyen_citoyen', 'enterprise_siret') + + # Deleting field 'Citoyen.enterprise_id' + db.delete_column(u'portail_citoyen_citoyen', 'enterprise_id') + + + models = { + u'auth.group': { + 'Meta': {'object_name': 'Group'}, + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), + 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) + }, + u'auth.permission': { + 'Meta': {'ordering': "(u'content_type__app_label', u'content_type__model', u'codename')", 'unique_together': "((u'content_type', u'codename'),)", 'object_name': 'Permission'}, + 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['contenttypes.ContentType']"}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) + }, + u'contenttypes.contenttype': { + 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, + 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) + }, + u'portail_citoyen.citoyen': { + 'Meta': {'object_name': 'Citoyen'}, + 'address': ('django.db.models.fields.CharField', [], {'max_length': '128', 'blank': 'True'}), + 'backend': ('django.db.models.fields.CharField', [], {'max_length': '64', 'blank': 'True'}), + 'backend_id': ('django.db.models.fields.CharField', [], {'max_length': '256', 'blank': 'True'}), + 'city': ('django.db.models.fields.CharField', [], {'max_length': '64', 'blank': 'True'}), + 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '128', 'blank': 'True'}), + 'enterprise_id': ('django.db.models.fields.CharField', [], {'max_length': '64', 'blank': 'True'}), + 'enterprise_name': ('django.db.models.fields.CharField', [], {'max_length': '64', 'blank': 'True'}), + 'enterprise_siret': ('django.db.models.fields.CharField', [], {'max_length': '64', 'blank': 'True'}), + 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'mobile': ('django.db.models.fields.CharField', [], {'max_length': '16', 'blank': 'True'}), + 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), + 'phone': ('django.db.models.fields.CharField', [], {'max_length': '16', 'blank': 'True'}), + 'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '5', 'blank': 'True'}), + 'title': ('django.db.models.fields.CharField', [], {'max_length': '16', 'blank': 'True'}), + 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), + 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '256'}) + } + } + + complete_apps = ['portail_citoyen'] \ No newline at end of file diff --git a/portail_citoyen/models.py b/portail_citoyen/models.py index 56ca9a9..052f266 100644 --- a/portail_citoyen/models.py +++ b/portail_citoyen/models.py @@ -1,12 +1,32 @@ +import string + from django.db import models from django.core.validators import RegexValidator, MinLengthValidator, \ MaxLengthValidator from django.utils.translation import ugettext_lazy as _, pgettext_lazy from django.contrib.auth.models import Group +from django.core.exceptions import ValidationError from authentic2.models import AbstractUser +def only_digits(value): + return u''.join(x for x in value if x in string.digits) + + +def validate_lun(value): + l = [(int(x)* (1+i%2)) for i, x in enumerate(reversed(value))] + return sum(x-9 if x > 10 else x for x in l) % 10 == 0 + +def validate_siret(value): + RegexValidator(r'^( *[0-9] *){14}$', + _('SIRET number must contain 14 digits'), 'coin')(value) + value = only_digits(value) + if value in ('9'*14, '8'*14, '7'*14, '6'*14): + return + if not validate_lun(value) or not validate_lun(value[:9]): + raise ValidationError(_('SIRET validation code does not match')) + class Citoyen(AbstractUser): title = models.CharField(pgettext_lazy('person title', 'title'), max_length=16, blank=True, @@ -39,11 +59,25 @@ class Citoyen(AbstractUser): RegexValidator(r'^0[67][0-9]{8}$', _('Mobile phone number must start with 06 or 07 and be ten digits long without spaces'), _('Invalid mobile phone number')),]) + enterprise_name = models.CharField(verbose_name=_('enterprise name'), + max_length=64, blank=True) + enterprise_siret = models.CharField(verbose_name=_('enterprise siret'), + max_length=20, blank=True, + validators=[validate_siret]) + enterprise_id = models.CharField(verbose_name=_('enterprise internal id'), + max_length=64, blank=True) - REQUIRED_FIELDS = ['first_name', 'last_name', 'email'] + def clean(self): + if self.enterprise_siret: + self.enterprise_siret = only_digits(self.enterprise_siret) + super(Citoyen, self).clean() + + + REQUIRED_FIELDS = ['first_name', 'last_name', 'email', 'enterprise_name', 'enterprise_siret'] USERNAME = 'username' USER_PROFILE = ( 'title', 'username', 'first_name', 'last_name', 'email', - 'phone', 'mobile', 'address', 'postal_code', 'city', 'roles') + 'phone', 'mobile', 'address', 'postal_code', 'city', 'roles', + 'enterprise_name', 'enterprise_siret') from authentic2.attribute_aggregator.core import ATTRIBUTE_MAPPING @@ -53,6 +87,28 @@ ATTRIBUTE_MAPPING['street']['profile_field_name'] = 'address' ATTRIBUTE_MAPPING['postalCode']['profile_field_name'] = 'postal_code' ATTRIBUTE_MAPPING['mobile']['profile_field_name'] = 'mobile' +ATTRIBUTE_MAPPING.update({ + "enterpriseName": { + "oid": "2.5.4.7", + "display_name": _("Enterprise Name"), + "profile_field_name": "enterprise_name", + "type": "http://www.w3.org/2001/XMLSchema#string", + }, + "enterpriseSIRET": { + "oid": "2.5.4.7", + "display_name": _("Enterprise SIRET"), + "profile_field_name": "enterprise_siret", + "type": "http://www.w3.org/2001/XMLSchema#string", + }, + "enterpriseId": { + "oid": "2.5.4.7", + "display_name": _("Enterprise ID"), + "profile_field_name": "enterprise_id", + "type": "http://www.w3.org/2001/XMLSchema#string", + }, +}) + + class Role(Group): class Meta: proxy = True