feat(api): drive has_sixth_form filter and payloads from GIAS flag
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
+9
-4
@@ -416,10 +416,14 @@ async def get_schools(
|
||||
df_latest = df_latest[df_latest["gender"].str.lower() == gender.lower()]
|
||||
if admissions_policy:
|
||||
df_latest = df_latest[df_latest["admissions_policy"].str.lower() == admissions_policy.lower()]
|
||||
if has_sixth_form == "yes":
|
||||
df_latest = df_latest[df_latest["age_range"].str.contains("18", na=False)]
|
||||
elif has_sixth_form == "no":
|
||||
df_latest = df_latest[~df_latest["age_range"].str.contains("18", na=False)]
|
||||
# GIAS OfficialSixthForm flag (dim_school.has_sixth_form). NULL (flag not
|
||||
# yet populated by the pipeline) is treated as "no sixth form".
|
||||
if has_sixth_form in ("yes", "no"):
|
||||
if "has_sixth_form" in df_latest.columns:
|
||||
flag = df_latest["has_sixth_form"].eq(True)
|
||||
else: # DB predates the pipeline re-run — fall back to age range
|
||||
flag = df_latest["age_range"].str.contains("18", na=False)
|
||||
df_latest = df_latest[flag if has_sixth_form == "yes" else ~flag]
|
||||
|
||||
# Include key result metrics for display on cards
|
||||
location_cols = ["latitude", "longitude"]
|
||||
@@ -596,6 +600,7 @@ async def get_school_details(request: Request, urn: int):
|
||||
"address": latest.get("address", ""),
|
||||
"religious_denomination": latest.get("religious_denomination", ""),
|
||||
"age_range": latest.get("age_range", ""),
|
||||
"has_sixth_form": latest.get("has_sixth_form"),
|
||||
"latitude": latest.get("latitude"),
|
||||
"longitude": latest.get("longitude"),
|
||||
"phase": latest.get("phase"),
|
||||
|
||||
Reference in New Issue
Block a user