diff --git a/api/controllers/console/explore/banner.py b/api/controllers/console/explore/banner.py index 0daf34d01d..6a57e4d77b 100644 --- a/api/controllers/console/explore/banner.py +++ b/api/controllers/console/explore/banner.py @@ -15,11 +15,15 @@ class BannerApi(Resource): """Get banner list.""" language = request.args.get("language", "en-US") - banners = ( - db.session.query(ExporleBanner).where(ExporleBanner.status == "enabled", - ExporleBanner.language == language).order_by(ExporleBanner.sort).all() - ) - + # Build base query for enabled banners + base_query = db.session.query(ExporleBanner).where(ExporleBanner.status == "enabled") + + # Try to get banners in the requested language + banners = base_query.where(ExporleBanner.language == language).order_by(ExporleBanner.sort).all() + + # Fallback to en-US if no banners found and language is not en-US + if not banners and language != "en-US": + banners = base_query.where(ExporleBanner.language == "en-US").order_by(ExporleBanner.sort).all() # Convert banners to serializable format result = [] for banner in banners: