feat: expose explicit source conflicts
This commit is contained in:
@@ -80,6 +80,7 @@ def activity_rows(
|
||||
sources=coordinate_sources,
|
||||
coordinate_precision=coordinate_precision,
|
||||
coordinate_sources=coordinate_sources,
|
||||
source_conflicts=_source_conflicts(items),
|
||||
))
|
||||
return sorted(result, key=lambda row: (row.activity_score, row.last_confirmed_at), reverse=True)
|
||||
|
||||
@@ -95,6 +96,16 @@ def _source_system(report: CatchReport) -> str:
|
||||
return "manual-import"
|
||||
|
||||
|
||||
def _source_conflicts(reports: list[CatchReport]) -> list[str]:
|
||||
conflicts: set[str] = set()
|
||||
for report in reports:
|
||||
provenance = (report.raw_payload or {}).get("provenance", {})
|
||||
values = provenance.get("conflicts", []) if isinstance(provenance, dict) else []
|
||||
if isinstance(values, list):
|
||||
conflicts.update(str(value).strip() for value in values if str(value).strip())
|
||||
return sorted(conflicts)
|
||||
|
||||
|
||||
def _coordinate_precision(report: CatchReport) -> str:
|
||||
provenance = (report.raw_payload or {}).get("provenance", {})
|
||||
value = provenance.get("coordinate_precision") if isinstance(provenance, dict) else None
|
||||
|
||||
Reference in New Issue
Block a user