keyboards.py 3.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. from aiogram.types import InlineKeyboardMarkup, InlineKeyboardButton, ReplyKeyboardMarkup, KeyboardButton
  2. import calendar
  3. import datetime
  4. # Основная
  5. button_bind = KeyboardButton('🎯 Запланировать мероприятие')
  6. button_my = KeyboardButton('🗒 Мои события')
  7. button_all = KeyboardButton('📅 Все события')
  8. button_config = KeyboardButton("👮 Управление")
  9. main_kb = ReplyKeyboardMarkup(resize_keyboard=True)
  10. main_kb.add(button_bind, button_config)
  11. main_kb.add(button_my, button_all)
  12. # регистрация
  13. register_kb = ReplyKeyboardMarkup(resize_keyboard=True)
  14. button_register = KeyboardButton('Зарегистрироваться')
  15. register_kb.add(button_register)
  16. # отмена регистрации
  17. reset_register_kb = ReplyKeyboardMarkup(resize_keyboard=True)
  18. res_button = KeyboardButton("Отменить регистрацию")
  19. reset_register_kb.add(res_button)
  20. # Проверка статуса регистрации
  21. check_register_kb = ReplyKeyboardMarkup(resize_keyboard=True)
  22. check_button = KeyboardButton("Проверить статус заявки")
  23. check_register_kb.add(check_button)
  24. # Для администраторов
  25. admin_keyboard = ReplyKeyboardMarkup(resize_keyboard=True)
  26. waiting_users = KeyboardButton("👤 Управление пользователями")
  27. waiting_events = KeyboardButton("🎫 Управление мероприятиями")
  28. back = KeyboardButton("Выйти")
  29. admin_keyboard.add(waiting_events, waiting_users)
  30. admin_keyboard.add(back)
  31. # Клавиатура для заявок
  32. def user_manage_kb(b_accept, b_deny, b_next, b_prev, b_count):
  33. keyboard = InlineKeyboardMarkup()
  34. accept_button = InlineKeyboardButton(text="Одобрить", callback_data=b_accept)
  35. deny_button = InlineKeyboardButton(text="Отклонить", callback_data=b_deny)
  36. count_button = InlineKeyboardButton(text=b_count, callback_data="NULL") # f"{index}/{len(data)}"
  37. next_button = InlineKeyboardButton(text="Далее", callback_data=b_next) # f"next:0"
  38. prev_button = InlineKeyboardButton(text="Назад", callback_data=b_prev)
  39. keyboard.add(accept_button, deny_button)
  40. keyboard.add(prev_button, count_button, next_button)
  41. return keyboard
  42. def events_range_kb():
  43. keyboard = InlineKeyboardMarkup()
  44. today_button = InlineKeyboardButton(text="За сегодня",callback_data="today")
  45. week_button = InlineKeyboardButton(text="За неделю", callback_data="week")
  46. month_button = InlineKeyboardButton(text="За месяц", callback_data="month")
  47. keyboard.add(today_button,week_button,month_button)
  48. return keyboard
  49. # Генератор календаря
  50. def make_calendar():
  51. current_date = datetime.date.today()
  52. days_in_month = calendar.monthrange(current_date.year, current_date.month)[1]
  53. month = datetime.datetime.today().month
  54. keyboard = InlineKeyboardMarkup(row_width=7)
  55. button_today = InlineKeyboardButton(text="Сегодня", callback_data="today")
  56. button_tomorrow = InlineKeyboardButton(text="Завтра", callback_data="tomorrow")
  57. button_after_tomorrow = InlineKeyboardButton(text="Послезавтра", callback_data="after_tomorrow")
  58. for i in range(1, days_in_month+1, 1):
  59. date_i = InlineKeyboardButton(text=str(i), callback_data=f"date_2022-{str(month)}-{str(i)}")
  60. keyboard.insert(date_i)
  61. keyboard.add(button_today, button_tomorrow, button_after_tomorrow)
  62. return keyboard