keyboards.py 3.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. from aiogram.types import InlineKeyboardMarkup, InlineKeyboardButton, ReplyKeyboardMarkup, KeyboardButton
  2. from bot.functions import month_text
  3. # Основная
  4. button_bind = KeyboardButton('🎯 Запланировать мероприятие')
  5. button_my = KeyboardButton('🗒 Мои события')
  6. button_all = KeyboardButton('📅 Все события')
  7. button_config = KeyboardButton("👮 Управление")
  8. main_kb = ReplyKeyboardMarkup(resize_keyboard=True)
  9. main_kb.add(button_bind, button_config)
  10. main_kb.add(button_my, button_all)
  11. # регистрация
  12. register_kb = ReplyKeyboardMarkup(resize_keyboard=True)
  13. button_register = KeyboardButton('Зарегистрироваться')
  14. register_kb.add(button_register)
  15. # отмена регистрации
  16. reset_register_kb = ReplyKeyboardMarkup(resize_keyboard=True)
  17. res_button = KeyboardButton("Отменить регистрацию")
  18. reset_register_kb.add(res_button)
  19. # Проверка статуса регистрации
  20. check_register_kb = ReplyKeyboardMarkup(resize_keyboard=True)
  21. check_button = KeyboardButton("Проверить статус заявки")
  22. check_register_kb.add(check_button)
  23. # Для администраторов
  24. admin_keyboard = ReplyKeyboardMarkup(resize_keyboard=True)
  25. waiting_users = KeyboardButton("👤 Управление пользователями")
  26. waiting_events = KeyboardButton("🎫 Управление мероприятиями")
  27. back = KeyboardButton("Выйти")
  28. admin_keyboard.add(waiting_events, waiting_users)
  29. admin_keyboard.add(back)
  30. # Клавиатура для заявок
  31. def manage_kb(b_accept, b_deny, b_next, b_prev, b_count):
  32. keyboard = InlineKeyboardMarkup()
  33. accept_button = InlineKeyboardButton(text="Одобрить", callback_data=b_accept)
  34. deny_button = InlineKeyboardButton(text="Отклонить", callback_data=b_deny)
  35. count_button = InlineKeyboardButton(text=b_count, callback_data="NULL")
  36. next_button = InlineKeyboardButton(text="Далее", callback_data=b_next)
  37. prev_button = InlineKeyboardButton(text="Назад", callback_data=b_prev)
  38. keyboard.add(accept_button, deny_button)
  39. keyboard.add(prev_button, count_button, next_button)
  40. return keyboard
  41. def events_range_kb():
  42. keyboard = InlineKeyboardMarkup()
  43. today_button = InlineKeyboardButton(text="За сегодня", callback_data="today")
  44. week_button = InlineKeyboardButton(text="За неделю", callback_data="week")
  45. month_button = InlineKeyboardButton(text="За месяц", callback_data="month")
  46. keyboard.add(today_button, week_button, month_button)
  47. return keyboard
  48. def cancel_booking():
  49. keyboard = InlineKeyboardMarkup()
  50. cancel_button = InlineKeyboardButton(text="Отменить", callback_data="cancel_booking")
  51. keyboard.add(cancel_button)
  52. return keyboard
  53. def events_kb():
  54. keyboard = InlineKeyboardMarkup()
  55. booking_button = InlineKeyboardButton(text='Забронировать', callback_data="booking")
  56. back_button = InlineKeyboardButton(text='Отменить', callback_data="change")
  57. keyboard.add(back_button, booking_button)
  58. return keyboard
  59. # Генератор календаря
  60. def make_calendar(month, days_in_month, m_prev, m_next):
  61. mont_text = InlineKeyboardButton(text=month_text(month-1), callback_data='NULL')
  62. keyboard = InlineKeyboardMarkup(row_width=7)
  63. prev_month = InlineKeyboardButton(text="<<", callback_data=m_prev)
  64. next_month = InlineKeyboardButton(text=">>", callback_data=m_next)
  65. keyboard.row_width = 7
  66. for i in range(1, days_in_month+1, 1):
  67. if i < 10:
  68. day = f"0{i}"
  69. else:
  70. day = i
  71. date_i = InlineKeyboardButton(text=str(i), callback_data=f"date_2022-{str(month)}-{str(day)}")
  72. keyboard.insert(date_i)
  73. keyboard.add(mont_text)
  74. keyboard.add(prev_month, next_month)
  75. return keyboard