Browse Source

Сортировка мароприятий при выводе

vmshay 2 years ago
parent
commit
a2b4bdabbe
2 changed files with 33 additions and 27 deletions
  1. 0 9
      bot/database.py
  2. 33 18
      handlers/user/events.py

+ 0 - 9
bot/database.py

@@ -66,15 +66,6 @@ class Database:
     def sql_fetchall(self, sql: str):
         self.execute(sql)
         result_set = self.fetchall()
-        events_list = []
-        # if len(result_set) == 0:
-        #     return False
-        # if len(result_set) > 0:
-        #     for row in result_set:
-        #         event_data = {"Описание": row['description'],
-        #                       "Инициатор": row['name'],
-        #                       "Дата": row['dat']}
-        #         events_list.append(event_data)
         return result_set
 
     def sql_query_send(self, sql: str):

+ 33 - 18
handlers/user/events.py

@@ -33,7 +33,15 @@ async def my_events(message: types.Message):
         await message.delete()
         await message.answer("Команды станут доступны после регистрации", reply_markup=register_kb)
     else:
-        await message.answer("Список событий которые Вы запланировали")
+        data = db.sql_fetchall(sql=f"select events_table.description, user_table.name, events_table.e_date "
+                                   f"from events_table inner join user_table "
+                                   f"on events_table.owner = user_table.tg_id "
+                                   f"where events_table.owner={message.from_user.id}")
+
+        if len(data) == 0:
+            await message.answer("Вы не планировали мероприятия")
+        else:
+            await message.answer(data)
 
 
 async def all_events(message: types.Message):
@@ -49,40 +57,47 @@ async def all_events(message: types.Message):
 
 
 async def select_range(call: types.CallbackQuery):
-    db = database.Database()
     if call.data == "today":
+        db = database.Database()
         time = "'"+str(date_range("today"))+"'"
         data = db.sql_fetchall(sql=f"select events_table.description, user_table.name, events_table.e_date "
-                                           f"from events_table inner join user_table "
-                                           f"on events_table.owner = user_table.tg_id "
-                                           f"where events_table.e_date={time}")
+                                   f"from events_table inner join user_table "
+                                   f"on events_table.owner = user_table.tg_id "
+                                   f"where events_table.e_date={time}")
 
-        if data == 0:
-            await call.message.answer("Сегодня меротприятий нет")
+        if len(data) == 0:
+            await call.message.answer("Сегодня мероприятий нет")
         else:
             await call.message.answer(data)
+
     if call.data == "week":
+        db = database.Database()
         time = date_range("week").split(" ")
         time = "'" + time[0] + "' " + time[1] + " '" + time[2] + "'"
-        print(time)
         data = db.sql_fetchall(sql=f"select events_table.description, user_table.name, events_table.e_date "
-                                           f"from events_table inner join user_table "
-                                           f"on events_table.owner = user_table.tg_id "
-                                           f"where events_table.e_date between {time}")
+                                   f"from events_table inner join user_table "
+                                   f"on events_table.owner = user_table.tg_id "
+                                   f"where events_table.e_date between {time}")
+
+        if len(data) == 0:
+            await call.message.answer("На этой неделе мероприятий нет")
+        else:
+            await call.message.answer(data)
+            print(data)
+            new_data = sorted(data,key=lambda d: d['e_date'])
+            print(new_data)
+            await call.message.answer(new_data)
 
-        await call.message.answer(data)
     if call.data == "month":
-        time = date_range("week").split(" ")
+        db = database.Database()
+        time = date_range("month").split(" ")
         time = "'" + time[0] + "' " + time[1] + " '" + time[2] + "'"
-        print(time)
         data = db.sql_fetchall(sql=f"select events_table.description, user_table.name, events_table.e_date "
                                    f"from events_table inner join user_table "
                                    f"on events_table.owner = user_table.tg_id "
                                    f"where events_table.e_date between {time}")
-        # print(data.sort())
-        for dat in data:
-            await call.message.answer(dat)
-            await call.message.answer("asd")
+        await call.message.answer(data)
+
 
 
 def events_register(dp: Dispatcher):