From 559fc369c16ffd189cbeabbfcde7f556045cf0af Mon Sep 17 00:00:00 2001 From: MikiEremiki Date: Tue, 20 Feb 2024 23:05:33 +0300 Subject: [PATCH 1/7] =?UTF-8?q?fix:=20=D0=A3=D1=81=D1=82=D1=80=D0=B0=D0=BD?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=BE=D1=88=D0=B8=D0=B1=D0=BA=D0=B8?= =?UTF-8?q?=20keyerror?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/handlers/reserve_admin_hl.py | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/src/handlers/reserve_admin_hl.py b/src/handlers/reserve_admin_hl.py index a970568..1a9a8c2 100644 --- a/src/handlers/reserve_admin_hl.py +++ b/src/handlers/reserve_admin_hl.py @@ -181,23 +181,11 @@ async def start_forma_info( reserve_user_data ) - common_data = context.user_data['common_data'] - common_data['dict_of_shows'].clear() - - reserve_user_data = context.user_data['reserve_user_data'] reserve_user_data['chose_price'] = price - if context.user_data.get('dict_of_name_show', False): - reserve_user_data['dict_of_name_show'].clear() - if context.user_data.get('dict_of_name_show_flip', False): - reserve_user_data['dict_of_name_show_flip'].clear() - if context.user_data.get('dict_of_date_show', False): - reserve_user_data['dict_of_date_show'].clear() - reserve_user_data['back'].clear() - - reserve_admin_data = context.user_data['reserve_admin_data'] payment_id = reserve_admin_data['payment_id'] reserve_admin_data[payment_id]['chose_ticket'] = chose_ticket event_id = reserve_admin_data[payment_id]['event_id'] + list_of_name_colum = [ 'qty_child_free_seat', 'qty_adult_free_seat', @@ -227,6 +215,17 @@ async def start_forma_info( parse_mode=ParseMode.HTML ) + if common_data.get('dict_of_shows', False): + common_data['dict_of_shows'].clear() + if reserve_user_data.get('dict_of_name_show', False): + reserve_user_data['dict_of_name_show'].clear() + if reserve_user_data.get('dict_of_name_show_flip', False): + reserve_user_data['dict_of_name_show_flip'].clear() + if reserve_user_data.get('dict_of_date_show', False): + reserve_user_data['dict_of_date_show'].clear() + if reserve_user_data.get('dict_of_date_show', False): + reserve_user_data['back'].clear() + state = 'FORMA' context.user_data['STATE'] = state return state From e3477a56715cf035992dcb7118861f436ffbd5a3 Mon Sep 17 00:00:00 2001 From: MikiEremiki Date: Tue, 20 Feb 2024 23:06:10 +0300 Subject: [PATCH 2/7] =?UTF-8?q?refactor:=20=D0=A3=D0=B4=D0=B0=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5=20=D0=BB=D0=B8=D1=88=D0=BD=D0=B5=D0=B3=D0=BE?= =?UTF-8?q?=20=D0=BA=D0=BE=D0=B4=D0=B0,=20=D0=BF=D0=BE=D0=B2=D1=8B=D1=88?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20=D1=87=D0=B8=D1=82=D0=B0=D0=B5=D0=BC?= =?UTF-8?q?=D0=BE=D1=81=D1=82=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/handlers/reserve_admin_hl.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/handlers/reserve_admin_hl.py b/src/handlers/reserve_admin_hl.py index 1a9a8c2..8ffe64b 100644 --- a/src/handlers/reserve_admin_hl.py +++ b/src/handlers/reserve_admin_hl.py @@ -172,7 +172,11 @@ async def start_forma_info( await query.answer() key_option_for_reserve = int(query.data) + + common_data = context.user_data['common_data'] reserve_user_data = context.user_data['reserve_user_data'] + reserve_admin_data = context.user_data['reserve_admin_data'] + choose_event_info = reserve_user_data['choose_event_info'] chose_ticket, price = await get_chose_ticket_and_price( choose_event_info, From 44055c55856d52686b90cc84d19b588dcb857a0d Mon Sep 17 00:00:00 2001 From: MikiEremiki Date: Wed, 21 Feb 2024 23:54:58 +0300 Subject: [PATCH 3/7] =?UTF-8?q?refactor:=20=D0=98=D0=B7=D0=BC=D0=B5=D0=BD?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D1=8F=20=D0=BF=D0=BE=D1=80=D1=8F=D0=B4=D0=BA?= =?UTF-8?q?=D0=B0=20=D0=BA=D0=BB=D0=B0=D1=81=D1=81=D0=BE=D0=B2=20=D0=BC?= =?UTF-8?q?=D0=BE=D0=B4=D0=B5=D0=BB=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/db/models.py | 69 ++++++++++++++++++++++++------------------------ 1 file changed, 34 insertions(+), 35 deletions(-) diff --git a/src/db/models.py b/src/db/models.py index ea90d56..b01e7d4 100644 --- a/src/db/models.py +++ b/src/db/models.py @@ -37,42 +37,13 @@ class Child(BaseModel): users: Mapped['User'] = relationship(back_populates='children') -class TypeEvent(BaseModel): - __tablename__ = 'type_events' - - id: Mapped[int] = mapped_column(primary_key=True) - name: Mapped[str] - name_alias: Mapped[str] - price_for_gift: Mapped[int] - - notes: Mapped[Optional[str]] - - -class TheaterEvent(BaseModel): - __tablename__ = 'theater_events' - - id: Mapped[int] = mapped_column(primary_key=True) - name: Mapped[str] - flag_premier: Mapped[bool] = mapped_column(default=False) - min_age_child: Mapped[int] - max_age_child: Mapped[int] - show_emoji: Mapped[str] - # full_name: Mapped[bool] - flag_active_repertoire: Mapped[bool] - flag_active_bd: Mapped[bool] - max_num_child_bd: Mapped[int] - max_num_adult_bd: Mapped[int] - flag_indiv_cost: Mapped[bool] = mapped_column(default=False) - event_type: Mapped[int] - - class TicketStatusEnum(enum.Enum): - PAID = 'paid' - APPROVED = 'approved' - REJECTED = 'rejected' - REFUNDED = 'refunded' - TRANSFERRED = 'transferred' - POSTPONED = 'postponed' + PAID = 'paid' # Оплачен + APPROVED = 'approved' # Подтвержден + REJECTED = 'rejected' # Отклонен + REFUNDED = 'refunded' # Возвращен + TRANSFERRED = 'transferred' # Передан + POSTPONED = 'postponed' # Перенесен class Ticket(BaseModelTimed): @@ -100,6 +71,34 @@ class Ticket(BaseModelTimed): notes: Mapped[Optional[str]] +class TypeEvent(BaseModel): + __tablename__ = 'type_events' + + id: Mapped[int] = mapped_column(primary_key=True) + name: Mapped[str] + name_alias: Mapped[str] + price_for_gift: Mapped[int] + + notes: Mapped[Optional[str]] + + +class TheaterEvent(BaseModel): + __tablename__ = 'theater_events' + + id: Mapped[int] = mapped_column(primary_key=True) + name: Mapped[str] + flag_premier: Mapped[bool] = mapped_column(default=False) + min_age_child: Mapped[int] + max_age_child: Mapped[int] + show_emoji: Mapped[str] + # full_name: Mapped[bool] + flag_active_repertoire: Mapped[bool] + flag_active_bd: Mapped[bool] + max_num_child_bd: Mapped[int] + max_num_adult_bd: Mapped[int] + flag_indiv_cost: Mapped[bool] = mapped_column(default=False) + + class ScheduleEvent(BaseModelTimed): __tablename__ = 'schedule_events' From 705bd0ca8024dacfeb5d1d175d8fca5d0aca5d39 Mon Sep 17 00:00:00 2001 From: MikiEremiki Date: Wed, 21 Feb 2024 23:55:38 +0300 Subject: [PATCH 4/7] =?UTF-8?q?refactor:=20=D0=9F=D0=B5=D1=80=D0=B5=D0=B8?= =?UTF-8?q?=D0=BC=D0=B5=D0=BD=D0=BE=D0=B2=D0=B0=D0=BD=D0=B8=D0=B5=20=D0=BD?= =?UTF-8?q?=D0=B0=D0=B7=D0=B2=D0=B0=D0=BD=D0=B8=D1=8F=20=D1=81=D1=82=D0=BE?= =?UTF-8?q?=D0=BB=D0=B1=D1=86=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/db/models.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/db/models.py b/src/db/models.py index b01e7d4..d377537 100644 --- a/src/db/models.py +++ b/src/db/models.py @@ -11,12 +11,12 @@ class User(BaseModelTimed): __tablename__ = 'users' - id: Mapped[int] = mapped_column(BigInteger, - primary_key=True, - autoincrement=False) + chat_id: Mapped[int] = mapped_column(BigInteger, + primary_key=True, + autoincrement=False) - name: Mapped[str] - phone: Mapped[Optional[str]] + callback_name: Mapped[str] + callback_phone: Mapped[Optional[str]] username: Mapped[str] children: Mapped[List['Child']] = relationship(back_populates='users') @@ -103,6 +103,7 @@ class ScheduleEvent(BaseModelTimed): __tablename__ = 'schedule_events' id: Mapped[int] = mapped_column(primary_key=True) + event_type: Mapped[int] type_id: Mapped[int] = mapped_column( ForeignKey('type_events.id', ondelete='CASCADE') From 210e3c867d78ab46990d95c77b8aa8d54f949b7c Mon Sep 17 00:00:00 2001 From: MikiEremiki Date: Sat, 24 Feb 2024 17:26:59 +0300 Subject: [PATCH 5/7] =?UTF-8?q?refactor:=20=D0=9F=D0=B5=D1=80=D0=B5=D0=B8?= =?UTF-8?q?=D0=BC=D0=B5=D0=BD=D0=BE=D0=B2=D0=B0=D0=BD=D0=B8=D0=B5=20=D1=84?= =?UTF-8?q?=D1=83=D0=BD=D0=BA=D1=86=D0=B8=D0=B8=20choice=5Foption=5Fenter?= =?UTF-8?q?=20=D0=B2=20event=5Fselection=5Foption?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/conv_hl/reserve_admin_conv_hl.py | 2 +- src/handlers/reserve_admin_hl.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/conv_hl/reserve_admin_conv_hl.py b/src/conv_hl/reserve_admin_conv_hl.py index 22757e4..58de8c2 100644 --- a/src/conv_hl/reserve_admin_conv_hl.py +++ b/src/conv_hl/reserve_admin_conv_hl.py @@ -57,7 +57,7 @@ reserve_admin_conv_hl = ConversationHandler( entry_points=[ CommandHandler(COMMAND_DICT['RESERVE_ADMIN'][0], - reserve_admin_hl.choice_option_enter), + reserve_admin_hl.event_selection_option), ], states=states, fallbacks=[CommandHandler('help', main_hl.help_command)], diff --git a/src/handlers/reserve_admin_hl.py b/src/handlers/reserve_admin_hl.py index 8ffe64b..1f674db 100644 --- a/src/handlers/reserve_admin_hl.py +++ b/src/handlers/reserve_admin_hl.py @@ -15,7 +15,7 @@ reserve_admin_hl_logger = logging.getLogger('bot.reserve_admin_hl') -async def choice_option_enter( +async def event_selection_option( update: Update, context: ContextTypes.DEFAULT_TYPE ): From 135e5a5c0b13d97cf26ff92a9feac71ae519c1ac Mon Sep 17 00:00:00 2001 From: MikiEremiki Date: Sat, 24 Feb 2024 17:28:17 +0300 Subject: [PATCH 6/7] =?UTF-8?q?feat:=20=D0=94=D0=BE=D1=80=D0=B0=D0=B1?= =?UTF-8?q?=D0=BE=D1=82=D0=BA=D0=B0=20=D1=84=D1=83=D0=BD=D0=BA=D1=86=D0=B8?= =?UTF-8?q?=D0=B8=20choice=5Foption=5Fof=5Freserve=20=D0=B4=D0=BB=D1=8F=20?= =?UTF-8?q?reserve=5Fadmin?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Добавление пары информационных сообщений --- src/handlers/reserve_admin_hl.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/handlers/reserve_admin_hl.py b/src/handlers/reserve_admin_hl.py index 1f674db..26db6bb 100644 --- a/src/handlers/reserve_admin_hl.py +++ b/src/handlers/reserve_admin_hl.py @@ -98,6 +98,7 @@ async def choice_option_of_reserve( update.effective_chat.id, context.user_data['message']) event_id = update.effective_message.text + message = await update.effective_chat.send_message('Загружаю данные') user = context.user_data['user'] reserve_admin_hl_logger.info(": ".join( @@ -111,6 +112,7 @@ async def choice_option_of_reserve( event_info, name_column = load_show_info(int(event_id)) list_of_tickets = context.bot_data['list_of_tickets'] + await message.edit_text('Данные загружены') text = '' keyboard = [] @@ -137,8 +139,8 @@ async def choice_option_of_reserve( keyboard.append(add_btn_back_and_cancel(postfix_for_cancel='res', postfix_for_back=1)) reply_markup = InlineKeyboardMarkup(keyboard) - await update.effective_chat.send_message(text=text, - reply_markup=reply_markup) + await message.edit_text(text=text, + reply_markup=reply_markup) option, text_emoji = await get_emoji_and_options_for_event(event_info, name_column) From 9705ab54bf66e7aca62bef43756581dc53605456 Mon Sep 17 00:00:00 2001 From: MikiEremiki Date: Sat, 24 Feb 2024 17:29:14 +0300 Subject: [PATCH 7/7] =?UTF-8?q?refactor:=20=D0=9F=D1=80=D0=B8=D0=B2=D0=B5?= =?UTF-8?q?=D0=B4=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=BA=20=D0=B5=D0=B4=D0=B8?= =?UTF-8?q?=D0=BD=D0=BE=D0=BC=D1=83=20=D0=BF=D0=BE=D1=80=D1=8F=D0=B4=D0=BA?= =?UTF-8?q?=D1=83=20=D1=81=D1=82=D0=BE=D0=BB=D0=B1=D1=86=D0=BE=D0=B2=20?= =?UTF-8?q?=D0=B8=20=D0=BA=D0=BB=D1=8E=D1=87=D0=B5=D0=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/utilities/schemas/context_bot_data.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/utilities/schemas/context_bot_data.py b/src/utilities/schemas/context_bot_data.py index 17ea842..21829ee 100644 --- a/src/utilities/schemas/context_bot_data.py +++ b/src/utilities/schemas/context_bot_data.py @@ -13,14 +13,14 @@ 'min_age_child': int, 'max_age_child': int, 'show_emoji': str, + 'full_name': str, + 'flag_repertoire': bool, 'birthday': { 'flag': bool, 'max_num_child': int, 'max_num_adult': int, }, - 'flag_repertoire': bool, 'flag_indiv_cost': bool, - 'full_name': str, 'price_type': str, }, },