Features: 1) Introduce OrderedDict for CONSTANCE_CONFIG for predictable key order; 2) Add CONSTANCE_CONFIG_FIELDSETS for better organization of configuration fields;

Fixes: 1) None;

Extra: 1) Refactor `CONSTANCE_CONFIG` definition for improved readability and structure;
This commit is contained in:
Egor Pavlovich Gorbunov 2025-07-16 19:28:00 +03:00
parent bcaa209fa7
commit 515beef39d

View file

@ -1,3 +1,5 @@
from collections import OrderedDict
from django.utils.translation import gettext_lazy as _ from django.utils.translation import gettext_lazy as _
from evibes.settings.base import getenv from evibes.settings.base import getenv
@ -14,7 +16,8 @@ CONSTANCE_ADDITIONAL_FIELDS = {
], ],
} }
CONSTANCE_CONFIG = { CONSTANCE_CONFIG = OrderedDict(
{
"PROJECT_NAME": (getenv("EVIBES_PROJECT_NAME"), _("Name of the project")), "PROJECT_NAME": (getenv("EVIBES_PROJECT_NAME"), _("Name of the project")),
"FRONTEND_DOMAIN": (getenv("EVIBES_FRONTEND_DOMAIN"), _("Frontend domain name")), "FRONTEND_DOMAIN": (getenv("EVIBES_FRONTEND_DOMAIN"), _("Frontend domain name")),
"BASE_DOMAIN": (getenv("EVIBES_BASE_DOMAIN"), _("Base domain name")), "BASE_DOMAIN": (getenv("EVIBES_BASE_DOMAIN"), _("Base domain name")),
@ -52,6 +55,45 @@ CONSTANCE_CONFIG = {
"json", "json",
), ),
} }
)
CONSTANCE_CONFIG_FIELDSETS = {
_("General Options"): (
"PROJECT_NAME",
"FRONTEND_DOMAIN",
"BASE_DOMAIN",
"COMPANY_NAME",
"COMPANY_ADDRESS",
"COMPANY_PHONE_NUMBER",
),
_("Email Options"): (
"EMAIL_HOST",
"EMAIL_PORT",
"EMAIL_USE_TLS",
"EMAIL_USE_SSL",
"EMAIL_HOST_USER",
"EMAIL_HOST_PASSWORD",
"EMAIL_FROM",
),
_("Payment Gateway Options"): (
"PAYMENT_GATEWAY_URL",
"PAYMENT_GATEWAY_TOKEN",
"EXCHANGE_RATE_API_KEY",
"PAYMENT_GATEWAY_MINIMUM",
"PAYMENT_GATEWAY_MAXIMUM",
),
_("Features Options"): (
"DISABLED_COMMERCE",
"NOMINATIM_URL",
"OPENAI_API_KEY",
"ABSTRACT_API_KEY",
"HTTP_PROXY",
),
_("SEO Options"): (
"ADVERTISEMENT_DATA",
"ANALYTICS_DATA",
),
}
EXPOSABLE_KEYS = [ EXPOSABLE_KEYS = [
"PROJECT_NAME", "PROJECT_NAME",