Add disney_group grouped park filter categories

- New disney_group query param on /api/assets (park, resort,
  office, springs, other)
- Both list and map filter dropdowns show group options above
  individual parks
- Backend uses IN queries for grouped park values
- Map view handles groups via client-side PARK_GROUP_MAP

Closes #69
This commit is contained in:
2026-06-03 00:57:55 -04:00
parent c7ebef7cc1
commit 874e15c01e
2 changed files with 89 additions and 13 deletions
+14
View File
@@ -1065,6 +1065,7 @@ def list_assets(
assigned_to: Optional[int] = Query(None),
disney_park: Optional[str] = Query(None),
disney_filter: Optional[str] = Query(None),
disney_group: Optional[str] = Query(None, description="Grouped park categories: park, resort, office, springs, other"),
q: Optional[str] = Query(None),
no_dex_days: Optional[int] = Query(None, ge=1),
has_gps: Optional[bool] = Query(None),
@@ -1092,6 +1093,19 @@ def list_assets(
conditions.append("is_disney = 1")
elif disney_filter == "non_disney":
conditions.append("(is_disney IS NULL OR is_disney = 0)")
if disney_group:
park_groups = {
"park": ["magic-kingdom", "epcot", "hollywood-studios", "animal-kingdom"],
"resort": ["resort"],
"office": ["office"],
"springs": ["disney-springs"],
"other": ["other"],
}
parks = park_groups.get(disney_group)
if parks:
placeholders = ",".join("?" * len(parks))
conditions.append(f"disney_park IN ({placeholders})")
params.extend(parks)
if model:
conditions.append("model = ?")
params.append(model)