manage_users.py 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. from bot import database
  2. from aiogram import types, Dispatcher
  3. from bot.functions import beauty_reg_request
  4. from bot.keyboards import user_manage_kb
  5. async def list_users(message: types.Message):
  6. Db = database.Database()
  7. if not Db.sql_parse_users("select id,name,phone from user_table where approved = '0'"):
  8. await message.answer('Заявки на регистрацию отсутствуют')
  9. else:
  10. data = Db.sql_parse_users("select id,name,phone from user_table where approved = '0'")
  11. await message.answer(beauty_reg_request(data[0]),
  12. reply_markup=user_manage_kb(f"accept:{data[0]['ID']}",
  13. f"deny:{data[0]['ID']}",
  14. f"next:0",
  15. f"prev:0",
  16. f"1/{len(data)}"))
  17. async def next_user_page(call: types.CallbackQuery):
  18. Db = database.Database()
  19. data = Db.sql_parse_users("select id,name,phone from user_table where approved = '0'")
  20. index = int(call.data.split(":")[1]) + 1
  21. if not data:
  22. await call.message.answer('Заявки на регистрацию отсутствуют')
  23. if index == len(data):
  24. pass
  25. else:
  26. # print(f"next: {index}")
  27. user_id = data[index]['ID']
  28. await call.message.edit_text(beauty_reg_request(data[index]),
  29. reply_markup=user_manage_kb(f"accept:{user_id}",
  30. f"deny:{user_id}",
  31. f"next:{index}",
  32. f"prev:{index}",
  33. f"{index + 1}/{len(data)}"))
  34. async def prev_user_page(call: types.CallbackQuery):
  35. Db = database.Database()
  36. data = Db.sql_parse_users("select id,name,phone from user_table where approved = '0'")
  37. index = int(call.data.split(":")[1])-1
  38. # print(f"prev_index{index}")
  39. if not data:
  40. await call.message.answer('Заявки на регистрацию отсутствуют')
  41. elif index < 0:
  42. pass
  43. else:
  44. user_id = data[index]['ID']
  45. await call.message.edit_text(beauty_reg_request(data[index]),
  46. reply_markup=user_manage_kb(f"accept:{user_id}",
  47. f"deny:{user_id}",
  48. f"next:{index}",
  49. f"prev:{index}",
  50. f"{index+1}/{len(data)}"))
  51. async def accept_user(call: types.CallbackQuery):
  52. Db = database.Database()
  53. data = Db.sql_parse_users("select id,name,phone from user_table where approved = '0'")
  54. # data = Db.sql_parse_users("select id,name,phone from user_table where approved = '0'")
  55. index = int(call.message.reply_markup.inline_keyboard[1][1].text.split("/")[0])-1
  56. # print(index)
  57. if len(data) == 1:
  58. user_id = data[index]['ID']
  59. Db.sql_query_send(f"UPDATE booking.user_table SET approved='1' WHERE id={user_id}")
  60. await call.message.delete()
  61. await call.message.answer('Заявки на регистрацию отсутствуют')
  62. elif index == 0:
  63. user_id = data[index]['ID']
  64. Db.sql_query_send(f"UPDATE booking.user_table SET approved='1' WHERE id={user_id}")
  65. await call.message.edit_text(beauty_reg_request(data[index+1]),
  66. reply_markup=user_manage_kb(f"accept:{user_id}",
  67. f"deny:{user_id}",
  68. f"next:{index + 1}",
  69. f"prev:{index + 1}",
  70. f"{index+1}/{len(data) - 1}"))
  71. elif index == len(data)-1:
  72. user_id = data[index]['ID']
  73. Db.sql_query_send(f"UPDATE booking.user_table SET approved='1' WHERE id={user_id}")
  74. await call.message.edit_text(beauty_reg_request(data[index-1]),
  75. reply_markup=user_manage_kb(f"accept:{user_id}",
  76. f"deny:{user_id}",
  77. f"next:{index - 1}",
  78. f"prev:{index - 1}",
  79. f"{index}/{len(data) - 1}"))
  80. else:
  81. user_id = data[index]['ID']
  82. Db.sql_query_send(f"UPDATE booking.user_table SET approved='1' WHERE id={user_id}")
  83. await call.message.edit_text(beauty_reg_request(data[index-1]),
  84. reply_markup=user_manage_kb(f"accept:{user_id}",
  85. f"deny:{user_id}",
  86. f"next:{index}",
  87. f"prev:{index - 1}",
  88. f"{index}/{len(data) - 1}"))
  89. async def events_manage(message: types.message):
  90. await message.answer(f"Управление мероприятиями\n"
  91. f"Здесь вы можете управлять заявками мероприятий\n\n")
  92. # Регистрация команд
  93. def admin_handlers(dp: Dispatcher):
  94. dp.register_message_handler(list_users, text='👤 Управление пользователями')
  95. dp.register_message_handler(events_manage, text='🎫 Управление мероприятиями')
  96. dp.register_callback_query_handler(next_user_page, text_startswith='next')
  97. dp.register_callback_query_handler(prev_user_page, text_startswith='prev')
  98. dp.register_callback_query_handler(accept_user, text_startswith='accept')