schon/evibes/settings/constance.py
Egor fureunoir Gorbunov 9ec78c3360 Features: 1) Replace dictionary in CONSTANCE_CONFIG with a list for better structure; 2) Switch to gettext_noop for CONSTANCE_CONFIG_FIELDSETS keys instead of _;
Fixes: 1) Remove commented-out Redis backend reference in `CONSTANCE_BACKEND` declaration;

Extra: Simplify and improve readability of code with updated formatting and minor comment adjustments.
2025-07-16 19:33:15 +03:00

103 lines
4.2 KiB
Python
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

from collections import OrderedDict
from django.utils.translation import gettext_lazy as _, gettext_noop
from evibes.settings.base import getenv
CONSTANCE_BACKEND = "constance.backends.database.DatabaseBackend"
CONSTANCE_SUPERUSER_ONLY = False
CONSTANCE_ADDITIONAL_FIELDS = {
"json": [
"django.forms.fields.JSONField",
{
"required": False,
"widget": "core.widgets.JSONTableWidget",
},
],
}
CONSTANCE_CONFIG = OrderedDict(
[
("PROJECT_NAME", (getenv("EVIBES_PROJECT_NAME"), _("Name of the project"))),
("FRONTEND_DOMAIN", (getenv("EVIBES_FRONTEND_DOMAIN"), _("Frontend domain name"))),
("BASE_DOMAIN", (getenv("EVIBES_BASE_DOMAIN"), _("Base domain name"))),
("COMPANY_NAME", (getenv("COMPANY_NAME"), _("Name of the company"))),
("COMPANY_ADDRESS", (getenv("COMPANY_ADDRESS"), _("Address of the company"))),
("COMPANY_PHONE_NUMBER", (getenv("COMPANY_PHONE_NUMBER"), _("Phone number of the company"))),
("EMAIL_HOST", (getenv("EMAIL_HOST", "smtp.404.org"), _("SMTP host"))),
("EMAIL_PORT", (int(getenv("EMAIL_PORT", "465")), _("SMTP port"))),
("EMAIL_USE_TLS", (bool(int(getenv("EMAIL_USE_TLS", 0))), _("Use TLS (0=No, 1=Yes)"))),
("EMAIL_USE_SSL", (bool(int(getenv("EMAIL_USE_SSL", 1))), _("Use SSL (0=No, 1=Yes)"))),
("EMAIL_HOST_USER", (getenv("EMAIL_HOST_USER", "no-user@fix.this"), _("SMTP username"))),
("EMAIL_HOST_PASSWORD", (getenv("EMAIL_HOST_PASSWORD", "SUPERsecretPASSWORD"), _("SMTP password"))),
("EMAIL_FROM", (getenv("EMAIL_FROM", "eVibes"), _("Mail from option"))),
("PAYMENT_GATEWAY_URL", (getenv("PAYMENT_GATEWAY_URL", "http://404.org"), _("Payment gateway URL"))),
("PAYMENT_GATEWAY_TOKEN", (getenv("PAYMENT_GATEWAY_TOKEN", "example token"), _("Payment gateway token"))),
("PAYMENT_GATEWAY_MINIMUM", (getenv("PAYMENT_GATEWAY_MINIMUM", 5.0), _("Payment gateway minimum amount"))),
("PAYMENT_GATEWAY_MAXIMUM", (getenv("PAYMENT_GATEWAY_MAXIMUM", 500.0), _("Payment gateway maximum amount"))),
("EXCHANGE_RATE_API_KEY", (getenv("EXCHANGE_RATE_API_KEY", "example token"), _("Exchange rate API key"))),
("NOMINATIM_URL", (getenv("NOMINATIM_URL", ""), _("OpenStreetMap Nominatim API URL"))),
("OPENAI_API_KEY", (getenv("OPENAI_API_KEY", "example key"), _("OpenAI API Key"))),
("ABSTRACT_API_KEY", (getenv("ABSTRACT_API_KEY", "example key"), _("Abstract API Key"))),
("HTTP_PROXY", (getenv("DJANGO_HTTP_PROXY", "http://username:password@proxy_address:port"), _("HTTP Proxy"))),
("DISABLED_COMMERCE", (getenv("DISABLED_COMMERCE", False), _("Disable buy functionality"))),
(
"ADVERTISEMENT_DATA",
(getenv("EVIBES_ADVERTISEMENT_DATA", ""), _("An entity for storing advertisiment data"), "json"),
),
("ANALYTICS_DATA", (getenv("EVIBES_ANALYTICS_DATA", ""), _("An entity for storing analytics data"), "json")),
]
)
CONSTANCE_CONFIG_FIELDSETS = {
gettext_noop("General Options"): (
"PROJECT_NAME",
"FRONTEND_DOMAIN",
"BASE_DOMAIN",
"COMPANY_NAME",
"COMPANY_ADDRESS",
"COMPANY_PHONE_NUMBER",
),
gettext_noop("Email Options"): (
"EMAIL_HOST",
"EMAIL_PORT",
"EMAIL_USE_TLS",
"EMAIL_USE_SSL",
"EMAIL_HOST_USER",
"EMAIL_HOST_PASSWORD",
"EMAIL_FROM",
),
gettext_noop("Payment Gateway Options"): (
"PAYMENT_GATEWAY_URL",
"PAYMENT_GATEWAY_TOKEN",
"EXCHANGE_RATE_API_KEY",
"PAYMENT_GATEWAY_MINIMUM",
"PAYMENT_GATEWAY_MAXIMUM",
),
gettext_noop("Features Options"): (
"DISABLED_COMMERCE",
"NOMINATIM_URL",
"OPENAI_API_KEY",
"ABSTRACT_API_KEY",
"HTTP_PROXY",
),
gettext_noop("SEO Options"): (
"ADVERTISEMENT_DATA",
"ANALYTICS_DATA",
),
}
EXPOSABLE_KEYS = [
"PROJECT_NAME",
"BASE_DOMAIN",
"COMPANY_NAME",
"COMPANY_ADDRESS",
"COMPANY_PHONE_NUMBER",
"EMAIL_HOST_USER",
"EMAIL_FROM",
"PAYMENT_GATEWAY_MINIMUM",
"PAYMENT_GATEWAY_MAXIMUM",
"ADVERTISEMENT_DATA",
"ANALYTICS_DATA",
]