From c03b743a58d53120616b839ac48e4de0d73a262c Mon Sep 17 00:00:00 2001 From: Valentin Deniaud Date: Thu, 11 May 2023 16:07:59 +0200 Subject: [PATCH] agent: save role slug during provisionning (#77487) --- hobo/agent/common/migrations/0006_role_slug.py | 18 ++++++++++++++++++ hobo/agent/common/models.py | 1 + hobo/provisionning/utils.py | 4 ++++ tests_multitenant/test_hobo_notify.py | 1 + 4 files changed, 24 insertions(+) create mode 100644 hobo/agent/common/migrations/0006_role_slug.py diff --git a/hobo/agent/common/migrations/0006_role_slug.py b/hobo/agent/common/migrations/0006_role_slug.py new file mode 100644 index 0000000..ec9e6ba --- /dev/null +++ b/hobo/agent/common/migrations/0006_role_slug.py @@ -0,0 +1,18 @@ +# Generated by Django 3.2.18 on 2023-05-11 14:05 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + dependencies = [ + ('common', '0005_userextraattributes'), + ] + + operations = [ + migrations.AddField( + model_name='role', + name='slug', + field=models.SlugField(default='', max_length=256), + preserve_default=False, + ), + ] diff --git a/hobo/agent/common/models.py b/hobo/agent/common/models.py index 5cc80c2..57f5514 100644 --- a/hobo/agent/common/models.py +++ b/hobo/agent/common/models.py @@ -7,6 +7,7 @@ from django.db.models import JSONField class Role(Group): uuid = models.CharField(max_length=32, db_index=True) + slug = models.SlugField(max_length=256) description = models.TextField(default='') details = models.TextField(default='') emails = ArrayField(models.CharField(max_length=128), default=list) diff --git a/hobo/provisionning/utils.py b/hobo/provisionning/utils.py index 9c80441..2861e79 100644 --- a/hobo/provisionning/utils.py +++ b/hobo/provisionning/utils.py @@ -201,6 +201,7 @@ class NotificationProcessing: name=role_name, defaults={ 'uuid': o['uuid'], + 'slug': o['slug'], 'description': o['description'], 'details': o.get('details', ''), 'emails': o.get('emails', []), @@ -218,6 +219,9 @@ class NotificationProcessing: if role.uuid != o['uuid']: role.uuid = o['uuid'] save = True + if role.slug != o['slug']: + role.slug = o['slug'] + save = True if role.description != o['description']: role.description = o['description'] save = True diff --git a/tests_multitenant/test_hobo_notify.py b/tests_multitenant/test_hobo_notify.py index 5d025c1..cad8908 100644 --- a/tests_multitenant/test_hobo_notify.py +++ b/tests_multitenant/test_hobo_notify.py @@ -63,6 +63,7 @@ def test_hobo_notify_roles(caplog, tenants): role = Role.objects.get() assert role.uuid == '12345' assert role.name == 'Service petite enfance' + assert role.slug == 'service-petite-enfance' assert role.description == 'Role du service petite enfance %s' % tenant.domain_url assert role.details == 'Some details' assert role.emails == ['foo@bar.com', 'test@entrouvert.org']