sortowanie_w_mass_add #10

Merged
gru merged 90 commits from sortowanie_w_mass_add into master 2025-09-02 17:08:55 +02:00
Showing only changes of commit a7c2e6dc56 - Show all commits

57
app.py
View File

@@ -2023,62 +2023,6 @@ def suggest_products():
return {"suggestions": [s.name for s in suggestions]}
""" @app.route("/all_products")
def all_products():
sort = request.args.get("sort", "popularity")
limit = request.args.get("limit", type=int) or 100
offset = request.args.get("offset", type=int) or 0
ItemAlias = aliased(Item)
SuggestedAlias = aliased(SuggestedProduct)
base_query = (
db.session.query(
func.lower(func.trim(ItemAlias.name)).label("normalized_name"),
func.count(func.distinct(ItemAlias.list_id)).label("count"),
func.min(ItemAlias.name).label("original_name"),
)
.join(
SuggestedAlias,
func.lower(func.trim(ItemAlias.name))
== func.lower(func.trim(SuggestedAlias.name)),
)
.group_by("normalized_name")
)
if sort == "popularity":
base_query = base_query.order_by(
func.count(func.distinct(ItemAlias.list_id)).desc(), "normalized_name"
)
else:
base_query = base_query.order_by("normalized_name")
results = base_query.offset(offset).limit(limit).all()
total_count = (
db.session.query(func.count()).select_from(base_query.subquery()).scalar()
)
products = [{"name": row.original_name, "count": row.count} for row in results]
used_names = set(row.original_name.strip().lower() for row in results)
extra_suggestions = (
db.session.query(SuggestedProduct.name)
.filter(~func.lower(func.trim(SuggestedProduct.name)).in_(used_names))
.all()
)
suggested_fallbacks = [
{"name": row.name.strip(), "count": 0} for row in extra_suggestions
]
if not products:
products = suggested_fallbacks
if sort == "alphabetical":
products.sort(key=lambda x: x["name"].lower())
return jsonify(
{"products": products, "total_count": (total_count if products else len(products))}
) """
@app.route("/all_products")
def all_products():
sort = request.args.get("sort", "popularity")
@@ -2198,6 +2142,7 @@ def uploaded_file(filename):
response.headers["Cache-Control"] = app.config["UPLOADS_CACHE_CONTROL"]
response.headers.pop("Pragma", None)
response.headers.pop("Content-Disposition", None)
response.headers["Vary"] = "Accept-Encoding"
mime, _ = mimetypes.guess_type(filename)
if mime:
response.headers["Content-Type"] = mime