Prechádzať zdrojové kódy

Merge branch 'master' of http://git.choozmo.com:3000/zooey/ntcri

conrad 1 rok pred
rodič
commit
840883649b
1 zmenil súbory, kde vykonal 58 pridanie a 13 odobranie
  1. 58 13
      app/api/classes.py

+ 58 - 13
app/api/classes.py

@@ -68,13 +68,18 @@ async def insert_class(
     remark : str = Form(default='')
 ):    
     try:
-        contents = await cover_img_file.read()
+        if cover_img_file!= '':
+            contents = await cover_img_file.read()
 
         #save the file
-        with open(f"{IMAGEDIR}{cover_img_file.filename}", "wb") as f:
-            f.write(contents)
+            with open(f"{IMAGEDIR}{cover_img_file.filename}", "wb") as f:
+                f.write(contents)
+
+            cover_img = f"{IMAGEDIR_short}{cover_img_file.filename}"
+        else:
+            cover_img = ''
+        
         
-        cover_img = f"{IMAGEDIR_short}{cover_img_file.filename}"
 
         new_class_name = await Class_name.create(
             id=id,
@@ -381,25 +386,65 @@ async def get_class():
 @classes.get("/search_class_like")
 async def search_class_like(keyword: str):
     try:
-        class_list = await Class_list.filter(
-Q(name__icontains=keyword) | Q(lecturer__icontains=keyword)
-        ).all()
-
+        class_name_list = await Class_name.filter(Q(name__icontains=keyword) ).all()
+        class_list = await Class_list.filter(Q(lecturer__icontains=keyword) ).all()
         classes = []
+        for class_name in class_name_list:
+
+            class_obj_list = await Class_name.filter(name_id=class_name.id).all()
+
+            for class_obj in class_obj_list:
+                school_obj = await Schools.get(id=class_name.school_id)
+                class_data = {
+                    "msg": "success",
+                    "code": 200,
+                    "class_id": class_obj.id,
+                    "name": class_name.name,
+                    "school":school_obj.name,
+                    "category": class_name.category,
+                    "introduction": class_name.introduction,
+                    "organizer": class_name.organizer,
+                    "cover_img": class_name.cover_img,
+                    "event": class_obj.event,
+                    "start_time": class_obj.start_time,
+                    "end_time": class_obj.end_time,
+                    "location": class_obj.location,
+                    "lecturer": class_obj.lecturer,
+                    "contact": class_obj.contact,
+                    "content": class_obj.content,
+                    "URL": class_obj.URL,
+                    "people": class_obj.people,
+                    "fee_method": class_obj.fee_method,
+                    "registration_way": class_obj.registration_way,
+                    "remark": class_obj.remark
+                }
+                classes.append(class_data)
+
         for class_obj in class_list:
+            class_name = await Class_name.get(id=class_obj.name_id)
+            school_obj = await Schools.get(id=class_name.school_id)
             class_data = {
+                "msg": "success",
+                "code": 200,
                 "class_id": class_obj.id,
-                "name": class_obj.name,
+                "name": class_name.name,
+                "school":school_obj.name,
+                "category": class_name.category,
+                "introduction": class_name.introduction,
+                "organizer": class_name.organizer,
+                "cover_img": class_name.cover_img,
+                "event": class_obj.event,
                 "start_time": class_obj.start_time,
                 "end_time": class_obj.end_time,
                 "location": class_obj.location,
                 "lecturer": class_obj.lecturer,
-                "organizer": class_obj.organizer,
                 "contact": class_obj.contact,
-                "introduction": class_obj.introduction,
                 "content": class_obj.content,
-		 "cover_img": class_obj.cover_img
-
+                "URL": class_obj.URL,
+                "people": class_obj.people,
+                "fee_method": class_obj.fee_method,
+                "registration_way": class_obj.registration_way,
+                "remark": class_obj.remark
             }
             classes.append(class_data)