Bläddra i källkod

Merge remote-tracking branch 'origin/master'

zooey 1 år sedan
förälder
incheckning
8046e146a6
1 ändrade filer med 59 tillägg och 101 borttagningar
  1. 59 101
      app/api/classes.py

+ 59 - 101
app/api/classes.py

@@ -49,7 +49,7 @@ async def insert_school(
 async def insert_class(
     id: int = Form(default=0),
     name: str = Form(default=''),
-    school_id: int = Form(default=0),
+    school_id: int = Form(default=''),
     category: str = Form(default=''),
     introduction: str = Form(default=''),
     organizer: str = Form(default=''),
@@ -68,20 +68,15 @@ async def insert_class(
     remark : str = Form(default='')
 ):    
     try:
-        if cover_img_file!= '':
-            contents = await cover_img_file.read()
+        contents = await cover_img_file.read()
 
         #save the file
-            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 = ''
-        
+        with open(f"{IMAGEDIR}{cover_img_file.filename}", "wb") as f:
+            f.write(contents)
         
+        cover_img = f"{IMAGEDIR_short}{cover_img_file.filename}"
 
-        new_class_name = Class_name.create(
+        new_class_name = await Class_name.create(
             id=id,
             name=name,
             school_id =school_id ,
@@ -91,7 +86,7 @@ async def insert_class(
             cover_img=cover_img
         )
 
-        new_class = Class_list.create(
+        new_class = await Class_list.create(
             id=id,
             name_id=new_class_name.id,
             event =event ,
@@ -129,7 +124,7 @@ async def insert_event(
     remark : str = Form(default='')
 ):    
     try:
-        new_class = Class_list.create(
+        new_class = await Class_list.create(
             id=id,
             name_id=name_id,
             event =event,
@@ -153,14 +148,14 @@ async def insert_event(
 async def update_class_name(
     id: int = Form(default=0),
     name: str = Form(default=''),
-    school_id: int = Form(default=0),
+    school_id: int = Form(default=''),
     category: str = Form(default=''),
     introduction: str = Form(default=''),
     organizer: str = Form(default=''),
     cover_img_file:UploadFile = File(default='')
 ):
     try:
-        class_name = Class_name.get(id=id)
+        class_name = await Class_name.get(id=id)
 
         if name.strip() != '':
             class_name.name = name
@@ -209,7 +204,7 @@ async def update_class(
     remark : str = Form(default='')
 ):
     try:
-        class_obj = Class_list.get(id=id)
+        class_obj = await Class_list.get(id=id)
 
         if name_id != '':
             class_obj.name_id = name_id
@@ -273,30 +268,30 @@ async def delete(id: int):
 async def search_class(id: int):
     try:
         class_obj = await Class_list.get(id=id)
-        class_name = await Class_name.get(id=class_obj[0].name_id)
-        school_obj =await Schools.get(id=class_name[0].school_id)
+        class_name = await Class_name.get(id=class_obj.name_id)
+        school_obj = await Schools.get(id=class_name.school_id)
         return {
             "msg": "success",
             "code": 200,
-            "class_id": class_obj[0].id,
-            "name": class_name[0].name,
-            "school":school_obj[0].name,
-            "category": class_name[0].category,
-            "introduction": class_name[0].introduction,
-            "organizer": class_name[0].organizer,
-            "cover_img": class_name[0].cover_img,
-            "event": class_obj[0].event,
-            "start_time": class_obj[0].start_time,
-            "end_time": class_obj[0].end_time,
-            "location": class_obj[0].location,
-            "lecturer": class_obj[0].lecturer,
-            "contact": class_obj[0].contact,
-            "content": class_obj[0].content,
-            "URL": class_obj[0].URL,
-            "people": class_obj[0].people,
-            "fee_method": class_obj[0].fee_method,
-            "registration_way": class_obj[0].registration_way,
-            "remark": class_obj[0].remark
+            "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
         }
     except Exception as e:
         return {"msg": str(e), "code": 500}
@@ -304,7 +299,7 @@ async def search_class(id: int):
 @classes.get("/get_school")
 async def get_school():
     try:
-        school_list =  list(Schools.all())
+        school_list = await Schools.all()
         schools = []
         for school_obj in school_list:
             school_data = {
@@ -322,10 +317,10 @@ async def get_school():
 @classes.get("/get_class_name")
 async def get_class_name():
     try:
-        class_name_list = Class_name.all()
+        class_name_list = await Class_name.all()
         classes_name = []
         for class_name_obj in class_name_list:
-            school_obj =  Schools.filter(id=class_name_obj.school_id).first()
+            school_obj = await Schools.get(id=class_name_obj.school_id)
             class_data = {
             "msg": "success",
             "code": 200,
@@ -347,11 +342,13 @@ async def get_class_name():
 @classes.get("/get_class")
 async def get_class():
     try:
-        class_list = Class_list.all()
+        class_list = await Class_list.all()
         classes = []
         for class_obj in class_list:
-            class_name =  Class_name.filter(id=class_obj.name_id).first()
-            school_obj =  Schools.filter(id=class_name.school_id).first()
+            class_name = await Class_name.get(id=class_obj.name_id)
+            print(class_obj.name_id)
+            print(class_name.school_id)
+            school_obj = await Schools.get(id=class_name.school_id)
             class_data = {
             "msg": "success",
             "code": 200,
@@ -384,65 +381,25 @@ async def get_class():
 @classes.get("/search_class_like")
 async def search_class_like(keyword: str):
     try:
-        class_name_list =  Class_name.filter(Q(name__icontains=keyword) ).all()
-        class_list =  Class_list.filter(Q(lecturer__icontains=keyword) ).all()
-        classes = []
-        for class_name in class_name_list:
-
-            class_obj_list = Class_name.filter(name_id=class_name.id).all()
-
-            for class_obj in class_obj_list:
-                school_obj = 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)
+        class_list = await Class_list.filter(
+ Q(lecturer__icontains=keyword)
+        ).all()
 
+        classes = []
         for class_obj in class_list:
-            class_name =  Class_name.get(id=class_obj.name_id)
-            school_obj = 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,
+                "name": class_obj.name,
                 "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,
-                "URL": class_obj.URL,
-                "people": class_obj.people,
-                "fee_method": class_obj.fee_method,
-                "registration_way": class_obj.registration_way,
-                "remark": class_obj.remark
+		 "cover_img": class_obj.cover_img
+
             }
             classes.append(class_data)
 
@@ -452,18 +409,19 @@ async def search_class_like(keyword: str):
 
 
 
-# @classes.post("/upload/")
-# async def create_upload_file(file: UploadFile = File(...)):
+
+@classes.post("/upload/")
+async def create_upload_file(file: UploadFile = File(...)):
  
-#     #file.filename = f"{uuid.uuid4()}.jpeg"
-#     contents = await file.read()
+    #file.filename = f"{uuid.uuid4()}.jpeg"
+    contents = await file.read()
  
-#     #save the file
-#     with open(f"{IMAGEDIR}{file.filename}", "wb") as f:
-#         f.write(contents)
+    #save the file
+    with open(f"{IMAGEDIR}{file.filename}", "wb") as f:
+        f.write(contents)
  
-#     return {"filename": file.filename}
-#  #"/var/www/ntcri/app/api/images/test.jpeg"
+    return {"filename": file.filename}
+ #"/var/www/ntcri/app/api/images/test.jpeg"
  
 
 async def read_image_file():