diff --git a/lawrisk/services/lawrisk_v2_service.py b/lawrisk/services/lawrisk_v2_service.py index a15d55c..931e56d 100644 --- a/lawrisk/services/lawrisk_v2_service.py +++ b/lawrisk/services/lawrisk_v2_service.py @@ -327,7 +327,7 @@ def search_v2( "id": "", "display_name": "", "region": {"id": ctx["region_id"], "name": ctx["region_name"]}, - "theme": {"id": "", "name": ""}, + "theme": {"id": ctx.get("theme_id", ""), "name": ctx.get("theme_name", "")}, "permits": permits, } ) diff --git a/lawrisk/services/licensing_repo.py b/lawrisk/services/licensing_repo.py index 0371937..df0d1c5 100644 --- a/lawrisk/services/licensing_repo.py +++ b/lawrisk/services/licensing_repo.py @@ -3657,7 +3657,7 @@ def load_permits_and_risks( params.append(permit_id) sql += """ - ORDER BY p.name, rk.risk_content + ORDER BY p.name, LENGTH(rpr.serial_number), rpr.serial_number, rk.risk_content """ permits: Dict[str, Dict[str, object]] = {} risk_seen_map: Dict[str, Set[str]] = {} # pid -> set of risk_ids @@ -4122,18 +4122,19 @@ def find_permit_contexts_by_name(permit_name: str) -> List[Dict[str, str]]: sql = """ SELECT - rtp.region_id, + rpd.region_id, r.name AS region_name, rtp.theme_id, t.name AS theme_name, p.id AS permit_id, p.name AS permit_name - FROM region_theme_permits rtp - JOIN permits p ON p.id = rtp.permit_id - JOIN regions r ON r.id = rtp.region_id - JOIN themes t ON t.id = rtp.theme_id + FROM region_permit_details rpd + JOIN permits p ON p.id = rpd.permit_id + JOIN regions r ON r.id = rpd.region_id + LEFT JOIN region_theme_permits rtp ON rtp.region_id = rpd.region_id AND rtp.permit_id = rpd.permit_id + LEFT JOIN themes t ON t.id = rtp.theme_id WHERE p.name = %s - ORDER BY r.name, t.name + ORDER BY r.name, t.name NULLS LAST """ ordered: OrderedDict[Tuple[str, str], Dict[str, str]] = OrderedDict() with _lic_pg_conn() as conn: @@ -4143,14 +4144,16 @@ def find_permit_contexts_by_name(permit_name: str) -> List[Dict[str, str]]: region_id, region_name, theme_id, theme_name, permit_id, canonical_name = row rid = str(region_id) pid = str(permit_id) + tid = str(theme_id) if theme_id else "" + tname = str(theme_name) if theme_name else "" key = (rid, pid) if key in ordered: continue ordered[key] = { "region_id": rid, "region_name": str(region_name), - "theme_id": str(theme_id), - "theme_name": str(theme_name), + "theme_id": tid, + "theme_name": tname, "permit_id": pid, "permit_name": str(canonical_name), }