Ungelöst Liste von Personen, die mir als IDs vorliegen, selektieren
-
Ich habe zu einer Liste von CT-Personen die IDs und die möchte ich nun gerne alle markieren, um sie beispielsweise in eine Gruppe zu packen. Da muss es doch eine Möglichkeit geben, das passend oben in die Suche einzugeben. Mag nicht über 100 Leute manuell durchklicken. Wenn es nur eine ID ist, beispielsweise die 63, kann man ja einfach "#63" in die Suche eingeben. Aber bei mehreren habe ich kein Schema gefunden "#63,#89" funktioniert zum Beispiel nicht.
-
@jjb ... fällt mir keine Lösung ein. Nur Häkchen setzen und dann "nur markierte" auswählen.
-
@andy Das ist ja schade. Dann wäre das auf jeden Fall ein Feature, welches ich mir wünsche. Wir haben aus alten Zeiten noch einen E-Mail-Verteiler, den wollen wir jetzt zu einer CT-Gruppe machen wollen. Gibt es dafür vielleicht ein sinnvolles Verfahren?
Aus dem E-Mail-Verteiler kann ich problemlos mittels eines kleinen Skriptes und des CT-Personen-Exports die Liste der IDs der CT-Personen generieren. Aber ab hier wissen wir wohl beide nicht mehr weiter.
-
@jjb mit Zugriff auf die DB wäre es easy.
-
@andy Naja, ich bräuchte ja nicht nur Lese- sondern sogar Schreibzugriff und den geben die CT-Entwickler aus gutem Grund nicht weiter. Da kann man sehr viel kaputt machen und wie easy das wirklich wäre, weiß ich gar nicht. Wer weiß, wie viele DB-Einträge geändert werden müssen, um jemanden in eine Gruppe aufzunehmen (man denke an Logeinträge, E-Mails, die zu verschicken sind und so weiter)...
Aber einfach eine Möglichkeit oben beim Suchfeld in einer von den Entwicklern vorgegebenen Formatierung eine Liste von IDs einzugeben, wäre super! -
@jjb sagte in Liste von Personen, die mir als IDs vorliegen, selektieren:
und wie easy das wirklich wäre, weiß ich gar nicht
In meinem Verständnis werden in einer einzigen Tabelle die Relationen zwischen Personen-ID und Gruppen-ID hergestellt, fertig. Wäre für den von dir angedachten Fall eine Kleinigkeit mit phpMyAdmin.
Aber verstehe mich bitte nicht falsch: Ich wünsche mir die Zeit des Selfhostings nicht zurück! (Wobei der DB-Zugriff durchaus nett war.)
Nicht umsonst sind wir schon nach einem Jahr zum Hosting bei CT gewechselt. -
@andy wenn jemand das kann, dann kann er auch ein kleines API-Script schreiben, das das macht.
etwa so. Das kann man mit https://github.com/bwl21/113_ctcli laufen lassen
<?php //die ("Add Persons to group ist nicht erlaubt"); $group = 1075; $persons = [ 1, ]; foreach ($persons as $personId) { echo "\ncrateing $personId"; $report1 = [ 'url' => "$ctdomain/api/groups/$group/members/$personId", 'method' => "PUT", 'body' => [] ]; $report[$personId] = CT_APITOOLS\CTV2_sendRequest($report1); }
-
@bwl21 öhm... nööö... spreche aber nur für mich. Aber ich muss auch nicht alles können
-
@bwl21 Ja, darauf wird es wohl hinaus laufen, dass ich mich mal mit der API beschäftige, was ich bislang noch nicht getan habe. Wo ist die dokumentiert?
-
@jjb Unter https://<gemeinde>.church.tools/api findest du die Beschreibung der API. Dort kannst du sogar direkt und ohne Umwege die Aufrufe parametrisieren und ausprobieren. Diesen Teil finde ich super praktisch; das hat mir viel Zeit gespart.
Leider gibt es (noch) kein Tutorial, aber wenn man sich ein wenig mit HTTP und REST Services auskennt, findet man sich sehr schnell zurecht. -
Dieser Beitrag wurde gelöscht! -
@thommyb sagte in Liste von Personen, die mir als IDs vorliegen, selektieren:
@jjb Unter https://<gemeinde>.church.tools/api findest du die Beschreibung der API. Dort kannst du sogar direkt und ohne Umwege, die Aufrufe parametrisieren und ausprobieren. Diesen Teil finde ich super praktisch; das hat mir viel Zeit gespart.
Leider gibt es (noch) kein Tutorial, aber wenn man sich ein wenig mit HTTP und REST Services auskennt, findet man sich sehr schnell zurecht.@jjb Es gibt noch die V1-Api. Die muss man am besten im Browser Entwiklertools / Netzwerk beobachten.
-
Ich habe jetzt eine Lösung für das ursprüngliche Problem gefunden: Einfach ein kleines Bookmarklet schreiben. Die Checkbox mit einer gegeben id kann man über
document.getElementById("check"+id).checked=true;
aktivieren. Also muss man nur mit einer for-Schleife durch die Liste der ids gehen und hat das Ergebnis. Eine Sache, die noch zu beachten ist, dass man sich nur maximal 200 Personen pro Seite anzeigen lassen kann. Also muss man es immer in 200er-Häppchen machen. Aber immer noch wesentlich angenehmer als alle Leute manuell durchzuklicken.
-
@jjb Kleine Ergänzung: Man muss den Code
$("#check"+id).trigger('click');
statt obiger Zeile verwenden. Grund dafür: Obige Zeile aktiviert zwar die Checkboxes, CT reagiert darauf aber gar nicht. Erst mit dem Mausklick auf eine Checkbox wird von CT aus das eigentliche Event gefeuert (der Status der Checkbox ist für die CT-Software uninteressant und ist nur für den User als optisches Feedback gedacht). Das hier verwendete jQuery muss nicht erst eingebunden werden, weil CT selbst jQuery bereits einbindet.