October feature list #226
8 changed files with 80 additions and 172 deletions
|
|
@ -1,4 +1,4 @@
|
||||||
# Generated by Django 5.2.7 on 2025-10-17 00:58
|
# Generated by Django 5.2.7 on 2025-10-22 09:38
|
||||||
|
|
||||||
import django.db.models.deletion
|
import django.db.models.deletion
|
||||||
import rules.contrib.models
|
import rules.contrib.models
|
||||||
|
|
@ -9,10 +9,88 @@ from django.db import migrations, models
|
||||||
class Migration(migrations.Migration):
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
dependencies = [
|
dependencies = [
|
||||||
("core", "0010_organizationorigin_billing_entity"),
|
("core", "0008_organization_osb_guid_service_osb_service_id_and_more"),
|
||||||
]
|
]
|
||||||
|
|
||||||
operations = [
|
operations = [
|
||||||
|
migrations.AddField(
|
||||||
|
model_name="controlplane",
|
||||||
|
name="wildcard_dns",
|
||||||
|
field=models.CharField(
|
||||||
|
blank=True,
|
||||||
|
help_text="Wildcard DNS domain for auto-generating FQDNs (e.g., apps.exoscale-ch-gva-2-prod2.services.servala.com)",
|
||||||
|
max_length=255,
|
||||||
|
null=True,
|
||||||
|
verbose_name="Wildcard DNS",
|
||||||
|
),
|
||||||
|
),
|
||||||
|
migrations.AddField(
|
||||||
|
model_name="organization",
|
||||||
|
name="limit_osb_services",
|
||||||
|
field=models.ManyToManyField(
|
||||||
|
blank=True,
|
||||||
|
related_name="+",
|
||||||
|
to="core.service",
|
||||||
|
verbose_name="Services activated from OSB",
|
||||||
|
),
|
||||||
|
),
|
||||||
|
migrations.AddField(
|
||||||
|
model_name="organizationorigin",
|
||||||
|
name="billing_entity",
|
||||||
|
field=models.ForeignKey(
|
||||||
|
help_text="If set, this billing entity will be used on new organizations with this origin.",
|
||||||
|
null=True,
|
||||||
|
on_delete=django.db.models.deletion.PROTECT,
|
||||||
|
related_name="origins",
|
||||||
|
to="core.billingentity",
|
||||||
|
verbose_name="Billing entity",
|
||||||
|
),
|
||||||
|
),
|
||||||
|
migrations.AddField(
|
||||||
|
model_name="organizationorigin",
|
||||||
|
name="default_odoo_sale_order_id",
|
||||||
|
field=models.IntegerField(
|
||||||
|
blank=True,
|
||||||
|
help_text="If set, this sale order will be used for new organizations with this origin.",
|
||||||
|
null=True,
|
||||||
|
verbose_name="Default Odoo Sale Order ID",
|
||||||
|
),
|
||||||
|
),
|
||||||
|
migrations.AddField(
|
||||||
|
model_name="organizationorigin",
|
||||||
|
name="limit_cloudproviders",
|
||||||
|
field=models.ManyToManyField(
|
||||||
|
blank=True,
|
||||||
|
help_text="If set, all organizations with this origin will be limited to these cloud providers.",
|
||||||
|
related_name="+",
|
||||||
|
to="core.cloudprovider",
|
||||||
|
verbose_name="Limit to these Cloud providers",
|
||||||
|
),
|
||||||
|
),
|
||||||
|
migrations.AddField(
|
||||||
|
model_name="servicedefinition",
|
||||||
|
name="advanced_fields",
|
||||||
|
field=models.JSONField(
|
||||||
|
blank=True,
|
||||||
|
default=list,
|
||||||
|
help_text=(
|
||||||
|
"Array of field names that should be hidden behind an 'Advanced' toggle."
|
||||||
|
"Use dot notation (e.g., ['spec.parameters.monitoring.enabled', 'spec.parameters.backup.schedule'])"
|
||||||
|
),
|
||||||
|
null=True,
|
||||||
|
verbose_name="Advanced fields",
|
||||||
|
),
|
||||||
|
),
|
||||||
|
migrations.AddField(
|
||||||
|
model_name="serviceoffering",
|
||||||
|
name="external_links",
|
||||||
|
field=models.JSONField(
|
||||||
|
blank=True,
|
||||||
|
help_text='JSON array of link objects: {"url": "…", "title": "…"}. ',
|
||||||
|
null=True,
|
||||||
|
verbose_name="External links",
|
||||||
|
),
|
||||||
|
),
|
||||||
migrations.CreateModel(
|
migrations.CreateModel(
|
||||||
name="OrganizationInvitation",
|
name="OrganizationInvitation",
|
||||||
fields=[
|
fields=[
|
||||||
|
|
@ -1,23 +0,0 @@
|
||||||
# Generated by Django 5.2.7 on 2025-10-16 22:52
|
|
||||||
|
|
||||||
from django.db import migrations, models
|
|
||||||
|
|
||||||
|
|
||||||
class Migration(migrations.Migration):
|
|
||||||
|
|
||||||
dependencies = [
|
|
||||||
("core", "0008_organization_osb_guid_service_osb_service_id_and_more"),
|
|
||||||
]
|
|
||||||
|
|
||||||
operations = [
|
|
||||||
migrations.AddField(
|
|
||||||
model_name="organization",
|
|
||||||
name="limit_osb_services",
|
|
||||||
field=models.ManyToManyField(
|
|
||||||
blank=True,
|
|
||||||
related_name="+",
|
|
||||||
to="core.service",
|
|
||||||
verbose_name="Services activated from OSB",
|
|
||||||
),
|
|
||||||
),
|
|
||||||
]
|
|
||||||
|
|
@ -1,26 +0,0 @@
|
||||||
# Generated by Django 5.2.7 on 2025-10-17 00:22
|
|
||||||
|
|
||||||
import django.db.models.deletion
|
|
||||||
from django.db import migrations, models
|
|
||||||
|
|
||||||
|
|
||||||
class Migration(migrations.Migration):
|
|
||||||
|
|
||||||
dependencies = [
|
|
||||||
("core", "0009_organization_limit_cloudproviders_and_more"),
|
|
||||||
]
|
|
||||||
|
|
||||||
operations = [
|
|
||||||
migrations.AddField(
|
|
||||||
model_name="organizationorigin",
|
|
||||||
name="billing_entity",
|
|
||||||
field=models.ForeignKey(
|
|
||||||
help_text="If set, this billing entity will be used on new organizations with this origin.",
|
|
||||||
null=True,
|
|
||||||
on_delete=django.db.models.deletion.PROTECT,
|
|
||||||
related_name="origins",
|
|
||||||
to="core.billingentity",
|
|
||||||
verbose_name="Billing entity",
|
|
||||||
),
|
|
||||||
),
|
|
||||||
]
|
|
||||||
|
|
@ -1,23 +0,0 @@
|
||||||
# Generated by Django 5.2.7 on 2025-10-17 02:23
|
|
||||||
|
|
||||||
from django.db import migrations, models
|
|
||||||
|
|
||||||
|
|
||||||
class Migration(migrations.Migration):
|
|
||||||
|
|
||||||
dependencies = [
|
|
||||||
("core", "0011_organizationinvitation"),
|
|
||||||
]
|
|
||||||
|
|
||||||
operations = [
|
|
||||||
migrations.AddField(
|
|
||||||
model_name="serviceoffering",
|
|
||||||
name="external_links",
|
|
||||||
field=models.JSONField(
|
|
||||||
blank=True,
|
|
||||||
help_text='JSON array of link objects: {"url": "…", "title": "…"}. ',
|
|
||||||
null=True,
|
|
||||||
verbose_name="External links",
|
|
||||||
),
|
|
||||||
),
|
|
||||||
]
|
|
||||||
|
|
@ -1,24 +0,0 @@
|
||||||
# Generated by Django 5.2.7 on 2025-10-17 02:51
|
|
||||||
|
|
||||||
from django.db import migrations, models
|
|
||||||
|
|
||||||
|
|
||||||
class Migration(migrations.Migration):
|
|
||||||
|
|
||||||
dependencies = [
|
|
||||||
("core", "0012_serviceoffering_external_links"),
|
|
||||||
]
|
|
||||||
|
|
||||||
operations = [
|
|
||||||
migrations.AddField(
|
|
||||||
model_name="controlplane",
|
|
||||||
name="wildcard_dns",
|
|
||||||
field=models.CharField(
|
|
||||||
blank=True,
|
|
||||||
help_text="Wildcard DNS domain for auto-generating FQDNs (e.g., apps.exoscale-ch-gva-2-prod2.services.servala.com)",
|
|
||||||
max_length=255,
|
|
||||||
null=True,
|
|
||||||
verbose_name="Wildcard DNS",
|
|
||||||
),
|
|
||||||
),
|
|
||||||
]
|
|
||||||
|
|
@ -1,27 +0,0 @@
|
||||||
# Generated by Django 5.2.7 on 2025-10-17 03:23
|
|
||||||
|
|
||||||
from django.db import migrations, models
|
|
||||||
|
|
||||||
|
|
||||||
class Migration(migrations.Migration):
|
|
||||||
|
|
||||||
dependencies = [
|
|
||||||
("core", "0013_controlplane_wildcard_dns"),
|
|
||||||
]
|
|
||||||
|
|
||||||
operations = [
|
|
||||||
migrations.AddField(
|
|
||||||
model_name="servicedefinition",
|
|
||||||
name="advanced_fields",
|
|
||||||
field=models.JSONField(
|
|
||||||
blank=True,
|
|
||||||
default=list,
|
|
||||||
help_text=(
|
|
||||||
"Array of field names that should be hidden behind an 'Advanced' toggle. "
|
|
||||||
"Use dot notation (e.g., ['spec.parameters.monitoring.enabled', 'spec.parameters.backup.schedule'])"
|
|
||||||
),
|
|
||||||
null=True,
|
|
||||||
verbose_name="Advanced fields",
|
|
||||||
),
|
|
||||||
),
|
|
||||||
]
|
|
||||||
|
|
@ -1,24 +0,0 @@
|
||||||
# Generated by Django 5.2.7 on 2025-10-21 16:04
|
|
||||||
|
|
||||||
from django.db import migrations, models
|
|
||||||
|
|
||||||
|
|
||||||
class Migration(migrations.Migration):
|
|
||||||
|
|
||||||
dependencies = [
|
|
||||||
("core", "0014_servicedefinition_advanced_fields"),
|
|
||||||
]
|
|
||||||
|
|
||||||
operations = [
|
|
||||||
migrations.AddField(
|
|
||||||
model_name="organizationorigin",
|
|
||||||
name="limit_cloudproviders",
|
|
||||||
field=models.ManyToManyField(
|
|
||||||
blank=True,
|
|
||||||
help_text="If set, all organizations with this origin will be limited to these cloud providers.",
|
|
||||||
related_name="+",
|
|
||||||
to="core.cloudprovider",
|
|
||||||
verbose_name="Limit to these Cloud providers",
|
|
||||||
),
|
|
||||||
),
|
|
||||||
]
|
|
||||||
|
|
@ -1,23 +0,0 @@
|
||||||
# Generated by Django 5.2.7 on 2025-10-22 09:32
|
|
||||||
|
|
||||||
from django.db import migrations, models
|
|
||||||
|
|
||||||
|
|
||||||
class Migration(migrations.Migration):
|
|
||||||
|
|
||||||
dependencies = [
|
|
||||||
("core", "0015_organizationorigin_limit_cloudproviders"),
|
|
||||||
]
|
|
||||||
|
|
||||||
operations = [
|
|
||||||
migrations.AddField(
|
|
||||||
model_name="organizationorigin",
|
|
||||||
name="default_odoo_sale_order_id",
|
|
||||||
field=models.IntegerField(
|
|
||||||
blank=True,
|
|
||||||
help_text="If set, this sale order will be used for new organizations with this origin.",
|
|
||||||
null=True,
|
|
||||||
verbose_name="Default Odoo Sale Order ID",
|
|
||||||
),
|
|
||||||
),
|
|
||||||
]
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue