manage_users.py 6.5 KB

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