Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Closed
xwolfde opened this issue Nov 8, 2024 · 14 comments
Assignees
Labels
Abnahme ok Passt für die Milestoneversion enhancement New feature or request

Comments

@xwolfde
Copy link
Member

xwolfde commented Nov 8, 2024

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
Copy link
Member Author

xwolfde commented Nov 8, 2024

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": "[email protected]",
  "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": [
        "[email protected]"
      ],
      "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": "[email protected]",
    "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
Copy link
Member Author

xwolfde commented Nov 12, 2024

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.

@xwolfde xwolfde changed the title Verwendete Daten zur Ausgabe vom "Arbeitsplatz" und von "Funktion" abhängig machen. Verwendete Daten zur Ausgabe von Organisation, "Funktion" und Workplace abhängig machen. Nov 12, 2024
@MManthey MManthey assigned MManthey and debokshi and unassigned MManthey Dec 3, 2024
@xwolfde
Copy link
Member Author

xwolfde commented Dec 4, 2024

[faudir orgaid="1011120000" function="Wissenschaftliche Mitarbeiter"]

spreche api an mit der orgaid="1011120000" und hole alle personen die bei der orgaid in genau dieser gruppe sind.

gruppe =

  "functionLabel": {
        "de": "Wissenschaftliche Mitarbeiter",
        "en": "Scientific staff"
      }

@MManthey
Copy link

Filterlogik:
(category OR function) and (identifier OR id OR orgnr)

@MManthey MManthey assigned MManthey and unassigned debokshi Dec 16, 2024
@xwolfde
Copy link
Member Author

xwolfde commented Dec 17, 2024

Hm... ich weiß nicht ob da schon was gemacht wurde. Aber ich sehe da gerade ein Problem.

Wenn ich ein Code hab, wo ich die Category verwende, wird jetzt nichts mehr gezeigt:
grafik

Wir müssen wahrscheinlich die Logik nochmal korrigieren.

(category) or (identifier or id) or (function and orgnr)

Also:

  • Wenn der Shortcode/Block eine Ausgabe mit category="" will, brauchen wir keine id,identifier oder orgnr, sondern zeigen alle Personeneintrage, die die category haben. Nur Falls category="" zusammen mit id, identifier oder orgnr verwenden wird, dann verwende hier AND.
  • Wenn id="" oder identifier="" verwendet wird, dann zeigen wir zunächst die lokalen Daten an, wenn vorhanden. Wenn wir zu einem identifier in dem Moment keine lokalen Daten haben, dann laden wir diese von der API.
  • Wenn function="" gewählt ist, muss im Shortcode entweder identifier oder id oder orgnr angegeben sein, oder die orgnr muss im Backend gesetzt worden sein. Der Aufruf function braucht aber immer einen zusätzliche Angabe.

FitoreGashi added a commit that referenced this issue Dec 17, 2024
* commit '5dcc9ec369f06984328db46c5c8725297da0e0a5':
  #92 added condition for category & post id
FitoreGashi added a commit that referenced this issue Dec 18, 2024
@FitoreGashi FitoreGashi added the Abnahmetest Dieser Issue wurde vom Entwickler als fertig gesehen und kann getestet/abgenommen werden label Dec 18, 2024
@xwolfde
Copy link
Member Author

xwolfde commented Dec 18, 2024

Funktioniert leider garnicht, weder im Block noch im Shortcode?

Test mit SHortcodes mit diesen Shortcode-Einträgen:
[faudir orgaid="1011120000" function="Wissenschaftliche Mitarbeiter"]
[faudir function="Wissenschaftliche Mitarbeiter"]
[faudir function="Leiter"]

Überall: Es konnte kein Kontakteintrag gefunden werden.

In den Settings ist als Orga die 1011120000 vorbelegt.

Mit Block auch nichts:

grafik

@xwolfde xwolfde removed the Abnahmetest Dieser Issue wurde vom Entwickler als fertig gesehen und kann getestet/abgenommen werden label Dec 18, 2024
@FitoreGashi
Copy link

@xwolfde Ich habe die Tests sowohl auf Englisch als auch auf Deutsch durchgeführt, und es functionitert. Du solltest die Funktion genau so schreiben, wie sie in der API definiert ist. Zum Beispiel: Head oder Leitung, Deputy oder Stellvertretung

Englisch: [faudir function="Head" orgnr="1011120000"]
Deutsch: [faudir function="Leitung"]

FitoreGashi added a commit that referenced this issue Dec 18, 2024
debokshi added a commit that referenced this issue Dec 18, 2024
* commit 'bcacf1ecc4ae954a6b8000ec42c751cd8f066838':
  More flexible matching #92
  Added sorting atributes #93
@xwolfde
Copy link
Member Author

xwolfde commented Dec 18, 2024

Ah, my bad. Hast recht.

Beim Shortcode geht es mit der richtigen Bezeichnung. Beim Block kriege ich es aber auch mit der richtigen Bezeichnung nicht hin :(

Mein Missverständnis kam daher, dass ich dachte, dass wir auch hier für den Fall, dass wir auf die Setting-Einstellung der Organummer zurückfallen, auch dort variable nach unten gehen, wie hier beschrieben:
#99 (comment)

Sprich, wenn ich nur nach
[faudir function="Leitung"]
suche und in den Settings 1011120000 eingetragen ist, müsste ich alle Personen finden die in allen unterorgs von 101112 sind. Also z.B. auch 1011126200

Nur dann, wenn im Shortcode die Nummer explizit angegeben ist mit
[faudir function="Leitung" orgnr="1011120000"]
dann soll nicht hierarchisch gesucht werden, sondern exakt diese.

@FitoreGashi
Copy link

Im Block funktioniert es bei mir, siehe Screenshot. Wir hatten es so verstanden, dass bei der Abfrage nach „Professoren“ die Personen aus der angegebenen Organisation gefunden werden sollen, ohne dass automatisch alle „Children Orgs“ einbezogen werden. Das entspricht auch dem, was im Issue erwähnt wurde.

Ich spreche nochmal mit @MManthey und @debokshi und prüfe, ob wir das in den gegebenen Zeitrahmen implementieren können. 😊

Screenshot 2024-12-18 at 15 09 54

@FitoreGashi
Copy link

@xwolfde Can we use the subOrganization to fetch relevant org ?

@xwolfde
Copy link
Member Author

xwolfde commented Dec 18, 2024

Uh, now you got me - I dont know... But the API documentation looks right for it. If this helps and works, do it.

But do you really need it? Wouldnt ist be easier to use lq-Search in /persons/ in the orga-attributs and look if a number starts with the sma eorg nr?

FitoreGashi added a commit that referenced this issue Dec 18, 2024
@FitoreGashi FitoreGashi added the Abnahmetest Dieser Issue wurde vom Entwickler als fertig gesehen und kann getestet/abgenommen werden label Dec 18, 2024
@xwolfde
Copy link
Member Author

xwolfde commented Dec 19, 2024

Ah, du bist Frühaufsteher und hast schon was gemacht. Mir ist noch eingefallen, dass ja Marten (?) bei der Suche nach Personen im Backend mit dem Filter nach der org genau auch schon nach Personen suchte, deren Orgnr mit der Nummernfolge begann.
Ggf. Wäre dieselbe query von dort nutzbar.

Sorry, ist mit erst gerade eingefallen.

Ich bin noch unterwegs und schaue gleich die neue Lösung an.

@xwolfde
Copy link
Member Author

xwolfde commented Dec 19, 2024

Hm, leider:

Shortcode:

[faudir orgnr="1011120000" function="Leitung"]

zeigt nun zwar Leute mit der Funktion "Leitung", aber aus völlig anderen Orgnummern, die nicht unterhalb von 101112 sind.
Gewollt war, dass wenn ich diese Nummer eingebe, exakt nur die Personen aus der Orgnr kommen.
Ergebnisse hätte hier nur die Person Marcel Ritter sein dürfen.

grafik

Wenn ich den Shortcode ohne orgnr-Attribut verwende:
[faudir function="Leitung"]

sollte die Orgnr aus der Setting verwendet werden. Diese ist bei mir aktuell auf 1011120000 gestellt:
grafik

In diesem Fall, bei Verwendung der Nummer aus der Settings, war ja gewünscht, dass alle Personen der Funktion Leitung gefunden werden, die einer Organisation angehören, die mit 101112 beginnen. DIe Nullen am Ende werden also weggelassen und es wird nicht nur exakt nach nur diese Orga gesucht sondern auch nach denen, die darunter soriert sind.

Leider erhalte ich auch da obige Liste mit Leitungs-Personen aus anderen Einrichtungen, die nicht unterhalb von 101112 sind.

Block:

Bei Nutzung der EIngabe erfolgt bei EIngabe von Funktion Leitungund Organisationsnummer 101112000 dasselbe, wie oben beim Shortcode:
grafik

Wenn ich beim Block keine Nummer eingebe, erscheint nichts, auch wenn ich die Settings im Backend voreingestellt hab.

(Beim Block passiert übrigens erst was, wenn ich ein aktives Element anklicke. Die Eingabe/Änderung der Nummer löst noch nichts aus. Aber das ist erstmal ok.)

@xwolfde xwolfde removed the Abnahmetest Dieser Issue wurde vom Entwickler als fertig gesehen und kann getestet/abgenommen werden label Dec 19, 2024
MManthey added a commit that referenced this issue Dec 19, 2024
debokshi added a commit that referenced this issue Dec 19, 2024
debokshi added a commit that referenced this issue Dec 19, 2024
FitoreGashi added a commit that referenced this issue Dec 19, 2024
* commit 'b1690a303ccca8ecd735f36e2ed2dcf9689bb333':
  fixed warning #92
@MManthey MManthey added the Abnahmetest Dieser Issue wurde vom Entwickler als fertig gesehen und kann getestet/abgenommen werden label Dec 19, 2024
@xwolfde
Copy link
Member Author

xwolfde commented Dec 20, 2024

Die Suche nach Funktionen funktiert prinzipiell. Daher nehme ich den Issue hiermit ab.

Allerdings gibt es noch zwei gesonderte Bugs, die dabei sichtbar wurden:

@xwolfde xwolfde added Abnahme ok Passt für die Milestoneversion and removed Abnahmetest Dieser Issue wurde vom Entwickler als fertig gesehen und kann getestet/abgenommen werden labels Dec 20, 2024
@xwolfde xwolfde closed this as completed Dec 20, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Abnahme ok Passt für die Milestoneversion enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

4 participants