feat: GIAS classification fields stored as codes, translated in code #24

Merged
tudor merged 9 commits from feat/gias-code-dictionaries into main 2026-07-09 13:32:44 +00:00
Showing only changes of commit 4f6b2b0edc - Show all commits
+10 -7
View File
@@ -19,6 +19,8 @@ import psycopg2
import psycopg2.extras
import typesense
from gias_codes import PHASE_OF_EDUCATION, RELIGIOUS_CHARACTER, SCHOOL_TYPE, translate
COLLECTION_SCHEMA = {
"fields": [
{"name": "urn", "type": "int32"},
@@ -44,10 +46,10 @@ QUERY_BASE = """
SELECT
s.urn,
s.school_name,
s.phase,
s.school_type,
s.phase_code,
s.school_type_code,
l.local_authority_name as local_authority,
s.religious_character,
s.religious_character_code,
s.ofsted_grade,
l.postcode,
s.headteacher_name,
@@ -85,14 +87,15 @@ def build_document(row: dict) -> dict:
"id": str(row["urn"]),
"urn": row["urn"],
"school_name": row["school_name"] or "",
"phase": row["phase"] or "",
"school_type": row["school_type"] or "",
"phase": translate(row["phase_code"], PHASE_OF_EDUCATION) or "",
"school_type": translate(row["school_type_code"], SCHOOL_TYPE) or "",
"local_authority": row["local_authority"] or "",
"postcode": row["postcode"] or "",
}
if row.get("religious_character"):
doc["religious_character"] = row["religious_character"]
religious_character = translate(row.get("religious_character_code"), RELIGIOUS_CHARACTER)
if religious_character:
doc["religious_character"] = religious_character
if row.get("ofsted_grade"):
doc["ofsted_rating"] = OFSTED_LABELS.get(row["ofsted_grade"], "")
if row.get("headteacher_name"):