fix(servers): filtre Zone=LAN match aussi zone_id IS NULL (la colonne affiche 'LAN' par defaut quand zone vide) + comparaison case-insensitive sur z.name
This commit is contained in:
parent
9b0c596f2c
commit
785916246f
@ -125,11 +125,17 @@ def list_servers(db, filters, page=1, per_page=50, sort="hostname", sort_dir="as
|
|||||||
if filters.get("os"):
|
if filters.get("os"):
|
||||||
where.append("s.os_family = :os"); params["os"] = filters["os"]
|
where.append("s.os_family = :os"); params["os"] = filters["os"]
|
||||||
if filters.get("zone"):
|
if filters.get("zone"):
|
||||||
if filters["zone"] == "__null__":
|
z = filters["zone"]
|
||||||
|
if z == "__null__":
|
||||||
where.append("s.zone_id IS NULL")
|
where.append("s.zone_id IS NULL")
|
||||||
|
elif z.lower() == "lan":
|
||||||
|
# 'LAN' = default affichage des serveurs sans zone définie
|
||||||
|
# OU rattachés à une vraie zone nommée 'LAN' en BD
|
||||||
|
where.append("(s.zone_id IS NULL OR s.zone_id IN "
|
||||||
|
"(SELECT id FROM zones WHERE LOWER(name)='lan'))")
|
||||||
else:
|
else:
|
||||||
where.append("s.zone_id = (SELECT id FROM zones WHERE name=:zone LIMIT 1)")
|
where.append("s.zone_id IN (SELECT id FROM zones WHERE LOWER(name)=LOWER(:zone))")
|
||||||
params["zone"] = filters["zone"]
|
params["zone"] = z
|
||||||
if filters.get("owner"):
|
if filters.get("owner"):
|
||||||
where.append("s.patch_os_owner = :owner"); params["owner"] = filters["owner"]
|
where.append("s.patch_os_owner = :owner"); params["owner"] = filters["owner"]
|
||||||
if filters.get("licence"):
|
if filters.get("licence"):
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user