# Enum-Schnittstelle

Die Enum-Schnittstelle ermöglicht den Abruf von übersetzten Werten von oikos. Folgende Enums sind verfügbar:

  • Django Model Choices
  • Institutionen
  • Benutzerdefinierte Auswahlwerte
  • Optionen
  • Schlagworte

Die Schnittstelle ist unter dem Pfad /api/dls_sync/enum verfügbar.

# Filter

Die Liste der Enums kann nach enum oder type gefiltert werden. Der Filter akzeptiert auch eine Liste von Werten:

/api/dls_sync/enum?enum=institution&enum=option oder /api/dls_sync/enum?type=institution&type=standard_choices

Hier ist eine Liste der verfügbaren Filter für type:

  • institution -> Institutionen
  • option -> Optionen
  • custom_choice -> Benutzerdefinierte Auswahlwerte
  • tag -> Schlagworte
  • standard_choices -> Django Model Choices

Die Liste der verfügbaren Werte für enum variiert je nach vorhandenen benutzerdefinierten Feldern und Optionen. Grundsätzlich sind folgende Filter für enum verfügbar:

  • institution -> Institution
  • tag -> Schlagworte

Die Enums für Optionen setzen sich aus den FieldChoices der Optionen zusammen. Die Enums für benutzerdefinierte Auswahlwerte setzen sich aus den identifier der benutzerdefinierten Felder zusammen.

# Ergebnis

Ein Enum-Eintrag enthält folgende Felder:

  • enum -> Name des Enums
  • type -> Typ des Enums
  • label_<sprache> -> Für jede Sprache im System wird ein Feld nach dem Schema label_<sprache> generiert
  • identifier -> Identifiziert den Enum-Eintrag eindeutig innerhalb eines Enums
  • data -> Beliebige Daten eines Enum-Eintrags

Das Feld type auf dem Enum-Eintrag ist erforderlich, da andernfalls mehrdeutige Werte auftreten können, wenn beispielsweise ein benutzerdefiniertes Feld mit dem identifier institution erstellt wird.

Hier ist ein Beispiel für einen Enum-Eintrag:

{
    "enum": "task_type",
    "type": "standard_choice",
    "identifier": "control",
    "data": {},
    "label_de": "Zustandskontrolle",
    "label_fr": "Contrôle de l'état",
    "label_en": "Condition control",
    "label_it": "Controllo delle condizioni",
    "label_rm": "Controlla dal stadi"
}