RRZE-Webteam / rrze-faudir

Plugin zur Darstellung des Personen- und Einrichtungsverzeichnis der FAU in Websites
GNU General Public License v3.0
0 stars 0 forks source link

Verwendete Daten zur Ausgabe von Organisation, "Funktion" und Workplace abhängig machen. #92

Open xwolfde opened 1 week ago

xwolfde commented 1 week ago

Je nach Arbeitsplatz und je nach FUnktion kann gewünscht sein, dass unterschiedliche Daten ausgegeben werden.

Daher brauche wir Attribut für die Ausgaben, welches angibt, welche der jeweiligen Datensätze dargestellt werden sollen.

Auserdem sollten wir ein Setting-Wert festlegen und eine Konstante, die im Falle mehrere Datensätze (mehrere Funktionen mit unterschieclichen Daten und/oder mehrere Arbeitsplätze), welcher davon als Default verwendet wird. Wenn nur 1 Satz vorliegt (nur eine Rolle an einem Arbeitsplatz), dann wird natürlich der verwendet.

xwolfde commented 1 week ago

Kopie der Daten von @MManthey aus dem Fall #54 zur Veranschaulichung:

Aus Schema-Person:

{
  ...
  "givenName": "Erika",
  "familyName": "Musterfrau",
  ...
  "personalTitle": "Prof. Dr.",
  "personalTitleSuffix": "Ph.D.",
  "titleOfNobility": "van",
  "email": "erika.musterfrau@fau.de",
  "telephone": "+49 9131 85-12345",
  "contacts": [
    {
      ...
      "organization": {
        ...
        "name": "Testorganisationseinheit"
      },
      ...
      "functionLabel": {
        "de": "Wissenschaftliche Mitarbeiter",
        "en": "Scientific staff"
      }
    }
  ]
}

Aus Schema-Contact:

{
  ...
  "socials": [
    {
      "platform": "github",
      "url": "https://github.com/erikamusterfrau"
    }
  ],
  "workplaces": [
    {
      "room": "01.234",
      "floor": "01",
      "street": "Musterstraße 1",
      "zip": "91058",
      "city": "Erlangen",
      "faumap": "https://karte.fau.de/api/v1/iframe/famos/12345",
      "phones": [
        "+49 9131 85-12345"
      ],
      "fax": "+49 9131 85-1234567",
      "url": "https://www.test.fau.de/person/erika-musterfrau/",
      "mails": [
        "erika.musterfrau@fau.de"
      ],
      "officeHours": [
        {
          "weekday": 1,
          "from": "07:30",
          "to": "16:00"
        }
      ],
      "consultationHours": [
        {
          "weekday": 2,
          "from": "07:30",
          "to": "16:00",
          "comment": "nur über Zoom",
          "url": "https://fau.zoom-x.de/j/1234567890?pwd=fG5xSxQ2dXNu3EMwAWgzSUpBSEFqUT16"
        }
      ],
      ...
    }
  ]
}

Aus Schema-Organization:

{
  ...
  "address": {
    "phone": "+49 9131 85-12345",
    "mail": "test@fau.de",
    "url": "https://www.test.fau.de",
    "street": "Musterstraße 1",
    "zip": "91054",
    "city": "Erlangen",
    "faumap": "https://karte.fau.de/api/v1/iframe/famos/12345"
  },
  ...
}
xwolfde commented 1 week ago

In #97 ist die Datenstruktur genauer beschrieben.

Bei der Anzeige einer Person müssen wir also mindstens den Kontext der Organisation vorauswählen. Ggf. über einen Settingswert, in dem man die Id der Organisation eintragen kann. Da diese Id aber nicht allseits geläufig ist, muss man dazu auch wieder eine Suche machen.