Docs + default origin setting
This commit is contained in:
parent
85db7af0e1
commit
e8c624d408
4 changed files with 27 additions and 1 deletions
|
@ -33,3 +33,6 @@ SERVALA_EMAIL_PASSWORD=''
|
||||||
# At most one of the following settings may be set to True
|
# At most one of the following settings may be set to True
|
||||||
SERVALA_EMAIL_TLS='False'
|
SERVALA_EMAIL_TLS='False'
|
||||||
SERVALA_EMAIL_SSL='False'
|
SERVALA_EMAIL_SSL='False'
|
||||||
|
|
||||||
|
# If the default OrganizationOrigin is **not** the one with the database ID 1, set it here.
|
||||||
|
SERVALA_DEFAULT_ORIGIN='1'
|
||||||
|
|
|
@ -49,7 +49,8 @@ class BillingEntity(models.Model):
|
||||||
class OrganizationOrigin(models.Model):
|
class OrganizationOrigin(models.Model):
|
||||||
"""
|
"""
|
||||||
Every organization has an origin, though origins may be
|
Every organization has an origin, though origins may be
|
||||||
shared across different organizations.
|
shared across different organizations. The default origin
|
||||||
|
(by PK) is configured in the settings as SERVALA_DEFAULT_ORIGIN.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
name = models.CharField(max_length=100, verbose_name=_("Name"))
|
name = models.CharField(max_length=100, verbose_name=_("Name"))
|
||||||
|
|
|
@ -3,6 +3,10 @@ from django.utils.translation import gettext_lazy as _
|
||||||
|
|
||||||
|
|
||||||
class ServiceCategory(models.Model):
|
class ServiceCategory(models.Model):
|
||||||
|
"""
|
||||||
|
Categories for services, e.g. "Databases", "Storage", "Compute".
|
||||||
|
"""
|
||||||
|
|
||||||
name = models.CharField(max_length=100, verbose_name=_("Name"))
|
name = models.CharField(max_length=100, verbose_name=_("Name"))
|
||||||
description = models.TextField(blank=True, verbose_name=_("Description"))
|
description = models.TextField(blank=True, verbose_name=_("Description"))
|
||||||
logo = models.ImageField(
|
logo = models.ImageField(
|
||||||
|
@ -26,6 +30,10 @@ class ServiceCategory(models.Model):
|
||||||
|
|
||||||
|
|
||||||
class Service(models.Model):
|
class Service(models.Model):
|
||||||
|
"""
|
||||||
|
A service that can be offered, e.g. "PostgreSQL", "MinIO", "Kubernetes".
|
||||||
|
"""
|
||||||
|
|
||||||
name = models.CharField(max_length=100, verbose_name=_("Name"))
|
name = models.CharField(max_length=100, verbose_name=_("Name"))
|
||||||
description = models.TextField(blank=True, verbose_name=_("Description"))
|
description = models.TextField(blank=True, verbose_name=_("Description"))
|
||||||
logo = models.ImageField(
|
logo = models.ImageField(
|
||||||
|
@ -64,6 +72,10 @@ class ControlPlane(models.Model):
|
||||||
|
|
||||||
|
|
||||||
class CloudProvider(models.Model):
|
class CloudProvider(models.Model):
|
||||||
|
"""
|
||||||
|
A cloud provider, e.g. "Exoscale".
|
||||||
|
"""
|
||||||
|
|
||||||
name = models.CharField(max_length=100, verbose_name=_("Name"))
|
name = models.CharField(max_length=100, verbose_name=_("Name"))
|
||||||
description = models.TextField(blank=True, verbose_name=_("Description"))
|
description = models.TextField(blank=True, verbose_name=_("Description"))
|
||||||
logo = models.ImageField(
|
logo = models.ImageField(
|
||||||
|
@ -79,6 +91,10 @@ class CloudProvider(models.Model):
|
||||||
|
|
||||||
|
|
||||||
class Plan(models.Model):
|
class Plan(models.Model):
|
||||||
|
"""
|
||||||
|
Each service offering can have multiple plans, e.g. for different tiers.
|
||||||
|
"""
|
||||||
|
|
||||||
name = models.CharField(max_length=100, verbose_name=_("Name"))
|
name = models.CharField(max_length=100, verbose_name=_("Name"))
|
||||||
description = models.TextField(blank=True, verbose_name=_("Description"))
|
description = models.TextField(blank=True, verbose_name=_("Description"))
|
||||||
# TODO schema
|
# TODO schema
|
||||||
|
@ -98,6 +114,10 @@ class Plan(models.Model):
|
||||||
|
|
||||||
|
|
||||||
class ServiceOffering(models.Model):
|
class ServiceOffering(models.Model):
|
||||||
|
"""
|
||||||
|
A service offering, e.g. "PostgreSQL on AWS", "MinIO on GCP".
|
||||||
|
"""
|
||||||
|
|
||||||
description = models.TextField(blank=True, verbose_name=_("Description"))
|
description = models.TextField(blank=True, verbose_name=_("Description"))
|
||||||
service = models.ForeignKey(
|
service = models.ForeignKey(
|
||||||
to="Service",
|
to="Service",
|
||||||
|
|
|
@ -62,6 +62,8 @@ EMAIL_HOST_PASSWORD = os.environ.get("SERVALA_EMAIL_PASSWORD", "")
|
||||||
EMAIL_USE_TLS = os.environ.get("SERVALA_EMAIL_TLS", "False") == "True"
|
EMAIL_USE_TLS = os.environ.get("SERVALA_EMAIL_TLS", "False") == "True"
|
||||||
EMAIL_USE_SSL = os.environ.get("SERVALA_EMAIL_SSL", "False") == "True"
|
EMAIL_USE_SSL = os.environ.get("SERVALA_EMAIL_SSL", "False") == "True"
|
||||||
|
|
||||||
|
SERVALA_DEFAULT_ORIGIN = int(os.environ.get("SERVALA_DEFAULT_ORIGIN", "1"))
|
||||||
|
|
||||||
#######################################
|
#######################################
|
||||||
# Non-configurable settings below #
|
# Non-configurable settings below #
|
||||||
#######################################
|
#######################################
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue