Parcourir la source

Merge remote-tracking branch 'origin/master'

zooey il y a 1 an
Parent
commit
db2fa8086c
3 fichiers modifiés avec 35 ajouts et 22 suppressions
  1. 33 20
      app/api/classes.py
  2. 1 1
      app/api/news.py
  3. 1 1
      app/models/models.py

+ 33 - 20
app/api/classes.py

@@ -18,6 +18,8 @@ from jose import jwt
 from emails.template import JinjaTemplate
 from tortoise.queryset import Q
 from fastapi.responses import HTMLResponse
+import requests
+import json
 
 classes = APIRouter()
 
@@ -60,7 +62,8 @@ async def insert_class_name(
     introduction: str = Form(default=''),
     organizer: str = Form(default=''),
     cover_img_file:UploadFile = File(default=''),
-    group_id : int = Form(default=1)
+    group_id : int = Form(default=1),
+    group_sort :str = Form(default='')
 ):    
     try:
         cover_img = ''
@@ -80,7 +83,8 @@ async def insert_class_name(
             introduction=introduction,
             organizer=organizer,
             cover_img=cover_img,
-            group_id=group_id
+            group_id=group_id,
+            group_sort=group_sort
         )
         update_location_time(location_id= location_id)
         return {"msg": "success", "code": 200, "new_class_name_id": new_class_name.id}
@@ -198,7 +202,8 @@ async def update_class_name(
     introduction: str = Form(default=''),
     organizer: str = Form(default=''),
     cover_img_file:UploadFile = File(default=''),
-    group_id : int = Form(default=0)
+    group_id : int = Form(default=0),
+    group_sort : str = Form(default='')
 ):
     try:
         class_name = await Class_name.get(id=class_name_id)
@@ -230,6 +235,8 @@ async def update_class_name(
         
             class_name.cover_img = f"{IMAGEDIR_short}{cover_img_file.filename}"
 
+        if group_sort != '':
+            class_name.group_sort = group_sort
 
         await class_name.save()
 
@@ -455,10 +462,17 @@ async def get_school_group():
 @classes.get("/get_class_name")
 async def get_class_name(
     location_id : int = 0 ,
-    class_name_id : int = 0
+    class_name_id : int = 0,
+    group_id : int = 0,
+    group_sort :str = None,
+    category :str = None
 ):
     try:
-        if location_id == 0:
+        if group_sort:
+            class_name_list = await Class_name.filter(group_sort = group_sort).all()
+        elif category:
+            class_name_list = await Class_name.filter(Q(category__icontains=category)).all()
+        elif location_id == 0:
             if class_name_id == 0 :
                 class_name_list = await Class_name.all()
             else :
@@ -478,17 +492,19 @@ async def get_class_name(
             else :
                 school_obj = await Schools.get(id=class_name_obj.school_id)
                 school_name = school_obj.name
-            class_data = {
-                "class_name_id": class_name_obj.id,
-                "name": class_name_obj.name,
-                "school":school_name,
-                "category": class_name_obj.category,
-                "introduction": class_name_obj.introduction,
-                "organizer": class_name_obj.organizer,
-                "group_id": class_name_obj.group_id,
-                "cover_img": class_name_obj.cover_img
-            }
-            classes_name.append(class_data)
+            if not group_id or class_name_obj.group_id==group_id:
+                class_data = {
+                    "class_name_id": class_name_obj.id,
+                    "name": class_name_obj.name,
+                    "school":school_name,
+                    "category": class_name_obj.category,
+                    "introduction": class_name_obj.introduction,
+                    "organizer": class_name_obj.organizer,
+                    "group_id": class_name_obj.group_id,
+                    "cover_img": class_name_obj.cover_img,
+                    "group_sort":group_sort
+                    }
+                classes_name.append(class_data)
 
         return {"msg": "success", "code": 200, "classes": classes_name}
     
@@ -553,7 +569,7 @@ async def search_class_like(keyword: str):
             }
             classes.append(class_data)
 
-        class_name_list = await Class_name.filter(Q(name__icontains=keyword)).all()
+        class_name_list = await Class_name.filter(Q(name__icontains=keyword)|Q(group_sort__icontains=keyword)).all()
 
         for class_name in class_name_list:
             class_list = await Class_list.filter(name_id=class_name.id).all()
@@ -731,6 +747,3 @@ async def delete_online_course(
     except Exception as e:
         return {"msg": str(e), "code": 500}
 
-@classes.post("/uploadfiles/")
-async def create_upload_files(files: List[UploadFile]):
-    return {"filenames": [file.filename for file in files]}

+ 1 - 1
app/api/news.py

@@ -131,7 +131,7 @@ async def update_news(
         if category.strip() != '':
             news_obj.category = category
 
-        if create_time.strip() != '':
+        if create_time != '':
             news_obj.create_time = create_time
 
         if content.strip() != '':

+ 1 - 1
app/models/models.py

@@ -61,7 +61,7 @@ class Class_name(Model):
     organizer = fields.CharField(max_length=45, description="主辦單位")
     cover_img = fields.CharField(max_length=255, description="封面圖片")
     group_id = fields.IntField(description="學群")
-
+    group_sort = fields.CharField(max_length=45, description="學群細分")
 
 class Class_list(Model):
     id = fields.IntField(pk=True)