Fix: Allow searching for unbound permits by name
This commit is contained in:
parent
73cd32b50d
commit
199a97cceb
|
|
@ -327,7 +327,7 @@ def search_v2(
|
||||||
"id": "",
|
"id": "",
|
||||||
"display_name": "",
|
"display_name": "",
|
||||||
"region": {"id": ctx["region_id"], "name": ctx["region_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,
|
"permits": permits,
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
|
||||||
|
|
@ -3657,7 +3657,7 @@ def load_permits_and_risks(
|
||||||
params.append(permit_id)
|
params.append(permit_id)
|
||||||
|
|
||||||
sql += """
|
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]] = {}
|
permits: Dict[str, Dict[str, object]] = {}
|
||||||
risk_seen_map: Dict[str, Set[str]] = {} # pid -> set of risk_ids
|
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 = """
|
sql = """
|
||||||
SELECT
|
SELECT
|
||||||
rtp.region_id,
|
rpd.region_id,
|
||||||
r.name AS region_name,
|
r.name AS region_name,
|
||||||
rtp.theme_id,
|
rtp.theme_id,
|
||||||
t.name AS theme_name,
|
t.name AS theme_name,
|
||||||
p.id AS permit_id,
|
p.id AS permit_id,
|
||||||
p.name AS permit_name
|
p.name AS permit_name
|
||||||
FROM region_theme_permits rtp
|
FROM region_permit_details rpd
|
||||||
JOIN permits p ON p.id = rtp.permit_id
|
JOIN permits p ON p.id = rpd.permit_id
|
||||||
JOIN regions r ON r.id = rtp.region_id
|
JOIN regions r ON r.id = rpd.region_id
|
||||||
JOIN themes t ON t.id = rtp.theme_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
|
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()
|
ordered: OrderedDict[Tuple[str, str], Dict[str, str]] = OrderedDict()
|
||||||
with _lic_pg_conn() as conn:
|
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
|
region_id, region_name, theme_id, theme_name, permit_id, canonical_name = row
|
||||||
rid = str(region_id)
|
rid = str(region_id)
|
||||||
pid = str(permit_id)
|
pid = str(permit_id)
|
||||||
|
tid = str(theme_id) if theme_id else ""
|
||||||
|
tname = str(theme_name) if theme_name else ""
|
||||||
key = (rid, pid)
|
key = (rid, pid)
|
||||||
if key in ordered:
|
if key in ordered:
|
||||||
continue
|
continue
|
||||||
ordered[key] = {
|
ordered[key] = {
|
||||||
"region_id": rid,
|
"region_id": rid,
|
||||||
"region_name": str(region_name),
|
"region_name": str(region_name),
|
||||||
"theme_id": str(theme_id),
|
"theme_id": tid,
|
||||||
"theme_name": str(theme_name),
|
"theme_name": tname,
|
||||||
"permit_id": pid,
|
"permit_id": pid,
|
||||||
"permit_name": str(canonical_name),
|
"permit_name": str(canonical_name),
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue