Admin: POI-Statistik erweitert (Nutzer-POIs nach Typ + Labels), SW by-v1099
- /admin/stats liefert jetzt zusätzlich user_poi_total + user_poi_by_type (User-POIs aus user_map_pois aufgeschlüsselt, komma-separierte Typen werden einzeln gezählt) - Admin System-Tab zeigt zwei Karten: · OSM-Cache nach Typ (was Overpass-Cache enthält) · Nutzer-POIs nach Typ (selbst erstellte Marker) - Interne Typ-Namen werden in lokalisierte Labels gemappt (tierarzt → Tierarzt, hundesalon → Hundesalon, etc.) - Header der Karten zeigt Gesamtzahl inline
This commit is contained in:
parent
cc4f030fd0
commit
15d319fbd5
6 changed files with 57 additions and 19 deletions
|
|
@ -211,6 +211,16 @@ async def stats(user=Depends(require_mod)):
|
|||
"SELECT type, COUNT(*) FROM osm_pois GROUP BY type ORDER BY 2 DESC"
|
||||
).fetchall()
|
||||
}
|
||||
# User-erstellte POIs nach Typ (type-Spalte kann komma-separiert sein wie 'freilauf,treffpunkt')
|
||||
user_poi_total = conn.execute("SELECT COUNT(*) FROM user_map_pois").fetchone()[0]
|
||||
user_poi_by_type = {}
|
||||
for row in conn.execute("SELECT type FROM user_map_pois").fetchall():
|
||||
for t in (row[0] or "").split(","):
|
||||
t = t.strip()
|
||||
if t:
|
||||
user_poi_by_type[t] = user_poi_by_type.get(t, 0) + 1
|
||||
# absteigend sortieren
|
||||
user_poi_by_type = dict(sorted(user_poi_by_type.items(), key=lambda x: x[1], reverse=True))
|
||||
|
||||
# KI-Nutzung
|
||||
try:
|
||||
|
|
@ -312,6 +322,8 @@ async def stats(user=Depends(require_mod)):
|
|||
"osm_total": osm_total,
|
||||
"osm_tiles": osm_tiles,
|
||||
"osm_by_type": osm_by_type,
|
||||
"user_poi_total": user_poi_total,
|
||||
"user_poi_by_type": user_poi_by_type,
|
||||
"ki_today": ki_today,
|
||||
"ki_week": ki_week,
|
||||
"ki_month": ki_month,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue