diff --git a/BotPM.py b/BotPM.py index 52682e5..623e8e2 100644 --- a/BotPM.py +++ b/BotPM.py @@ -88,7 +88,8 @@ main_menu = InlineKeyboardMarkup(row_width=2).add( InlineKeyboardButton("🌍 ΠšΠΎΠ½Ρ‚Π°ΠΊΡ‚Ρ‹", callback_data="menu_contacts"), InlineKeyboardButton("πŸ“ž Бвязь", callback_data="menu_contact"), InlineKeyboardButton("βœ… Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΏΠ°Ρ†ΠΈΠ΅Π½Ρ‚Π°", callback_data="menu_registration"), - InlineKeyboardButton("πŸ₯ О КлиникС", callback_data="o_klinike") + InlineKeyboardButton("πŸ₯ О КлиникС", callback_data="o_klinike"), + InlineKeyboardButton("πŸ“‘ Π—Π°ΠΊΠ°Π·Π°Ρ‚ΡŒ справку для Π½Π°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΉ", callback_data="fns_spravka") ) # ПодмСню "ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Ρ‹" @@ -201,6 +202,30 @@ async def handle_main_menu(call: types.CallbackQuery): +@dp.callback_query_handler(lambda c: c.data == "fns_spravka") +async def show_patient_list(call: types.CallbackQuery): + user_id = call.from_user.id + form_url = f"https://tgbotpolimed.pirogov.ai/?user_id={user_id}" + form_url_fns = f"https://tgbotpolimed.pirogov.ai/fns?user_id={user_id}" + telegram_id = call.from_user.id + patients = find_patients_by_id(telegram_id) + + if not patients: + await call.message.edit_text("ΠŸΠ°Ρ†ΠΈΠ΅Π½Ρ‚Ρ‹ с вашим Telegram ID Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½Ρ‹.") + return + + patient_list = "\n".join( + [f"{i + 1}. {patient['ЀИО']}" for i, patient in enumerate(patients)] + ) + + await call.message.edit_text(f'Если ΠΏΠ°Ρ†ΠΈΠ΅Π½Ρ‚ присутствуСт Π² спискС, Ρ‚ΠΎ для оформлСния Π½Π°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ³ΠΎ Π²Ρ‹Ρ‡Π΅Ρ‚Π° Π·Π° мСдицинскиС услуги, прСдоставлСнныС Π² КлиникС, поТалуйста, Π·Π°ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ Ρ„ΠΎΡ€ΠΌΡƒ Π½ΠΈΠΆΠ΅, Π½Π°ΠΆΠ°Π² Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ "Π—Π°ΠΊΠ°Π·Π°Ρ‚ΡŒ справку".\n\n' + f'β˜πŸΌΠ•ΡΠ»ΠΈ ΠΏΠ°Ρ†ΠΈΠ΅Π½Ρ‚Π° Π½Π΅Ρ‚ Π² спискС зарСгистрированных, поТалуйста, Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ Π΅Π³ΠΎ Ρ‡Π΅Ρ€Π΅Π· Telegram, Π½Π°ΠΆΠ°Π² Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ Π½ΠΈΠΆΠ΅ "Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΏΠ°Ρ†ΠΈΠ΅Π½Ρ‚Π°".\n\n' + f"Бписок зарСгистрированных ΠΏΠ°Ρ†ΠΈΠ΅Π½Ρ‚ΠΎΠ²:\n\n{patient_list}\n\n", + reply_markup=InlineKeyboardMarkup(row_width=1).add(InlineKeyboardButton(text="Π—Π°ΠΊΠ°Π·Π°Ρ‚ΡŒ справку", web_app=WebAppInfo(url=form_url_fns)), + InlineKeyboardButton(text="Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΏΠ°Ρ†ΠΈΠ΅Π½Ρ‚Π°", web_app=WebAppInfo(url=form_url)), + InlineKeyboardButton("▢️ Назад", callback_data="main_menu")),parse_mode="HTML") + + # ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° наТатия Π½Π° "Π—Π°ΠΏΠΈΡΡŒ Π½Π° исслСдованиС" @@ -591,7 +616,7 @@ def find_patients_by_id(telegram_id): records = sheet.get_all_records() # ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ всС строки Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ patients = [] for record in records: - if str(record["Telegram ID"]) == str(telegram_id): + if str(record["Telegram ID"]) == str(telegram_id) and str(record["ВСрификация"]) == "ΠŸΡ€ΠΎΠΉΠ΄Π΅Π½Π°": patients.append(record) return patients @@ -753,24 +778,18 @@ patient_callback = CallbackData("patient", "index") async def show_patients(message: types.Message): telegram_id = message.from_user.id patients = find_patients_by_id(telegram_id) + print(patients) if not patients: await message.answer("ΠŸΠ°Ρ†ΠΈΠ΅Π½Ρ‚Ρ‹ с вашим Telegram ID Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½Ρ‹.") return - keyboard = InlineKeyboardMarkup(row_width=3) # Π’Π΅ΠΏΠ΅Ρ€ΡŒ 2 ΠΊΠ½ΠΎΠΏΠΊΠΈ Π² строкС - buttons = [ - InlineKeyboardButton( - text=patient["ЀИО"], - callback_data=patient_callback.new(index=index) - ) - for index, patient in enumerate(patients) - ] - - # ДобавляСм ΠΊΠ½ΠΎΠΏΠΊΠΈ Π² ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρƒ ΠΏΠΎ 2 Π² строкС - keyboard.add(*buttons) + # Π€ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅ΠΌ тСкстовый список ΠΏΠ°Ρ†ΠΈΠ΅Π½Ρ‚ΠΎΠ² + patient_list = "\n".join( + [f"{index + 1}. {patient['ЀИО']}" for index, patient in enumerate(patients)] + ) - await message.answer("Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΏΠ°Ρ†ΠΈΠ΅Π½Ρ‚Π°:", reply_markup=keyboard) + await message.answer(f"Π’ΠΎΡ‚ список Π²Π°ΡˆΠΈΡ… ΠΏΠ°Ρ†ΠΈΠ΅Π½Ρ‚ΠΎΠ²:\n\n{patient_list}") def authorize_google():