Features: 1) Add ADVERTISIMENT_DATA and ANALYTICS_DATA to CONSTANCE_CONFIG with default values and descriptions; 2) Integrate translation functionality into CONSTANCE_CONFIG descriptions using _(); 3) Expand EXPOSABLE_KEYS to include new config fields.

Fixes: 1) Replace redundant or missing translation calls in configuration values; 2) Correct oversight in description consistency for existing fields.

Extra: Refactor `CONSTANCE_CONFIG` structure for improved readability using multi-line formatting where necessary; clean up imports to include `gettext_lazy` and `json`.
This commit is contained in:
Egor Pavlovich Gorbunov 2025-06-16 10:40:21 +03:00
parent f18c456419
commit 0fa8cba05e

View file

@ -1,35 +1,50 @@
import json
from django.utils.translation import gettext_lazy as _
from evibes.settings.base import getenv
CONSTANCE_BACKEND = "constance.backends.database.DatabaseBackend" # Or 'constance.backends.redis.RedisBackend'
CONSTANCE_CONFIG = {
"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"),
"STOCKS_ARE_SINGLE": (getenv("STOCKS_ARE_SINGLE", True), "Designates whether every product has one stock or not"),
"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 (Specify 0 for No and 1 for Yes)"),
"EMAIL_USE_SSL": (bool(int(getenv("EMAIL_USE_SSL", 1))), "Use SSL (Specify 0 for No and 1 for 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"),
"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")),
"STOCKS_ARE_SINGLE": (getenv("STOCKS_ARE_SINGLE", True),
_("Designates whether every product has one stock or not")),
"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 (Specify 0 for No and 1 for Yes)")),
"EMAIL_USE_SSL": (bool(int(getenv("EMAIL_USE_SSL", 1))), _("Use SSL (Specify 0 for No and 1 for 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, if empty - no Abstract features provided",
_("Abstract API Key, if empty - no Abstract features provided"),
),
"HTTP_PROXY": (getenv("DJANGO_HTTP_PROXY", "http://username:password@proxy_address:port"), _("HTTP Proxy")),
"DISABLED_COMMERCE": (getenv("DISABLED_COMMERCE", False), _("Disable buy functionality")),
"ADVERTISIMENT_DATA": (
json.loads(getenv("EVIBES_ADVERTISIMENT_DATA", "{}")),
_("An entity for storing advertisiment data"),
dict,
),
"ANALYTICS_DATA": (
json.loads(getenv("EVIBES_ANALYTICS_DATA", "{}")),
_("An entity for storing analytics data"),
dict,
),
"HTTP_PROXY": (getenv("DJANGO_HTTP_PROXY", "http://username:password@proxy_address:port"), "HTTP Proxy"),
"DISABLED_COMMERCE": (getenv("DISABLED_COMMERCE", False), "Disable buy functionality"),
}
EXPOSABLE_KEYS = [
@ -42,4 +57,6 @@ EXPOSABLE_KEYS = [
"EMAIL_FROM",
"PAYMENT_GATEWAY_MINIMUM",
"PAYMENT_GATEWAY_MAXIMUM",
"ADVERTISIMENT_DATA",
"ANALYTICS_DATA",
]