vmshay 2 years ago
parent
commit
0affc3fe4b

+ 1 - 0
bot/functions.py

@@ -122,4 +122,5 @@ def split_time(data):
         return False
 
 
+
 print(split_time("1.00-15.30"))

+ 6 - 5
bot/keyboards.py

@@ -54,7 +54,7 @@ def user_manage_kb(b_accept, b_deny, b_next, b_prev, b_count):
 
 def events_range_kb():
     keyboard = InlineKeyboardMarkup()
-    today_button = InlineKeyboardButton(text="За сегодня",callback_data="today")
+    today_button = InlineKeyboardButton(text="За сегодня", callback_data="today")
     week_button = InlineKeyboardButton(text="За неделю", callback_data="week")
     month_button = InlineKeyboardButton(text="За месяц", callback_data="month")
     keyboard.add(today_button,week_button,month_button)
@@ -63,16 +63,17 @@ def events_range_kb():
 
 def cancel_booking():
     keyboard = InlineKeyboardMarkup()
-    cancel_button = InlineKeyboardButton(text="Отменить бронирование",callback_data="cancel_booking")
+    cancel_button = InlineKeyboardButton(text="Отменить", callback_data="cancel_booking")
     keyboard.add(cancel_button)
     return keyboard
 
 
 def events_kb():
     keyboard = InlineKeyboardMarkup()
-    booking_button = InlineKeyboardButton(text='Забронировать',callback_data="booking")
-    back_button = InlineKeyboardButton(text='Выбрать другую дату',callback_data="change")
-    keyboard.add(back_button, booking_button)
+    booking_button = InlineKeyboardButton(text='Забронировать', callback_data="booking")
+    back_button = InlineKeyboardButton(text='Отменить', callback_data="change")
+    keyboard.add(back_button,booking_button)
+    # keyboard.add(booking_button)
     return keyboard
 
 

+ 1 - 1
handlers/admin/__init__.py

@@ -1,3 +1,3 @@
 import handlers.admin.admin_menu
 import handlers.admin.manage_users
-import handlers.admin.manage_events
+import handlers.admin.manage_events

+ 30 - 1
handlers/admin/manage_events.py

@@ -1 +1,30 @@
-# TODO: Добавить управоение мероприятиями
+# TODO: Добавить управление мероприятиями
+from aiogram import types, Dispatcher
+from bot import database
+from bot.functions import beauty_reg_request
+from bot.keyboards import register_kb,user_manage_kb
+
+
+async def list_events(message: types.Message):
+    db = database.Database()
+    if not db.sql_fetchone(sql=f"select tg_id from user_table where tg_id ={message.from_user.id}") or \
+            not db.sql_fetchone(sql=f"select approved from user_table where tg_id={message.from_user.id}"):
+        await message.delete()
+        await message.answer("Команды станут доступны после регистрации", reply_markup=register_kb)
+    if not db.sql_parse_users("select id,name,phone from user_table where approved = '0'"):
+        await message.answer('Заявки на мероприятия остутствуют')
+    else:
+        await message.answer("заявки есть")
+        # data = db.sql_parse_users("select id,name,phone from user_table where approved = '0'")
+        # await message.answer("test",
+        #                      reply_markup=user_manage_kb(f"accept:{data[0]['ID']}",
+        #                                                  f"deny:{data[0]['ID']}",
+        #                                                  f"next:0",
+        #                                                  f"prev:0",
+        #                                                  f"1/{len(data)}"))
+
+
+def register_handlers(dp: Dispatcher):
+    dp.register_message_handler(list_events, text='🎫 Управление мероприятиями')
+
+

+ 1 - 9
handlers/admin/manage_users.py

@@ -1,7 +1,7 @@
 from bot import database
 from aiogram import types, Dispatcher
 from bot.functions import beauty_reg_request
-from bot.keyboards import user_manage_kb,register_kb
+from bot.keyboards import user_manage_kb, register_kb
 
 
 async def list_users(message: types.Message):
@@ -32,7 +32,6 @@ async def next_user_page(call: types.CallbackQuery):
     if index == len(data):
         pass
     else:
-        # print(f"next: {index}")
         user_id = data[index]['ID']
         await call.message.edit_text(beauty_reg_request(data[index]),
                                      reply_markup=user_manage_kb(f"accept:{user_id}",
@@ -103,16 +102,9 @@ async def accept_user(call: types.CallbackQuery):
                                                                  f"{index}/{len(data) - 1}"))
 
 
-async def events_manage(message: types.message):
-    await message.answer(f"Управление мероприятиями\n"
-                         f"Здесь вы можете управлять заявками мероприятий\n\n")
-
-
 # Регистрация команд
 def admin_handlers(dp: Dispatcher):
     dp.register_message_handler(list_users, text='👤 Управление пользователями')
-    dp.register_message_handler(events_manage, text='🎫 Управление мероприятиями')
-
     dp.register_callback_query_handler(next_user_page, text_startswith='next')
     dp.register_callback_query_handler(prev_user_page, text_startswith='prev')
     dp.register_callback_query_handler(accept_user, text_startswith='accept')

+ 7 - 7
handlers/user/make_events.py

@@ -18,7 +18,7 @@ async def make_event(message: types.message):
             # TODO: Добавить переход на следующий месяц
             await message.answer(f"выберите дату чтобы увидеть список мероприятий\n\n"
                                  f"Так же календарь мероприятий можно посмотреть в "
-                                 f"<a href=moodle.tomtit.tomsk.ru>Moodle</a>\n\n"
+                                 f"<a href=moodle.tomtit-tomsk.ru>Moodle</a>\n\n"
                                  f"Сегодняшняя дата <b>{make_date()}</b>", reply_markup=make_calendar())
 
 
@@ -41,30 +41,30 @@ async def edit_date(call: types.CallbackQuery, state: FSMContext):
 
     await call.message.edit_text(f"выберите дату чтобы увидеть список мероприятий\n\n"
                                  f"Так же календарь мероприятий можно посмотреть в "
-                                 f"<a href=moodle.tomtit.tomsk.ru>Moodle</a>\n\n"
+                                 f"<a href=moodle.tomtit-tomsk.ru>Moodle</a>\n\n"
                                  f"Сегодняшняя дата <b>{make_date()}</b>", reply_markup=make_calendar())
-    print("Отменено")
     await state.finish()
 
 
 async def booking_date(call: types.CallbackQuery):
     await call.message.edit_text("Введите диапазон времени\n"
-                                 "Возможные форматы\n"
+                                 "Возможные форматы\n\n"
                                  "13.00 15.30\n"
                                  "13.00-15.30\n"
                                  "13:00 15:30\n"
                                  "13.00-15.30\n", reply_markup=cancel_booking())
-    # TODO: парсер времени
     # TODO: Проверка на занятость
-
     await BookingState.time.set()
 
 
 async def get_date(message: types.Message, state: FSMContext):
     if time_validator(message.text):
+        db = database.Database()
         time = split_time(message.text)
         await state.update_data(t_start=time[0])
         await state.update_data(t_end=time[1])
+        sql_data = db.sql_fetchall(sql.sql_time_range(time))
+        print(len(sql_data))
         await message.answer("Введите краткое описание мероприятия", reply_markup=cancel_booking())
         await BookingState.description.set()
     else:
@@ -80,7 +80,7 @@ async def send_event(message: types.Message, state: FSMContext):
     data = await state.get_data()
     await message.answer("Заявка принята", reply_markup=main_kb)
     await state.finish()
-    # await message.answer(data)
+    await message.answer(data)
     db.sql_query_send(sql.sql_send_event(data))
 
 

+ 1 - 0
main.py

@@ -11,4 +11,5 @@ if __name__ == '__main__':
     handlers.user.show_events.register(dp)
     handlers.admin.admin_menu.register_admin_menu(dp)
     handlers.admin.manage_users.admin_handlers(dp)
+    handlers.admin.manage_events.register_handlers(dp)
     executor.start_polling(dp, skip_updates=True)