Forráskód Böngészése

自動增加課堂 (/auto_create_session)

Mia Cheng 1 éve
szülő
commit
415e674f98
1 módosított fájl, 46 hozzáadás és 5 törlés
  1. 46 5
      app/api/classes.py

+ 46 - 5
app/api/classes.py

@@ -50,8 +50,7 @@ async def insert_school(
     location_name: str = Form(default=''),
     Lng: str = Form(default=''),
     Lat: str = Form(default=''),
-    address : str = Form(default=''),
-    update_time : datetime = Form(default=datetime.now())
+    address : str = Form(default='')
 ):
     try:
         new_school = await Schools.create(
@@ -59,7 +58,7 @@ async def insert_school(
             longitude=Lng,
             latitude=Lat,
             address = address,
-            update_time = update_time
+            update_time = datetime.now()
         )
         
         return {"msg": "success", "code": 200, "location_id": new_school.id}
@@ -82,7 +81,7 @@ async def insert_class_name(
         if cover_img_file != '':
             contents = await cover_img_file.read()
 
-        #save the file
+            #save the file
             with open(f"{IMAGEDIR}{cover_img_file.filename}", "wb") as f:
                 f.write(contents)
         
@@ -156,7 +155,49 @@ async def insert_event(
         return {"msg": "success", "code": 200, "class_id": new_class.id}
     except Exception as e:
         return {"msg": str(e), "code": 500}
-    
+
+@classes.post("/auto_create_session")
+async def auto_create_session(
+    class_event_id : int = Form(default=0),
+    week_day_str : str = Form(default="[]")
+):
+    try:
+        week_day = eval(week_day_str)
+
+        #print(week_day)
+        
+        class_obj = await Class_list.get(id = class_event_id)
+        time_stemp = class_obj.start_time
+        
+        while time_stemp <= class_obj.end_time:
+            if week_day[time_stemp.weekday()]:
+                time_del =  class_obj.end_time.hour - time_stemp.hour
+                time_del_minutes =  class_obj.end_time.minute - time_stemp.minute
+                time_end =  time_stemp + timedelta(hours=time_del,minutes=time_del_minutes)
+                #print(time_end,class_obj.end_time.hour)
+
+                session_list = await Class_detail.filter(class_list_id=class_event_id).all()
+                session = 0
+                if session_list != []:
+                    for session_obj in session_list:
+                        if session < session_obj.sessions:
+                            session = session_obj.sessions
+
+                new_session = await Class_detail.create(
+                    class_list_id=class_event_id,
+                    start_time=time_stemp,
+                    end_time=time_end,
+                    sessions=session +1,
+                    content = ""
+                ) 
+
+            time_stemp = time_stemp + timedelta(days=1) 
+
+        return {"msg": "success", "code": 200}
+    except Exception as e:
+        return {"msg": str(e), "code": 500}
+        
+
 @classes.post("/insert_session")
 async def insert_session(
     class_event_id : int = Form(default=0),