manage_users.py 5.9 KB

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