From b2b3dd33c2cb4fd900a4015a553627d145f6d2d3 Mon Sep 17 00:00:00 2001 From: hoang Date: Wed, 5 Feb 2025 15:10:28 +0700 Subject: [PATCH 1/7] Add a migration for the change in regex validation A new migration file is generated corresponding to the regex change of labelname in commit 7fadbc4b. --- ...r_project_name_alter_rule_name_and_more.py | 39 +++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 promgen/migrations/0024_alter_farm_name_alter_project_name_alter_rule_name_and_more.py diff --git a/promgen/migrations/0024_alter_farm_name_alter_project_name_alter_rule_name_and_more.py b/promgen/migrations/0024_alter_farm_name_alter_project_name_alter_rule_name_and_more.py new file mode 100644 index 000000000..c3c178d8a --- /dev/null +++ b/promgen/migrations/0024_alter_farm_name_alter_project_name_alter_rule_name_and_more.py @@ -0,0 +1,39 @@ +# Generated by Django 4.2.11 on 2025-02-03 02:50 + +import django.core.validators +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('promgen', '0023_shard_authorization'), + ] + + operations = [ + migrations.AlterField( + model_name='farm', + name='name', + field=models.CharField(max_length=128, validators=[django.core.validators.RegexValidator('^[\\w][- \\w]+$', 'Unicode letters, numbers, underscores, or hyphens or spaces')]), + ), + migrations.AlterField( + model_name='project', + name='name', + field=models.CharField(max_length=128, unique=True, validators=[django.core.validators.RegexValidator('^[\\w][- \\w]+$', 'Unicode letters, numbers, underscores, or hyphens or spaces')]), + ), + migrations.AlterField( + model_name='rule', + name='name', + field=models.CharField(max_length=128, unique=True, validators=[django.core.validators.RegexValidator('^[a-zA-Z_:][a-zA-Z0-9_:]*$', 'Only alphanumeric characters are allowed.')]), + ), + migrations.AlterField( + model_name='service', + name='name', + field=models.CharField(max_length=128, unique=True, validators=[django.core.validators.RegexValidator('^[\\w][- \\w]+$', 'Unicode letters, numbers, underscores, or hyphens or spaces')]), + ), + migrations.AlterField( + model_name='shard', + name='name', + field=models.CharField(max_length=128, unique=True, validators=[django.core.validators.RegexValidator('^[\\w][- \\w]+$', 'Unicode letters, numbers, underscores, or hyphens or spaces')]), + ), + ] From 5a592e56d563b43c19dd0f54f1aba5b33f9a3d84 Mon Sep 17 00:00:00 2001 From: hoang Date: Wed, 5 Feb 2025 15:48:41 +0700 Subject: [PATCH 2/7] Add 'owner' field to Farm object We add an 'owner' field to the Farm object. By default, the user who creates a Farm will become the owner. Farm's owner could be changed. --- promgen/migrations/0025_farm_owner.py | 21 +++++++++++++++++++++ promgen/models.py | 3 +++ promgen/templates/promgen/farm_detail.html | 6 +++++- promgen/tests/examples/rest.farm.1.json | 1 + promgen/tests/examples/rest.farm.json | 4 +++- promgen/views.py | 8 +++++++- 6 files changed, 40 insertions(+), 3 deletions(-) create mode 100644 promgen/migrations/0025_farm_owner.py diff --git a/promgen/migrations/0025_farm_owner.py b/promgen/migrations/0025_farm_owner.py new file mode 100644 index 000000000..c45549ead --- /dev/null +++ b/promgen/migrations/0025_farm_owner.py @@ -0,0 +1,21 @@ +# Generated by Django 4.2.11 on 2025-02-05 08:11 + +from django.conf import settings +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ('promgen', '0024_alter_farm_name_alter_project_name_alter_rule_name_and_more'), + ] + + operations = [ + migrations.AddField( + model_name='farm', + name='owner', + field=models.ForeignKey(default=None, null=True, on_delete=django.db.models.deletion.SET_NULL, to=settings.AUTH_USER_MODEL), + ), + ] diff --git a/promgen/models.py b/promgen/models.py index d99467a82..f4f4e92a3 100644 --- a/promgen/models.py +++ b/promgen/models.py @@ -266,6 +266,9 @@ def __str__(self): class Farm(models.Model): name = models.CharField(max_length=128, validators=[validators.labelvalue]) source = models.CharField(max_length=128) + owner = models.ForeignKey( + settings.AUTH_USER_MODEL, on_delete=models.SET_NULL, null=True, default=None + ) class Meta: ordering = ["name"] diff --git a/promgen/templates/promgen/farm_detail.html b/promgen/templates/promgen/farm_detail.html index 8e031433d..f0ca74ed6 100644 --- a/promgen/templates/promgen/farm_detail.html +++ b/promgen/templates/promgen/farm_detail.html @@ -4,7 +4,11 @@ {% block content %}