feat(fach): Duplikate case-insensitiv verhindern, Verwendung anzeigen und ersetzen/zusammenführen
Anlegen prüft jetzt case-insensitiv auf Duplikate (409 statt "Fach A"
neben "fach a"). Neuer Endpunkt GET /faecher/{id}/objekte zeigt, welche
Objekte ein Fach über ihre Vorlage tatsächlich nutzen. POST
/faecher/{id}/ersetzen benennt um und zieht alle Vorlagenpositionen
mit; landet der neue Name auf einem bereits bestehenden Fach, werden
beide zusammengeführt. Frontend: Fach anklicken öffnet Verwendung +
Ersetzen-Eingabe direkt in der Fächer-Verwaltung.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CVgbozhYmuEhiEJHffRXCV
This commit is contained in:
@@ -17,9 +17,10 @@ async def _stelle_faecher_sicher(
|
||||
if not benoetigt:
|
||||
return
|
||||
result = await db.execute(select(Fach.name).where(Fach.objekttyp_id == objekttyp_id))
|
||||
vorhanden = set(result.scalars().all())
|
||||
for name in benoetigt - vorhanden:
|
||||
db.add(Fach(objekttyp_id=objekttyp_id, name=name))
|
||||
vorhanden_klein = {name.strip().lower() for name in result.scalars().all()}
|
||||
for name in benoetigt:
|
||||
if name.strip().lower() not in vorhanden_klein:
|
||||
db.add(Fach(objekttyp_id=objekttyp_id, name=name))
|
||||
await db.flush()
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user