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:
@@ -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"),
|
||||||
|
|||||||
@@ -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"],
|
||||||
|
|||||||
@@ -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_",
|
||||||
|
|||||||
@@ -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(
|
||||||
|
|||||||
@@ -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-канала. Используется для проверки подписки и автоматического получения ссылки кнопки, если бот видит канал. |
|
||||||
|
|||||||
@@ -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",
|
||||||
|
|||||||
@@ -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",
|
||||||
|
|||||||
@@ -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",
|
||||||
|
|||||||
@@ -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,
|
||||||
|
|||||||
Reference in New Issue
Block a user