Veranstaltungsort über ChurchCal API abfragen



  • Hi,

    wir wollen unsere Gemeindetermine aus ChurchTools mit unserem CMS für die Internetseite synchronisieren. Wir haben dazu die beiden verfügbaren APIs getCalendarEvents und getCalPerCategory ausprobiert.

    Bei der API getCalendarEvents bekommen wir bei manchen Terminen ein ort Feld mit, was aber nicht korrekt befüllt ist:

        "data": [
            {
                "startdate": "2018-06-23 12:00:00",
                "enddate": "2018-06-23 17:00:00",
                "bezeichnung": "kirchliche Trauung",
                "category_id": "2",
                "ort": "Janina XXXX & Raphael YYYY",
                "category_name": "MM_Gemeindetermine",
                "bookings": {
    ...
    

    Das Feld location (warum einmal Deutsch, dann wieder Englisch?) bei den Ressourcen ist zwar immer vorhanden, aber auch leer.

    Bei den anderen API getCalPerCategory bekommen wir ähnliche Ergebnisse:

        "data": {
            "2": {
                "14": {
                    "id": "14",
                    "bezeichnung": "H\u00fchnerberg - Aktion",
                    "ort": "Aktion f\u00fcr Kinder",
    ...
                    "bookings": {
                        "121": {
                            "id": "121",
                            "minpre": 45,
                            "minpost": 90,
                            "resource_id": "8",
                            "status_id": "1",
                            "location": "",
                            "note": ""
                        },
    
    . . .
    

    Auch hier bei den Ressourcen mit einem leeren location Feld. Laut unserem ChurchTools Administrator scheint die "Bemerkung" der Termine in der API als ort aufzutauchen.

    Die Frage ist nun wie wir zu einem Termin einen Veranstaltungsort bekommen?

    Viele Grüße,
    Simon


  • ChurchToolsMitarbeiter

    Die API ist da leider etwas verwirrend da geb ich dir recht.

    Bei getCalendarEvents ist der ort das Feld, dass im Frontend Notitz heißt.

    Ein Versanstaltungsort wird aktuell nicht an einem Termin gespeichert. Was aber möglich ist, ist die Verknüpfung von Terminen mit Buchungen.

    Ihr habt z.B. eine Ressource namens großer Saal. Die verknüpft ihr mit dem Termin im Kalender.
    Auf eurer Webseite könnt ihr dann über die API getCalPerCategory auch die zugehörigen Buchungen herausfinden. In der Buchung findest du die resource_id. Über die kannst du dann den Namen der Ressource herausfinden und diesen auf eurer Webseite mit anzeigen.

    Ressourcen kannst du über die Schnittstelle getMasterData im Modul churchresource/ajax holen.
    Also so ungefähr: ?q=churchresource/ajax&func=getMasterData



  • @davidschilling Der Workaround mit den Ressourcen ist mir auch eingefallen, aber wenn ich mehrer Räume buche (wir haben z.B. Gruppenräume ein paar Straßen weiter), kann ich immernoch nicht feststellen wo der Termin stattfindet. Da das Feld im Frontend "Notiz" heißt ist das auch von der Usability eine Katastrophe. Wie soll man bitte besonders weniger versierten Benutzer das erklären ohne irgendwie eine zusätzliche Anleitung zu verteilen?

    Was noch dazu kommt: nicht alle Termine finden in Gemeinde-Räumen statt sondern z.T. in öffentlichen Gebäuden oder Privathaushalten bei dem nicht immer extra eine Ressource angelegt werden soll und was aufgrund von Berechtigungen auch nicht möglich ist

    Ich verstehe nicht ganz wie man einen Kalender implementieren kann bei dem die Termine keinen Ort haben können?!

    Das ist anscheinend auch ein "Feature", dass leider noch nicht genügen Upvotes bekommen hat: https://forum.church.tools/topic/2154/ort-bei-kalendereintrag