add: language for banner

This commit is contained in:
Yansong Zhang
2025-10-11 14:52:34 +08:00
parent 4a05b9ab90
commit d1f34cc44c
4 changed files with 42 additions and 8 deletions

View File

@ -237,16 +237,32 @@ class InsertExploreBanner(Resource):
@only_edition_cloud
def post(self):
parser = reqparse.RequestParser()
parser.add_argument("content", type=str, required=True, nullable=False, location="json")
parser.add_argument("category", type=str, required=True, nullable=False, location="json")
parser.add_argument("title", type=str, required=True, nullable=False, location="json")
parser.add_argument("description", type=str, required=True, nullable=False, location="json")
parser.add_argument("img-src", type=str, required=True, nullable=False, location="json")
parser.add_argument("language", type=str, required=True, nullable=False, location="json")
parser.add_argument("link", type=str, required=True, nullable=False, location="json")
parser.add_argument("sort", type=int, required=True, nullable=False, location="json")
args = parser.parse_args()
content = {
"category": args["category"],
"title": args["title"],
"description": args["description"],
"img-src": args["img-src"],
}
if not args["language"]:
args["language"] = "en-US"
banner = ExporleBanner(
content=args["content"],
content=content,
link=args["link"],
sort=args["sort"],
language=args["language"],
)
db.session.add(banner)
db.session.commit()

View File

@ -1,3 +1,4 @@
from flask import request
from flask_restx import Resource
from controllers.console import api
@ -12,8 +13,11 @@ class BannerApi(Resource):
@explore_banner_enabled
def get(self):
"""Get banner list."""
language = request.args.get("language", "en-US")
banners = (
db.session.query(ExporleBanner).where(ExporleBanner.status == "enabled").order_by(ExporleBanner.sort).all()
db.session.query(ExporleBanner).where(ExporleBanner.status == "enabled",
ExporleBanner.language == language).order_by(ExporleBanner.sort).all()
)
# Convert banners to serializable format