PER_RECHTSPERSON als Rohwert in der Trefferliste zeigen (#56)
PER_RECHTSPERSON kennt die Werte 0, 1, 5 und 9 und ist kein Ja/Nein-Feld. Die Trefferliste bekommt dafür eine eigene Spalte mit dem unveränderten Wert; abweichende Werte einer Person werden gesammelt. Die Entschlüsselung folgt später. „verstorben“ (PER_VERSTORBEN 0/1) bleibt als Hinweis. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -62,7 +62,7 @@ class Eigentuemer:
|
||||
ortsteil: str = ""
|
||||
emails: Tuple[str, ...] = ()
|
||||
verstorben: bool = False
|
||||
rechtsperson: bool = False
|
||||
rechtsperson: Tuple[str, ...] = ()
|
||||
per_ids: Tuple[str, ...] = ()
|
||||
konten: Tuple[str, ...] = ()
|
||||
feature_ids: Tuple[int, ...] = ()
|
||||
@@ -85,8 +85,12 @@ class Eigentuemer:
|
||||
@property
|
||||
def hinweise(self) -> str:
|
||||
"""Kennzeichen für die Trefferliste (nicht für das Anzeigefenster)."""
|
||||
return ", ".join(t for t, gesetzt in (("verstorben", self.verstorben),
|
||||
("Rechtsperson", self.rechtsperson)) if gesetzt)
|
||||
return "verstorben" if self.verstorben else ""
|
||||
|
||||
@property
|
||||
def rechtsperson_text(self) -> str:
|
||||
"""Rohwert(e) von ``PER_RECHTSPERSON`` (bekannt: 0, 1, 5, 9), noch nicht entschlüsselt."""
|
||||
return ", ".join(self.rechtsperson)
|
||||
|
||||
|
||||
def _text(wert) -> str:
|
||||
@@ -192,17 +196,17 @@ def suche_eigentuemer(layer, nachname: str, vorname: str) -> List[Eigentuemer]:
|
||||
|
||||
gruppe = gruppen.setdefault(_gruppenschluessel(werte), {
|
||||
"werte": werte, "emails": [], "per_ids": [], "konten": [], "feature_ids": [],
|
||||
"verstorben": False, "rechtsperson": False,
|
||||
"verstorben": False, "rechtsperson": [],
|
||||
})
|
||||
for k in ("anrede", "titel"):
|
||||
if not gruppe["werte"][k] and werte[k]:
|
||||
gruppe["werte"][k] = werte[k]
|
||||
for liste, wert in (("emails", werte["email"]), ("per_ids", werte["per_id"]), ("konten", werte["konto"])):
|
||||
for liste, wert in (("emails", werte["email"]), ("per_ids", werte["per_id"]),
|
||||
("konten", werte["konto"]), ("rechtsperson", werte["rechtsperson"])):
|
||||
if wert and wert not in gruppe[liste]:
|
||||
gruppe[liste].append(wert)
|
||||
gruppe["feature_ids"].append(feature.id())
|
||||
gruppe["verstorben"] = gruppe["verstorben"] or _ist_gesetzt(werte["verstorben"])
|
||||
gruppe["rechtsperson"] = gruppe["rechtsperson"] or _ist_gesetzt(werte["rechtsperson"])
|
||||
|
||||
treffer = []
|
||||
for gruppe in gruppen.values():
|
||||
@@ -211,7 +215,7 @@ def suche_eigentuemer(layer, nachname: str, vorname: str) -> List[Eigentuemer]:
|
||||
anrede=w["anrede"], titel=w["titel"], vorname=w["vorname"], nachname=w["nachname"],
|
||||
strasse=w["strasse"], plz=w["plz"], wohnort=w["wohnort"], ortsteil=w["ortsteil"],
|
||||
emails=tuple(gruppe["emails"]),
|
||||
verstorben=gruppe["verstorben"], rechtsperson=gruppe["rechtsperson"],
|
||||
verstorben=gruppe["verstorben"], rechtsperson=tuple(gruppe["rechtsperson"]),
|
||||
per_ids=tuple(gruppe["per_ids"]), konten=tuple(gruppe["konten"]),
|
||||
feature_ids=tuple(gruppe["feature_ids"]),
|
||||
))
|
||||
|
||||
Reference in New Issue
Block a user