schon/evibes/settings/constance.py
2025-11-11 18:06:30 +03:00

102 lines
4.2 KiB
Python

from collections import OrderedDict
from os import getenv
from django.utils.translation import gettext_lazy as _
from django.utils.translation import gettext_noop
CONSTANCE_BACKEND = "constance.backends.database.DatabaseBackend"
CONSTANCE_SUPERUSER_ONLY = False
CONSTANCE_ADDITIONAL_FIELDS = {
"json": [
"django.forms.fields.JSONField",
{
"required": False,
"widget": "engine.core.widgets.JSONTableWidget",
},
],
}
CONSTANCE_CONFIG = OrderedDict(
[
### General Options ###
("PROJECT_NAME", (getenv("EVIBES_PROJECT_NAME"), _("Name of the project"))),
("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"))),
("EXCHANGE_RATE_API_KEY", (getenv("EXCHANGE_RATE_API_KEY", "example token"), _("Exchange rate API key"))),
### Email Options ###
("EMAIL_BACKEND", ("django.core.mail.backends.smtp.EmailBackend", _("!!!DO NOT CHANGE!!!"))),
("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"))),
("EMAIL_USE_SSL", (bool(int(getenv("EMAIL_USE_SSL", 1))), _("Use SSL"))),
("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"))),
### Features Options ###
("TELEGRAM_API_TOKEN", ("", _("Use Telegram-bot functionality"))),
("DAYS_TO_STORE_ANON_MSGS", (1, _("How many days we store messages from anonymous users"))),
("DAYS_TO_STORE_AUTH_MSGS", (365, _("How many days we store messages from authenticated users"))),
("DISABLED_COMMERCE", (getenv("DISABLED_COMMERCE", False), _("Disable buy functionality"))),
("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"))),
### SEO Options ###
("ADVERTSIMENT", (getenv("EVIBES_ADVERTISIMENT", ""), _("An entity for storing advertisiment data"), "json")),
("ANALYTICS", (getenv("EVIBES_ANALYTICS", ""), _("An entity for storing analytics data"), "json")),
### Debugging Options ###
("SAVE_VENDORS_RESPONSES", (False, _("Save responses from vendors' APIs"))),
]
)
CONSTANCE_CONFIG_FIELDSETS = OrderedDict(
{
gettext_noop("General Options"): (
"PROJECT_NAME",
"COMPANY_NAME",
"COMPANY_ADDRESS",
"COMPANY_PHONE_NUMBER",
"EXCHANGE_RATE_API_KEY",
),
gettext_noop("Email Options"): (
"EMAIL_BACKEND",
"EMAIL_HOST",
"EMAIL_PORT",
"EMAIL_USE_TLS",
"EMAIL_USE_SSL",
"EMAIL_HOST_USER",
"EMAIL_HOST_PASSWORD",
"EMAIL_FROM",
),
gettext_noop("Features Options"): (
"TELEGRAM_API_TOKEN",
"DAYS_TO_STORE_ANON_MSGS",
"DAYS_TO_STORE_AUTH_MSGS",
"DISABLED_COMMERCE",
"NOMINATIM_URL",
"OPENAI_API_KEY",
"ABSTRACT_API_KEY",
"HTTP_PROXY",
),
gettext_noop("SEO Options"): (
"ADVERTSIMENT",
"ANALYTICS",
),
gettext_noop("Debugging Options"): ("SAVE_VENDORS_RESPONSES",),
}
)
EXPOSABLE_KEYS = [
"PROJECT_NAME",
"COMPANY_NAME",
"COMPANY_ADDRESS",
"COMPANY_PHONE_NUMBER",
"EMAIL_HOST_USER",
"EMAIL_FROM",
"DAYS_TO_STORE_ANON_MSGS",
"DAYS_TO_STORE_AUTH_MSGS",
"ADVERTSIMENT",
"ANALYTICS",
]