add command params
This commit is contained in:
@@ -5,7 +5,7 @@ from aiogram.utils.keyboard import InlineKeyboardBuilder
|
||||
from babel.support import LazyProxy
|
||||
from logging import getLogger
|
||||
|
||||
from ....model.descriptors import EntityFieldDescriptor
|
||||
from ....model.descriptors import FieldDescriptor
|
||||
from ..context import ContextData, CallbackCommand
|
||||
from ....utils.main import get_send_message
|
||||
from .wrapper import wrap_editor
|
||||
@@ -18,7 +18,7 @@ router = Router()
|
||||
async def bool_editor(
|
||||
message: Message | CallbackQuery,
|
||||
edit_prompt: str,
|
||||
field_descriptor: EntityFieldDescriptor,
|
||||
field_descriptor: FieldDescriptor,
|
||||
callback_data: ContextData,
|
||||
**kwargs,
|
||||
):
|
||||
@@ -44,6 +44,7 @@ async def bool_editor(
|
||||
entity_id=callback_data.entity_id,
|
||||
field_name=callback_data.field_name,
|
||||
form_params=callback_data.form_params,
|
||||
user_command=callback_data.user_command,
|
||||
data=str(True),
|
||||
).pack(),
|
||||
),
|
||||
@@ -56,6 +57,7 @@ async def bool_editor(
|
||||
entity_id=callback_data.entity_id,
|
||||
field_name=callback_data.field_name,
|
||||
form_params=callback_data.form_params,
|
||||
user_command=callback_data.user_command,
|
||||
data=str(False),
|
||||
).pack(),
|
||||
),
|
||||
|
||||
@@ -4,7 +4,7 @@ from datetime import datetime, time
|
||||
|
||||
from ....model.bot_entity import BotEntity
|
||||
from ....model.bot_enum import BotEnum
|
||||
from ....model.descriptors import EntityFieldDescriptor
|
||||
from ....model.descriptors import FieldDescriptor
|
||||
from ....model.settings import Settings
|
||||
from ....model.user import UserBase
|
||||
from ....utils.main import get_callable_str, get_value_repr
|
||||
@@ -16,7 +16,7 @@ from .string import string_editor
|
||||
|
||||
|
||||
async def show_editor(message: Message | CallbackQuery, **kwargs):
|
||||
field_descriptor: EntityFieldDescriptor = kwargs["field_descriptor"]
|
||||
field_descriptor: FieldDescriptor = kwargs["field_descriptor"]
|
||||
current_value = kwargs["current_value"]
|
||||
user: UserBase = kwargs["user"]
|
||||
callback_data: ContextData = kwargs.get("callback_data", None)
|
||||
|
||||
@@ -6,7 +6,7 @@ from aiogram.utils.keyboard import InlineKeyboardBuilder
|
||||
from logging import getLogger
|
||||
from typing import TYPE_CHECKING
|
||||
|
||||
from ....model.descriptors import EntityFieldDescriptor
|
||||
from ....model.descriptors import FieldDescriptor
|
||||
from ....model.settings import Settings
|
||||
from ..context import ContextData, CallbackCommand
|
||||
from ....utils.main import get_send_message, get_field_descriptor
|
||||
@@ -45,7 +45,7 @@ async def time_picker_callback(
|
||||
|
||||
async def time_picker(
|
||||
message: Message | CallbackQuery,
|
||||
field_descriptor: EntityFieldDescriptor,
|
||||
field_descriptor: FieldDescriptor,
|
||||
callback_data: ContextData,
|
||||
current_value: datetime | time,
|
||||
state: FSMContext,
|
||||
@@ -70,6 +70,7 @@ async def time_picker(
|
||||
entity_id=callback_data.entity_id,
|
||||
field_name=callback_data.field_name,
|
||||
form_params=callback_data.form_params,
|
||||
user_command=callback_data.user_command,
|
||||
data=current_value.replace(
|
||||
hour=i if current_value.hour < 12 else i + 12
|
||||
).strftime(
|
||||
@@ -92,6 +93,7 @@ async def time_picker(
|
||||
entity_id=callback_data.entity_id,
|
||||
field_name=callback_data.field_name,
|
||||
form_params=callback_data.form_params,
|
||||
user_command=callback_data.user_command,
|
||||
data=current_value.replace(minute=i * 5).strftime(
|
||||
"%Y-%m-%d %H-%M"
|
||||
if isinstance(current_value, datetime)
|
||||
@@ -112,6 +114,7 @@ async def time_picker(
|
||||
entity_id=callback_data.entity_id,
|
||||
field_name=callback_data.field_name,
|
||||
form_params=callback_data.form_params,
|
||||
user_command=callback_data.user_command,
|
||||
data=current_value.replace(
|
||||
hour=current_value.hour + 12
|
||||
if current_value.hour < 12
|
||||
@@ -130,6 +133,7 @@ async def time_picker(
|
||||
entity_id=callback_data.entity_id,
|
||||
field_name=callback_data.field_name,
|
||||
form_params=callback_data.form_params,
|
||||
user_command=callback_data.user_command,
|
||||
data=current_value.strftime(
|
||||
"%Y-%m-%d %H-%M" if isinstance(current_value, datetime) else "%H-%M"
|
||||
),
|
||||
@@ -157,7 +161,7 @@ async def time_picker(
|
||||
|
||||
async def date_picker(
|
||||
message: Message | CallbackQuery,
|
||||
field_descriptor: EntityFieldDescriptor,
|
||||
field_descriptor: FieldDescriptor,
|
||||
callback_data: ContextData,
|
||||
current_value: datetime,
|
||||
state: FSMContext,
|
||||
@@ -185,6 +189,7 @@ async def date_picker(
|
||||
entity_id=callback_data.entity_id,
|
||||
field_name=callback_data.field_name,
|
||||
form_params=callback_data.form_params,
|
||||
user_command=callback_data.user_command,
|
||||
data=previous_month.strftime("%Y-%m-%d %H-%M"),
|
||||
).pack(),
|
||||
),
|
||||
@@ -197,6 +202,7 @@ async def date_picker(
|
||||
entity_id=callback_data.entity_id,
|
||||
field_name=callback_data.field_name,
|
||||
form_params=callback_data.form_params,
|
||||
user_command=callback_data.user_command,
|
||||
data=start_date.strftime("%Y-%m-%d %H-%M"),
|
||||
).pack(),
|
||||
),
|
||||
@@ -209,6 +215,7 @@ async def date_picker(
|
||||
entity_id=callback_data.entity_id,
|
||||
field_name=callback_data.field_name,
|
||||
form_params=callback_data.form_params,
|
||||
user_command=callback_data.user_command,
|
||||
data=next_month.strftime("%Y-%m-%d %H-%M"),
|
||||
).pack(),
|
||||
),
|
||||
@@ -237,6 +244,7 @@ async def date_picker(
|
||||
entity_id=callback_data.entity_id,
|
||||
field_name=callback_data.field_name,
|
||||
form_params=callback_data.form_params,
|
||||
user_command=callback_data.user_command,
|
||||
data=current_day.strftime("%Y-%m-%d %H-%M"),
|
||||
).pack(),
|
||||
)
|
||||
@@ -288,6 +296,7 @@ async def date_picker_year(
|
||||
entity_id=callback_data.entity_id,
|
||||
field_name=callback_data.field_name,
|
||||
form_params=callback_data.form_params,
|
||||
user_command=callback_data.user_command,
|
||||
data=start_date.replace(year=start_date.year - 20).strftime(
|
||||
"%Y-%m-%d %H-%M"
|
||||
),
|
||||
@@ -309,6 +318,7 @@ async def date_picker_year(
|
||||
entity_id=callback_data.entity_id,
|
||||
field_name=callback_data.field_name,
|
||||
form_params=callback_data.form_params,
|
||||
user_command=callback_data.user_command,
|
||||
data=current_date.strftime("%Y-%m-%d %H-%M"),
|
||||
).pack(),
|
||||
)
|
||||
@@ -326,6 +336,7 @@ async def date_picker_year(
|
||||
entity_id=callback_data.entity_id,
|
||||
field_name=callback_data.field_name,
|
||||
form_params=callback_data.form_params,
|
||||
user_command=callback_data.user_command,
|
||||
data=start_date.replace(year=start_date.year + 20).strftime(
|
||||
"%Y-%m-%d %H-%M"
|
||||
),
|
||||
|
||||
@@ -14,7 +14,7 @@ from ....model.bot_enum import BotEnum
|
||||
from ....model.settings import Settings
|
||||
from ....model.user import UserBase
|
||||
from ....model.view_setting import ViewSetting
|
||||
from ....model.descriptors import EntityFieldDescriptor, Filter
|
||||
from ....model.descriptors import FieldDescriptor, Filter
|
||||
from ....model import EntityPermission
|
||||
from ....utils.main import (
|
||||
get_user_permissions,
|
||||
@@ -37,7 +37,7 @@ router = Router()
|
||||
|
||||
async def entity_picker(
|
||||
message: Message | CallbackQuery,
|
||||
field_descriptor: EntityFieldDescriptor,
|
||||
field_descriptor: FieldDescriptor,
|
||||
edit_prompt: str,
|
||||
current_value: BotEntity | BotEnum | list[BotEntity] | list[BotEnum],
|
||||
**kwargs,
|
||||
@@ -67,7 +67,7 @@ def calc_total_pages(items_count: int, page_size: int) -> int:
|
||||
|
||||
async def render_entity_picker(
|
||||
*,
|
||||
field_descriptor: EntityFieldDescriptor,
|
||||
field_descriptor: FieldDescriptor,
|
||||
message: Message | CallbackQuery,
|
||||
callback_data: ContextData,
|
||||
user: UserBase,
|
||||
@@ -239,6 +239,7 @@ async def render_entity_picker(
|
||||
entity_id=callback_data.entity_id,
|
||||
field_name=callback_data.field_name,
|
||||
form_params=callback_data.form_params,
|
||||
user_command=callback_data.user_command,
|
||||
data=f"{page}&{item['value']}" if is_list else item["value"],
|
||||
).pack(),
|
||||
)
|
||||
@@ -275,6 +276,7 @@ async def render_entity_picker(
|
||||
entity_id=callback_data.entity_id,
|
||||
field_name=callback_data.field_name,
|
||||
form_params=callback_data.form_params,
|
||||
user_command=callback_data.user_command,
|
||||
).pack(),
|
||||
)
|
||||
)
|
||||
|
||||
@@ -15,7 +15,7 @@ from ....utils.main import (
|
||||
from ....utils.serialization import deserialize, serialize
|
||||
from ..context import ContextData, CallbackCommand, CommandContext
|
||||
from ....auth import authorize_command
|
||||
from ..navigation import (
|
||||
from ....utils.navigation import (
|
||||
get_navigation_context,
|
||||
save_navigation_context,
|
||||
)
|
||||
@@ -37,14 +37,22 @@ router = Router()
|
||||
|
||||
|
||||
@router.callback_query(ContextData.filter(F.command == CallbackCommand.FIELD_EDITOR))
|
||||
async def field_editor_callback(query: CallbackQuery, **kwargs):
|
||||
state: FSMContext = kwargs["state"]
|
||||
state_data = await state.get_data()
|
||||
kwargs["state_data"] = state_data
|
||||
|
||||
await field_editor(message=query, **kwargs)
|
||||
|
||||
|
||||
async def field_editor(message: Message | CallbackQuery, **kwargs):
|
||||
callback_data: ContextData = kwargs.get("callback_data", None)
|
||||
db_session: AsyncSession = kwargs["db_session"]
|
||||
user: UserBase = kwargs["user"]
|
||||
app: "QBotApp" = kwargs["app"]
|
||||
state: FSMContext = kwargs["state"]
|
||||
# state: FSMContext = kwargs["state"]
|
||||
|
||||
state_data = await state.get_data()
|
||||
state_data: dict = kwargs["state_data"]
|
||||
entity_data = state_data.get("entity_data")
|
||||
|
||||
for key in ["current_value", "value", "locale_index"]:
|
||||
|
||||
@@ -8,10 +8,11 @@ import json
|
||||
|
||||
from ..context import ContextData, CallbackCommand, CommandContext
|
||||
from ...command_context_filter import CallbackCommandFilter
|
||||
from ..user_handlers.main import cammand_handler
|
||||
from ....model import EntityPermission
|
||||
from ....model.user import UserBase
|
||||
from ....model.settings import Settings
|
||||
from ....model.descriptors import EntityFieldDescriptor
|
||||
from ....model.descriptors import FieldDescriptor
|
||||
from ....model.language import LanguageBase
|
||||
from ....auth import authorize_command
|
||||
from ....utils.main import (
|
||||
@@ -60,7 +61,9 @@ async def field_editor_callback(message: Message | CallbackQuery, **kwargs):
|
||||
else:
|
||||
value = {}
|
||||
|
||||
value[list(LanguageBase.all_members.keys())[locale_index]] = message.text
|
||||
value[list(LanguageBase.all_members.values())[locale_index].value] = (
|
||||
message.text
|
||||
)
|
||||
value = json.dumps(value, ensure_ascii=False)
|
||||
|
||||
if locale_index < len(LanguageBase.all_members.values()) - 1:
|
||||
@@ -125,7 +128,7 @@ async def process_field_edit_callback(message: Message | CallbackQuery, **kwargs
|
||||
callback_data: ContextData = kwargs.get("callback_data", None)
|
||||
state_data: dict = kwargs["state_data"]
|
||||
value = kwargs["value"]
|
||||
field_descriptor: EntityFieldDescriptor = kwargs["field_descriptor"]
|
||||
field_descriptor: FieldDescriptor = kwargs["field_descriptor"]
|
||||
|
||||
if callback_data.context == CommandContext.SETTING_EDIT:
|
||||
if callback_data.data != "cancel":
|
||||
@@ -145,29 +148,37 @@ async def process_field_edit_callback(message: Message | CallbackQuery, **kwargs
|
||||
CommandContext.ENTITY_CREATE,
|
||||
CommandContext.ENTITY_EDIT,
|
||||
CommandContext.ENTITY_FIELD_EDIT,
|
||||
CommandContext.COMMAND_FORM,
|
||||
]:
|
||||
app: "QBotApp" = kwargs["app"]
|
||||
|
||||
entity_descriptor = get_entity_descriptor(app, callback_data)
|
||||
|
||||
form_name = (
|
||||
callback_data.form_params.split("&")[0]
|
||||
if callback_data.form_params
|
||||
else "default"
|
||||
)
|
||||
form = entity_descriptor.forms.get(form_name, entity_descriptor.default_form)
|
||||
if callback_data.context == CommandContext.COMMAND_FORM:
|
||||
field_sequence = list(field_descriptor.command.param_form.keys())
|
||||
current_index = field_sequence.index(callback_data.field_name)
|
||||
field_descriptors = field_descriptor.command.param_form
|
||||
else:
|
||||
form_name = (
|
||||
callback_data.form_params.split("&")[0]
|
||||
if callback_data.form_params
|
||||
else "default"
|
||||
)
|
||||
form = entity_descriptor.forms.get(
|
||||
form_name, entity_descriptor.default_form
|
||||
)
|
||||
|
||||
field_sequence = form.edit_field_sequence
|
||||
current_index = (
|
||||
field_sequence.index(callback_data.field_name)
|
||||
if callback_data.context
|
||||
in [CommandContext.ENTITY_CREATE, CommandContext.ENTITY_EDIT]
|
||||
else 0
|
||||
)
|
||||
field_sequence = form.edit_field_sequence
|
||||
current_index = (
|
||||
field_sequence.index(callback_data.field_name)
|
||||
if callback_data.context
|
||||
in [CommandContext.ENTITY_CREATE, CommandContext.ENTITY_EDIT]
|
||||
else 0
|
||||
)
|
||||
field_descriptors = entity_descriptor.fields_descriptors
|
||||
|
||||
entity_data = state_data.get("entity_data", {})
|
||||
|
||||
if callback_data.context == CommandContext.ENTITY_CREATE:
|
||||
if callback_data.context == CommandContext.ENTITY_CREATE and not entity_data:
|
||||
stack = state_data.get("navigation_stack", [])
|
||||
prev_callback_data = ContextData.unpack(stack[-1]) if stack else None
|
||||
if (
|
||||
@@ -199,16 +210,18 @@ async def process_field_edit_callback(message: Message | CallbackQuery, **kwargs
|
||||
|
||||
if (
|
||||
callback_data.context
|
||||
in [CommandContext.ENTITY_CREATE, CommandContext.ENTITY_EDIT]
|
||||
in [
|
||||
CommandContext.ENTITY_CREATE,
|
||||
CommandContext.ENTITY_EDIT,
|
||||
CommandContext.COMMAND_FORM,
|
||||
]
|
||||
and current_index < len(field_sequence) - 1
|
||||
):
|
||||
entity_data[field_descriptor.field_name] = value
|
||||
state_data.update({"entity_data": entity_data})
|
||||
|
||||
next_field_name = field_sequence[current_index + 1]
|
||||
next_field_descriptor = entity_descriptor.fields_descriptors[
|
||||
next_field_name
|
||||
]
|
||||
next_field_descriptor = field_descriptors[next_field_name]
|
||||
kwargs.update({"field_descriptor": next_field_descriptor})
|
||||
callback_data.field_name = next_field_name
|
||||
|
||||
@@ -232,8 +245,6 @@ async def process_field_edit_callback(message: Message | CallbackQuery, **kwargs
|
||||
)
|
||||
|
||||
else:
|
||||
entity_type = entity_descriptor.type_
|
||||
|
||||
entity_data[field_descriptor.field_name] = value
|
||||
|
||||
# What if user has several roles and each role has its own ownership field? Should we allow creation even
|
||||
@@ -246,13 +257,14 @@ async def process_field_edit_callback(message: Message | CallbackQuery, **kwargs
|
||||
deser_entity_data = {
|
||||
key: await deserialize(
|
||||
session=db_session,
|
||||
type_=entity_descriptor.fields_descriptors[key].type_,
|
||||
type_=field_descriptors[key].type_,
|
||||
value=value,
|
||||
)
|
||||
for key, value in entity_data.items()
|
||||
}
|
||||
|
||||
if callback_data.context == CommandContext.ENTITY_CREATE:
|
||||
entity_type = entity_descriptor.type_
|
||||
user_permissions = get_user_permissions(user, entity_descriptor)
|
||||
if (
|
||||
EntityPermission.CREATE not in user_permissions
|
||||
@@ -290,6 +302,7 @@ async def process_field_edit_callback(message: Message | CallbackQuery, **kwargs
|
||||
CommandContext.ENTITY_EDIT,
|
||||
CommandContext.ENTITY_FIELD_EDIT,
|
||||
]:
|
||||
entity_type = entity_descriptor.type_
|
||||
entity_id = int(callback_data.entity_id)
|
||||
entity = await entity_type.get(session=db_session, id=entity_id)
|
||||
if not entity:
|
||||
@@ -309,6 +322,23 @@ async def process_field_edit_callback(message: Message | CallbackQuery, **kwargs
|
||||
|
||||
await db_session.commit()
|
||||
|
||||
elif callback_data.context == CommandContext.COMMAND_FORM:
|
||||
clear_state(state_data=state_data)
|
||||
state_data["entity_data"] = entity_data
|
||||
|
||||
kwargs.update(
|
||||
{
|
||||
"callback_data": ContextData(
|
||||
command=CallbackCommand.USER_COMMAND,
|
||||
user_command=callback_data.user_command,
|
||||
data=callback_data.data,
|
||||
)
|
||||
}
|
||||
)
|
||||
|
||||
return await cammand_handler(message=message, **kwargs)
|
||||
|
||||
clear_state(state_data=state_data)
|
||||
|
||||
# TODO: Try back=False and check if it works to navigate to newly created entity
|
||||
await route_callback(message=message, back=True, **kwargs)
|
||||
|
||||
@@ -5,7 +5,7 @@ from aiogram.utils.keyboard import InlineKeyboardBuilder
|
||||
from logging import getLogger
|
||||
from typing import Any
|
||||
|
||||
from ....model.descriptors import EntityFieldDescriptor
|
||||
from ....model.descriptors import FieldDescriptor
|
||||
from ....model.language import LanguageBase
|
||||
from ....model.settings import Settings
|
||||
from ....utils.main import get_send_message, get_local_text
|
||||
@@ -20,7 +20,7 @@ router = Router()
|
||||
|
||||
async def string_editor(
|
||||
message: Message | CallbackQuery,
|
||||
field_descriptor: EntityFieldDescriptor,
|
||||
field_descriptor: FieldDescriptor,
|
||||
callback_data: ContextData,
|
||||
current_value: Any,
|
||||
edit_prompt: str,
|
||||
@@ -41,6 +41,7 @@ async def string_editor(
|
||||
entity_id=callback_data.entity_id,
|
||||
field_name=callback_data.field_name,
|
||||
form_params=callback_data.form_params,
|
||||
user_command=callback_data.user_command,
|
||||
)
|
||||
|
||||
if field_descriptor.type_base is str and field_descriptor.localizable:
|
||||
|
||||
@@ -2,14 +2,14 @@ from aiogram.types import InlineKeyboardButton
|
||||
from aiogram.utils.keyboard import InlineKeyboardBuilder
|
||||
|
||||
from ....model.settings import Settings
|
||||
from ....model.descriptors import EntityFieldDescriptor
|
||||
from ....model.descriptors import FieldDescriptor
|
||||
from ..context import ContextData, CallbackCommand, CommandContext
|
||||
from ..navigation import get_navigation_context, pop_navigation_context
|
||||
from ....utils.navigation import get_navigation_context, pop_navigation_context
|
||||
|
||||
|
||||
async def wrap_editor(
|
||||
keyboard_builder: InlineKeyboardBuilder,
|
||||
field_descriptor: EntityFieldDescriptor,
|
||||
field_descriptor: FieldDescriptor,
|
||||
callback_data: ContextData,
|
||||
state_data: dict,
|
||||
):
|
||||
@@ -17,28 +17,37 @@ async def wrap_editor(
|
||||
CommandContext.ENTITY_CREATE,
|
||||
CommandContext.ENTITY_EDIT,
|
||||
CommandContext.ENTITY_FIELD_EDIT,
|
||||
CommandContext.COMMAND_FORM,
|
||||
]:
|
||||
form_name = (
|
||||
callback_data.form_params.split("&")[0]
|
||||
if callback_data.form_params
|
||||
else "default"
|
||||
)
|
||||
form = field_descriptor.entity_descriptor.forms.get(
|
||||
form_name, field_descriptor.entity_descriptor.default_form
|
||||
)
|
||||
|
||||
btns = []
|
||||
field_index = (
|
||||
form.edit_field_sequence.index(field_descriptor.name)
|
||||
if callback_data.context
|
||||
in [CommandContext.ENTITY_CREATE, CommandContext.ENTITY_EDIT]
|
||||
else 0
|
||||
)
|
||||
show_back = True
|
||||
show_cancel = True
|
||||
if callback_data.context == CommandContext.COMMAND_FORM:
|
||||
field_sequence = list(field_descriptor.command.param_form.keys())
|
||||
field_index = field_sequence.index(callback_data.field_name)
|
||||
show_back = field_descriptor.command.show_back_in_param_form
|
||||
show_cancel = field_descriptor.command.show_cancel_in_param_form
|
||||
else:
|
||||
form_name = (
|
||||
callback_data.form_params.split("&")[0]
|
||||
if callback_data.form_params
|
||||
else "default"
|
||||
)
|
||||
form = field_descriptor.entity_descriptor.forms.get(
|
||||
form_name, field_descriptor.entity_descriptor.default_form
|
||||
)
|
||||
field_sequence = form.edit_field_sequence
|
||||
field_index = (
|
||||
field_sequence.index(field_descriptor.name)
|
||||
if callback_data.context
|
||||
in [CommandContext.ENTITY_CREATE, CommandContext.ENTITY_EDIT]
|
||||
else 0
|
||||
)
|
||||
|
||||
stack, context = get_navigation_context(state_data=state_data)
|
||||
context = pop_navigation_context(stack)
|
||||
|
||||
if field_index > 0:
|
||||
if field_index > 0 and show_back:
|
||||
btns.append(
|
||||
InlineKeyboardButton(
|
||||
text=(await Settings.get(Settings.APP_STRINGS_BACK_BTN)),
|
||||
@@ -48,7 +57,8 @@ async def wrap_editor(
|
||||
entity_name=callback_data.entity_name,
|
||||
entity_id=callback_data.entity_id,
|
||||
form_params=callback_data.form_params,
|
||||
field_name=form.edit_field_sequence[field_index - 1],
|
||||
user_command=callback_data.user_command,
|
||||
field_name=field_sequence[field_index - 1],
|
||||
).pack(),
|
||||
)
|
||||
)
|
||||
@@ -62,8 +72,9 @@ async def wrap_editor(
|
||||
context=callback_data.context,
|
||||
entity_name=callback_data.entity_name,
|
||||
entity_id=callback_data.entity_id,
|
||||
form_params=callback_data.form_params,
|
||||
field_name=callback_data.field_name,
|
||||
form_params=callback_data.form_params,
|
||||
user_command=callback_data.user_command,
|
||||
data="skip",
|
||||
).pack(),
|
||||
)
|
||||
@@ -71,12 +82,13 @@ async def wrap_editor(
|
||||
|
||||
keyboard_builder.row(*btns)
|
||||
|
||||
keyboard_builder.row(
|
||||
InlineKeyboardButton(
|
||||
text=(await Settings.get(Settings.APP_STRINGS_CANCEL_BTN)),
|
||||
callback_data=context.pack(),
|
||||
if show_cancel:
|
||||
keyboard_builder.row(
|
||||
InlineKeyboardButton(
|
||||
text=(await Settings.get(Settings.APP_STRINGS_CANCEL_BTN)),
|
||||
callback_data=context.pack(),
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
elif callback_data.context == CommandContext.SETTING_EDIT:
|
||||
keyboard_builder.row(
|
||||
|
||||
Reference in New Issue
Block a user