upd get_callable_str async

This commit is contained in:
Alexander Kalinovsky
2025-02-13 02:00:20 +01:00
parent a0f21e0f1b
commit ca374cdea0
12 changed files with 117 additions and 83 deletions

View File

@@ -25,13 +25,23 @@ async def show_editor(message: Message | CallbackQuery, **kwargs):
value_type = field_descriptor.type_base
if field_descriptor.edit_prompt:
edit_prompt = get_callable_str(
field_descriptor.edit_prompt, field_descriptor, None, current_value
edit_prompt = await get_callable_str(
field_descriptor.edit_prompt,
field_descriptor,
callback_data
if callback_data.context == CommandContext.COMMAND_FORM
else None,
current_value,
)
else:
if field_descriptor.caption:
caption_str = get_callable_str(
field_descriptor.caption, field_descriptor, None, current_value
caption_str = await get_callable_str(
field_descriptor.caption,
field_descriptor,
callback_data
if callback_data.context == CommandContext.COMMAND_FORM
else None,
current_value,
)
else:
caption_str = field_descriptor.name
@@ -42,7 +52,7 @@ async def show_editor(message: Message | CallbackQuery, **kwargs):
)
).format(
name=caption_str,
value=get_value_repr(current_value, field_descriptor, user.lang),
value=await get_value_repr(current_value, field_descriptor, user.lang),
)
else:
edit_prompt = (

View File

@@ -56,12 +56,20 @@ async def time_picker(
if not current_value:
current_value = time(0, 0)
is_datetime = False
else:
is_datetime = isinstance(current_value, datetime)
if not is_datetime:
current_time = datetime.combine(datetime.now(), current_value)
remainder = current_value.minute % 5
if remainder >= 3:
current_value += timedelta(minutes=(5 - remainder))
current_time += timedelta(minutes=(5 - remainder))
else:
current_value -= timedelta(minutes=remainder)
current_time -= timedelta(minutes=remainder)
if is_datetime:
current_value = datetime.combine(current_value.date(), current_time.time())
else:
current_value = current_time.time()
for i in range(12):
keyboard_builder.row(

View File

@@ -209,7 +209,7 @@ async def render_entity_picker(
type_.bot_entity_descriptor, item
)
if type_.bot_entity_descriptor.item_repr
else get_callable_str(
else await get_callable_str(
type_.bot_entity_descriptor.full_name,
type_.bot_entity_descriptor,
item,
@@ -259,7 +259,7 @@ async def render_entity_picker(
and form_list.filtering
and form_list.filtering_fields
):
add_filter_controls(
await add_filter_controls(
keyboard_builder=keyboard_builder,
entity_descriptor=type_.bot_entity_descriptor,
filter=entity_filter,