chore: remove terms of service setting

Keep privacy policy and user agreement links as the supported legal documents.

Refresh the admin settings manifest, demo dataset, locales, docs, and bot menu tests.
This commit is contained in:
3252a8
2026-06-04 00:03:28 +03:00
parent 5f22c2081e
commit 33707b7257
12 changed files with 9 additions and 109 deletions
@@ -65,7 +65,6 @@ SETTINGS_MANIFEST: List[SettingField] = [
"SUPPORT_LINK", "url", "general", "Ссылка поддержки", "Куда вести пользователей за помощью." "SUPPORT_LINK", "url", "general", "Ссылка поддержки", "Куда вести пользователей за помощью."
), ),
SettingField("SERVER_STATUS_URL", "url", "general", "Ссылка на статус серверов"), SettingField("SERVER_STATUS_URL", "url", "general", "Ссылка на статус серверов"),
SettingField("TERMS_OF_SERVICE_URL", "url", "general", "Условия использования"),
SettingField("PRIVACY_POLICY_URL", "url", "general", "Политика конфиденциальности"), SettingField("PRIVACY_POLICY_URL", "url", "general", "Политика конфиденциальности"),
SettingField("USER_AGREEMENT_URL", "url", "general", "Пользовательское соглашение"), SettingField("USER_AGREEMENT_URL", "url", "general", "Пользовательское соглашение"),
SettingField("DISABLE_WELCOME_MESSAGE", "bool", "general", "Скрыть приветствие /start"), SettingField("DISABLE_WELCOME_MESSAGE", "bool", "general", "Скрыть приветствие /start"),
-2
View File
@@ -765,7 +765,6 @@ def _get_cached_webapp_settings(request: web.Request) -> Dict[str, Any]:
"traffic_packages": settings.traffic_packages, "traffic_packages": settings.traffic_packages,
"stars_traffic_packages": settings.stars_traffic_packages, "stars_traffic_packages": settings.stars_traffic_packages,
"support_url": settings.SUPPORT_LINK or "", "support_url": settings.SUPPORT_LINK or "",
"terms_url": settings.TERMS_OF_SERVICE_URL or "",
"privacy_policy_url": settings.PRIVACY_POLICY_URL or "", "privacy_policy_url": settings.PRIVACY_POLICY_URL or "",
"user_agreement_url": settings.USER_AGREEMENT_URL or "", "user_agreement_url": settings.USER_AGREEMENT_URL or "",
"currency": settings.DEFAULT_CURRENCY_SYMBOL or "RUB", "currency": settings.DEFAULT_CURRENCY_SYMBOL or "RUB",
@@ -1018,7 +1017,6 @@ def _build_webapp_bootstrap_payload(request: web.Request) -> Dict[str, Any]:
"telegramOAuthClientId": _resolve_telegram_oauth_client_id(settings) or 0, "telegramOAuthClientId": _resolve_telegram_oauth_client_id(settings) or 0,
"telegramOAuthRequestAccess": _resolve_telegram_oauth_request_access(settings), "telegramOAuthRequestAccess": _resolve_telegram_oauth_request_access(settings),
"supportUrl": cached["support_url"], "supportUrl": cached["support_url"],
"termsUrl": cached["terms_url"],
"privacyPolicyUrl": cached["privacy_policy_url"], "privacyPolicyUrl": cached["privacy_policy_url"],
"userAgreementUrl": cached["user_agreement_url"], "userAgreementUrl": cached["user_agreement_url"],
"currency": cached["currency"], "currency": cached["currency"],
+1 -1
View File
@@ -1184,7 +1184,7 @@ async def main_action_callback_handler(
_ = lambda key, **kwargs: i18n.gettext(current_lang, key, **kwargs) if i18n else key _ = lambda key, **kwargs: i18n.gettext(current_lang, key, **kwargs) if i18n else key
privacy_url = settings.PRIVACY_POLICY_URL privacy_url = settings.PRIVACY_POLICY_URL
user_agreement_url = settings.USER_AGREEMENT_URL or settings.TERMS_OF_SERVICE_URL user_agreement_url = settings.USER_AGREEMENT_URL
if not privacy_url and not user_agreement_url: if not privacy_url and not user_agreement_url:
await safe_answer_callback( await safe_answer_callback(
@@ -166,8 +166,7 @@ def get_main_menu_inline_keyboard(
InlineKeyboardButton(text=_(key="menu_support_button"), url=settings.SUPPORT_LINK) InlineKeyboardButton(text=_(key="menu_support_button"), url=settings.SUPPORT_LINK)
) )
user_agreement_url = settings.USER_AGREEMENT_URL or settings.TERMS_OF_SERVICE_URL if settings.PRIVACY_POLICY_URL or settings.USER_AGREEMENT_URL:
if settings.PRIVACY_POLICY_URL or user_agreement_url:
builder.row( builder.row(
InlineKeyboardButton(text=_(key="menu_info_button"), callback_data="main_action:info") InlineKeyboardButton(text=_(key="menu_info_button"), callback_data="main_action:info")
) )
@@ -234,8 +233,7 @@ def get_bot_interface_inline_keyboard(
InlineKeyboardButton(text=_(key="menu_support_button"), url=settings.SUPPORT_LINK) InlineKeyboardButton(text=_(key="menu_support_button"), url=settings.SUPPORT_LINK)
) )
user_agreement_url = settings.USER_AGREEMENT_URL or settings.TERMS_OF_SERVICE_URL if settings.PRIVACY_POLICY_URL or settings.USER_AGREEMENT_URL:
if settings.PRIVACY_POLICY_URL or user_agreement_url:
builder.row( builder.row(
InlineKeyboardButton( InlineKeyboardButton(
text=_(key="menu_info_button"), callback_data="main_action:bot_info" text=_(key="menu_info_button"), callback_data="main_action:bot_info"
@@ -205,7 +205,6 @@ LOCALE_GROUPS = [
"admin_settings_field_subscription_mini_app_url", "admin_settings_field_subscription_mini_app_url",
"admin_settings_field_support_link", "admin_settings_field_support_link",
"admin_settings_field_server_status_url", "admin_settings_field_server_status_url",
"admin_settings_field_terms_",
"admin_settings_field_privacy_", "admin_settings_field_privacy_",
"admin_settings_field_user_agreement_", "admin_settings_field_user_agreement_",
"appearance_", "appearance_",
-1
View File
@@ -148,7 +148,6 @@ class Settings(BaseSettings):
SUPPORT_LINK: Optional[str] = Field(default=None) SUPPORT_LINK: Optional[str] = Field(default=None)
SERVER_STATUS_URL: Optional[str] = Field(default=None) SERVER_STATUS_URL: Optional[str] = Field(default=None)
TERMS_OF_SERVICE_URL: Optional[str] = Field(default=None)
PRIVACY_POLICY_URL: Optional[str] = Field(default=None) PRIVACY_POLICY_URL: Optional[str] = Field(default=None)
USER_AGREEMENT_URL: Optional[str] = Field(default=None) USER_AGREEMENT_URL: Optional[str] = Field(default=None)
REQUIRED_CHANNEL_ID: Optional[int] = Field( REQUIRED_CHANNEL_ID: Optional[int] = Field(
-1
View File
@@ -105,7 +105,6 @@
| `DEFAULT_CURRENCY_SYMBOL` | Символ/код валюты в интерфейсе. | | `DEFAULT_CURRENCY_SYMBOL` | Символ/код валюты в интерфейсе. |
| `SUPPORT_LINK` | Внешняя ссылка поддержки. | | `SUPPORT_LINK` | Внешняя ссылка поддержки. |
| `SERVER_STATUS_URL` | Страница статуса сервиса. | | `SERVER_STATUS_URL` | Страница статуса сервиса. |
| `TERMS_OF_SERVICE_URL` | Условия использования. |
| `PRIVACY_POLICY_URL` | Политика конфиденциальности. | | `PRIVACY_POLICY_URL` | Политика конфиденциальности. |
| `USER_AGREEMENT_URL` | Пользовательское соглашение. | | `USER_AGREEMENT_URL` | Пользовательское соглашение. |
| `REQUIRED_CHANNEL_ID` | ID обязательного Telegram-канала. Используется для проверки подписки и автоматического получения ссылки кнопки, если бот видит канал. | | `REQUIRED_CHANNEL_ID` | ID обязательного Telegram-канала. Используется для проверки подписки и автоматического получения ссылки кнопки, если бот видит канал. |
+6 -74
View File
@@ -15,14 +15,14 @@ export const DEMO_DATASET = {
logs: 1600, logs: 1600,
supportTickets: 3, supportTickets: 3,
translationKeys: 1994, translationKeys: 1994,
settingsFields: 223, settingsFields: 222,
}, },
}, },
config: { config: {
title: "/minishop", title: "/minishop",
supportUrl: "https://t.me/demo_minishop_support", supportUrl: "https://t.me/demo_minishop_support",
privacyPolicyUrl: "https://demo.example/privacy", privacyPolicyUrl: "https://demo.example/privacy",
userAgreementUrl: "https://demo.example/terms", userAgreementUrl: "https://demo.example/agreement",
telegramLoginBotUsername: "demo_minishop_bot", telegramLoginBotUsername: "demo_minishop_bot",
telegramLoginBotId: 1234567890, telegramLoginBotId: 1234567890,
telegramOAuthClientId: 1234567890, telegramOAuthClientId: 1234567890,
@@ -68425,8 +68425,8 @@ export const DEMO_DATASET = {
telegram_username: "login_please", telegram_username: "login_please",
telegram_first_name: "", telegram_first_name: "",
email: "", email: "",
event_type: "command:/terms", event_type: "command:/agreement",
content: "Demo event: command:/terms Account #910327.", content: "Demo event: command:/agreement Account #910327.",
is_admin_event: false, is_admin_event: false,
target_user_id: null, target_user_id: null,
timestamp: "2026-05-21T07:34:39Z", timestamp: "2026-05-21T07:34:39Z",
@@ -69385,8 +69385,8 @@ export const DEMO_DATASET = {
telegram_username: "login_please", telegram_username: "login_please",
telegram_first_name: "", telegram_first_name: "",
email: "", email: "",
event_type: "command:/terms", event_type: "command:/agreement",
content: "Demo event: command:/terms Account #910327.", content: "Demo event: command:/agreement Account #910327.",
is_admin_event: false, is_admin_event: false,
target_user_id: null, target_user_id: null,
timestamp: "2026-05-19T13:37:32Z", timestamp: "2026-05-19T13:37:32Z",
@@ -86121,26 +86121,6 @@ export const DEMO_DATASET = {
overridden: false, overridden: false,
updated_at: null, updated_at: null,
}, },
{
key: "TERMS_OF_SERVICE_URL",
type: "url",
section: "general",
section_order: 1,
subsection: null,
label: "Условия использования",
description: "",
i18n_label_key: "admin_settings_field_terms_of_service_url_label",
i18n_description_key: null,
i18n_subsection_key: null,
i18n_placeholder_key: null,
placeholder: "https://demo.example/terms_of_service_url",
optional: true,
secret: false,
default: "https://demo.example/terms_of_service_url",
value: "https://demo.example/terms_of_service_url",
overridden: false,
updated_at: null,
},
{ {
key: "PRIVACY_POLICY_URL", key: "PRIVACY_POLICY_URL",
type: "url", type: "url",
@@ -114599,30 +114579,6 @@ export const DEMO_DATASET = {
}, },
}, },
}, },
{
key: "admin_settings_field_terms_of_service_url_label",
audience: "internal",
values: {
ru: {
base: "Условия использования",
fallback: "Условия использования",
effective: "Условия использования",
override: "",
overridden: false,
updated_at: null,
updated_by: null,
},
en: {
base: "Terms Of Service URL",
fallback: "Условия использования",
effective: "Terms Of Service URL",
override: "",
overridden: false,
updated_at: null,
updated_by: null,
},
},
},
{ {
key: "admin_settings_field_user_agreement_url_label", key: "admin_settings_field_user_agreement_url_label",
audience: "internal", audience: "internal",
@@ -133711,30 +133667,6 @@ export const DEMO_DATASET = {
}, },
}, },
}, },
{
key: "menu_terms_button",
audience: "user",
values: {
ru: {
base: "📄 Условия сервиса",
fallback: "📄 Условия сервиса",
effective: "📄 Условия сервиса",
override: "",
overridden: false,
updated_at: null,
updated_by: null,
},
en: {
base: "📄 Terms of Service",
fallback: "📄 Условия сервиса",
effective: "📄 Terms of Service",
override: "",
overridden: false,
updated_at: null,
updated_by: null,
},
},
},
], ],
}, },
{ {
@@ -98,25 +98,6 @@
"overridden": false, "overridden": false,
"updated_at": null "updated_at": null
}, },
{
"key": "TERMS_OF_SERVICE_URL",
"type": "url",
"section": "general",
"section_order": 1,
"subsection": null,
"label": "Условия использования",
"description": "",
"i18n_label_key": "admin_settings_field_terms_of_service_url_label",
"i18n_description_key": null,
"i18n_subsection_key": null,
"i18n_placeholder_key": null,
"placeholder": "",
"optional": true,
"secret": false,
"value": "",
"overridden": false,
"updated_at": null
},
{ {
"key": "PRIVACY_POLICY_URL", "key": "PRIVACY_POLICY_URL",
"type": "url", "type": "url",
-2
View File
@@ -23,7 +23,6 @@
"menu_language_settings_inline": "🌐 Language", "menu_language_settings_inline": "🌐 Language",
"menu_server_status_button": "📊 Status", "menu_server_status_button": "📊 Status",
"menu_support_button": "💬 Admin contact", "menu_support_button": "💬 Admin contact",
"menu_terms_button": "📄 Terms of Service",
"menu_info_button": "️ Information", "menu_info_button": "️ Information",
"bot_interface_menu_title": "Bot interface", "bot_interface_menu_title": "Bot interface",
"bot_interface_menu_webapp_hint": "The Personal Account is the easier place to manage the service.", "bot_interface_menu_webapp_hint": "The Personal Account is the easier place to manage the service.",
@@ -1591,7 +1590,6 @@
"admin_settings_field_support_link_label": "Support Link", "admin_settings_field_support_link_label": "Support Link",
"admin_settings_field_support_link_description": "Controls the 'Support Link' setting in admin overrides.", "admin_settings_field_support_link_description": "Controls the 'Support Link' setting in admin overrides.",
"admin_settings_field_server_status_url_label": "Server Status URL", "admin_settings_field_server_status_url_label": "Server Status URL",
"admin_settings_field_terms_of_service_url_label": "Terms Of Service URL",
"admin_settings_field_privacy_policy_url_label": "Privacy Policy URL", "admin_settings_field_privacy_policy_url_label": "Privacy Policy URL",
"admin_settings_field_user_agreement_url_label": "User Agreement URL", "admin_settings_field_user_agreement_url_label": "User Agreement URL",
"admin_settings_field_disable_welcome_message_label": "Disable Welcome Message", "admin_settings_field_disable_welcome_message_label": "Disable Welcome Message",
-2
View File
@@ -23,7 +23,6 @@
"menu_language_settings_inline": "🌐 Язык", "menu_language_settings_inline": "🌐 Язык",
"menu_server_status_button": "📊 Статус", "menu_server_status_button": "📊 Статус",
"menu_support_button": "💬 Связаться в telegram", "menu_support_button": "💬 Связаться в telegram",
"menu_terms_button": "📄 Условия сервиса",
"menu_info_button": "ℹ️ Информация", "menu_info_button": "ℹ️ Информация",
"bot_interface_menu_title": "Интерфейс в боте", "bot_interface_menu_title": "Интерфейс в боте",
"bot_interface_menu_webapp_hint": "В личном кабинете взаимодействовать с сервисом будет удобнее.", "bot_interface_menu_webapp_hint": "В личном кабинете взаимодействовать с сервисом будет удобнее.",
@@ -1591,7 +1590,6 @@
"admin_settings_field_support_link_label": "Ссылка поддержки", "admin_settings_field_support_link_label": "Ссылка поддержки",
"admin_settings_field_support_link_description": "Куда вести пользователей за помощью.", "admin_settings_field_support_link_description": "Куда вести пользователей за помощью.",
"admin_settings_field_server_status_url_label": "Ссылка на статус серверов", "admin_settings_field_server_status_url_label": "Ссылка на статус серверов",
"admin_settings_field_terms_of_service_url_label": "Условия использования",
"admin_settings_field_privacy_policy_url_label": "Политика конфиденциальности", "admin_settings_field_privacy_policy_url_label": "Политика конфиденциальности",
"admin_settings_field_user_agreement_url_label": "Пользовательское соглашение", "admin_settings_field_user_agreement_url_label": "Пользовательское соглашение",
"admin_settings_field_disable_welcome_message_label": "Скрыть приветствие /start", "admin_settings_field_disable_welcome_message_label": "Скрыть приветствие /start",
-1
View File
@@ -46,7 +46,6 @@ class UserBotMenuTests(unittest.TestCase):
SUPPORT_LINK="https://t.me/support", SUPPORT_LINK="https://t.me/support",
PRIVACY_POLICY_URL="https://example.com/privacy", PRIVACY_POLICY_URL="https://example.com/privacy",
USER_AGREEMENT_URL="https://example.com/agreement", USER_AGREEMENT_URL="https://example.com/agreement",
TERMS_OF_SERVICE_URL="",
TRIAL_ENABLED=True, TRIAL_ENABLED=True,
SERVER_STATUS_URL="", SERVER_STATUS_URL="",
SUBSCRIPTION_GUIDES_ENABLED=True, SUBSCRIPTION_GUIDES_ENABLED=True,