Geschlechter via API abrufen
-
Die meisten bearbeitbaren Stammdaten wie Gruppentyp, Status, Bereich, usw. lassen sich über den Endpunkt
/api/person/masterdata
abrufen. Vielleicht bin ich blind, aber ich finde einfach keinen Endpunkt, der eine Zusammenfassung aller Geschlechter liefert.Im Tab Stammdaten des Moduls Personen & Gruppen kann ich neue Geschlechter hinzufügen und bestehende umbenennen. Rufe ich Personen über den Endpunkt
/api/persons
ab, erhalte ich aber nur einesexId
und kein ausgeschriebenes Geschlecht.Daher die Frage: Wie bekomme ich über die API den Anzeigenamen zu einer gegebenen
sexId
? -
@daniel-lerch in der API spuckt die Funktion "/fields" aus, was Du brauchst:
{ "id": 9, "key": "sexId", "name": "sex", "nameTranslated": "Geschlecht", "...", "options": [ { "id": "0", "name": "unbekannt" }, { "id": "1", "name": "männlich" }, { "id": "2", "name": "weiblich" }, { "id": "3", "name": "divers" }, { "id": "4", "name": "sex.diverse" } ] },
*Hab meinen Post nach thommyb's Nachfrage bearbeitet, damit man gleich sehen kann, dass /fields die entsprechenden Einträge liefert.
-
@ralf-bürzele Nein, was @daniel-lerch sucht, sind die konkreten Werte "männlich", "weiblich", usw.
-
@thommyb ja, die stehen genau da. Siehe den Auszug vom Ergebnis:
{ "id": "1", "name": "männlich" },
fields liefert nicht nur den Namen der DB-Felder, sondern teilweise wie bei sexId auch die möglichen Werte.
-
@ralf-bürzele Ah, sehr interessant. Ich habe diesen Endpunkt noch nicht angeschaut. Sollte ich vielleicht mal tun. Danke für diesen Hinweis!
(PS: Ihr habt da übrigens ein Duplikat in euren Stammdaten.)
-
@ralf-bürzele Vielen Dank für die schnelle Antwort. Ich bin gar nicht darauf gekommen, in den DB-Feldern danach zu suchen, aber es macht Sinn, dass Daten, die nicht relevant für Berechtigungen sind wie Gruppentyp, Bereich oder Status nicht unter
/api/person/masterdata
, sondern unter/api/fields
bzw./api/dbfields
erreichbar sind.Ganz gelöst ist mein Problem damit aber noch nicht, weil ChurchTools einerseits Namen, aber auch unabhängig davon noch Übersetzungen hat. Auch vom neuen Endpunkt
/api/dbfields/9/options
erhalte ich aber nur:{ "data": [ { "id": 0, "name": "unbekannt" }, { "id": 1, "name": "m\u00e4nnlich" }, { "id": 2, "name": "weiblich" }, { "id": 3, "name": "sex.diverse" } ], "meta": { "count": 4 } }
An anderen Stellen in der API gäbe es jetzt noch einen
nameTranslated
, aber hier weiß ich nicht, wie ich von sex.diverse auf die deutsche Übersetzung divers kommen soll. -
@daniel-lerch Gute Frage - die ich Dir nicht beantworten kann. Ein Weg wäre ausprobieren, ob die Übersetzungen wirklich wo ankommen, ein anderer mal im Support nachzufragen, was da hinter den Kulissen passiert.
-
@daniel-lerch Jetzt kann ich Dir's glaub beantworten. Folgende Beobachtung - @thommyb das Duplikat ist da sinnvoll und stammt übrigens von den Vorgaben der Landeskirche:
Ich habe mal den Übersetzungs-Eintrag sex.divers geändert und meinem Test-Benutzer verschiedene Geschlechter zu gewiesen. "divers" bleibt "divers", aber dort wo unter options "sex.divers" drinsteht, wird der entwsprechende EIntrag aus der Übersetzung geholt.
Testweise dann mal "männlich" ausgewählt und "sex.male" in Übersetzungen abgeändert - das hat dann in der Anzeige keine Auswirkungen. D.h. wenn man Übersetzung haben will, muß in den Stammdaten "sex.male"/.... statt "männlich drinsein.
(und immer wieder nach Änderung komplett neu laden, sonst kommt die geänderte ÜS nicht zum Tragen)
-
@ralf-bürzele Vielen Dank für die Recherche. Diese Übersetzungsfunktion kannte ich noch gar nicht. Damit ist mein Problem mit den Geschlechtern aber gelöst und ich kann mich um die Integration der Übersetzungsfunktion allgemein kümmern.
-
@ralf-bürzele Wieso ist das Duplikat sinnvoll? Für mich sieht es eher so aus, als hättet ihr "divers" in die Stammdaten eingetragen, und irgendwann hat CT ebenfalls "divers" hinzufügt, ohne auf einen etwaigen Benutzer-Eintrag zu achten.
-
@thommyb Sinnvoll im SInne: daran hab ich erkannt, wie das funktioniert.
Ansonsten sind das offensichtlich falsche Vorbelegungen von unserer Landeskirche. Muß ich mal weitergeben.