Kalender
Scoutnet bietet zwar viele Funktionen, dennoch fehlen ein paar essentielle Sachen:
- Anlage / Editierung von Terminen nicht über API möglich
- Support der Schnittstelle fraglich (wird seid 4 Jahren nicht mehr weiterentwickelt)
- Anfrage-Latenzen
Für die nächste Version ist ein neues Kalender-Backend anzustreben, mit dem man auch Termine verwalten kann. Die Integration in das "Ökosystem" sollte demnach auch verbessert werden können.
- Neues Design ist nötig
Für den Kalender sind folgende Daten zwingend notwendig:
- ID
- Titel
- Beschreibung
- Ort (mit Name, Straße, Hausnummer, PLZ, Ort, Latitude + Longitude)
- Start- und Enddatum
- Start- und Endzeit
- Ganztagstermin ja/nein
- Interner Download-Links (für Anmeldung, Packliste, etc.)
- URL (auf externe Seite bspw.)
- Stufen (die es betrifft)
- Kategorien (die auf den Termin zutreffen)
- Vorschaubildchen (als Quick-Info / qtip)
Comments (26)
-
-
-
@EfaEif Terminübersicht reparieren
@eifx Einige Termine melden "invalid date" (z.B. "Friedenslicht holen")
-
Anelegen/Editieren von Terminen ist über einen angeblich öffentlichen RPC-Client in PHP (Typo3-Plugin?) möglich der auch aktuell noch weiterentwickelt wird aber nicht wirklich dokumentiert ist. Ich glaube es ist https://bitbucket.org/scoutnet/plugins.typo3.sh_scoutnet_webservice
An der REST-API wurde in der tat schon lange nichts mehr gemacht weil man sie wohl für fertig hält und es ja den RPC-Client gibt. Es wurde aber vor einer Weile noch einegroße Demo für den PHP-Client für die REST-API veröffentlicht was ich als Hinweis auf eine langfristige Unterstützung sehe. Siehe http://www.scoutnet.de/api-info/php.html bzw http://www.scoutnet.de/navigator/
(Die Javascript-Demo ist auch "neu")
Grundsätzlich gibt es übrigens auch noch die Kalender-Einbindung über Smarty-Templates ( http://www.scoutnet.de/kalender/include/einbindung-homepage.html ) die es quasi schon immer gibt und - vor allem weil ihr ja eh schon Smarty benutzt - wahrscheinlich am einfachsten ist.
-
Memo: Terminübersicht prüfen @EfaEif @eifx
-
Die Client-Bibliothek mit schreibmöglichkeit liegt auf https://github.com/scoutnet/plugins.sn_webservice
-
reporter -
Ich kann jetzt den ganzen Scoutnet-API-Quellcode sehen - glaube ich.
Theoretisch darf ich auch dran herumbasteln.
Bei der REST-API geht ganz viel über eine sebstgeschriebene Codegenerierung - da steige ich (noch) nicht wirklich durch.
Mit dem alten Entwickler stehe ich zwar in Kontakt und er möchte mich unterstützen aber alles was es da an Änderungen geben soll muss ich selber implementieren.
Ich gehe davon aus dass nur die Verionsnummer verwirrend ist - da müsste einfach 1.0 statt 0.2 stehen. Die API sooll soweit ich weiß quasi für immer weiter verfügbar bleiben.
Die RPC-API wird zwar noch weiterentwickelt aber da da bisher keine Versionierung vorgesehen ist, ist sie nicht so zuverlässig stabil.
-
reporter Fabian hat im
#136gemeldet, dass auf mobilen Endgeräten (hier ein Tablet) teilweise hohe Latenzen beim Laden der Kalender-Daten auftreten. Cachen ist hier aktuell keine Alternative, da man dann auch gleich das ganze Kalender-System neu schreiben könnte... hab das schon häufig beobachtet. Gibts da vom Hosting her mal irgendwann Verbesserungen, @janbrohl ? -
Es kann am Caching des Typo3 (Die REST-API wird da durchgeschleust und sie RPC-API ist direkt ein Typo3-Plugin) liegen - da sind die Einstellungen vielleicht unterschiedlich bei den verschiedenen APIs - oder daran dass der Client nicht so toll ist (beide sind wohl nicht ganz bugfrei)
Um den REST-Client zu fixen müsste ich wohl bei der Codegenerierung durchsteigen aber da bin ich nicht so zuversichtlich.
Um das Problem kurzfristig zu beheben könntest du entweder die Bibliothek wegwerfen und direkt https://www.scoutnet.de/api/0.2/group/1460/events/ als JSON laden oder du könntest es mit dem anderen API-Client ( https://github.com/scoutnet/plugins.sn_webservice ) versuchen der auch eine andere URL abfragt.
Ich arbeite zwar an einem kompletten Rewrite des des Kalender-Servers aber das kann noch eine Weile dauern. Wie es mit den APIs weitergeht wird wohl auf dem nächsten Treffen am 18.3. Besprochen und ich habe vor da hin zu kommen.
-
reporter - changed version to 1.2
-
Die Latenzen sind als Problem bekannt und man will sich das mal ansehen. Die RPC-API soll da besser sein.
Aktueller Stand beim Kalender ist, dass eine Überarbeitung der APIs geplant ist aber die alten Schnittstellen wohl trotzdem weiter betrieben werden müssen.
Mit dem RPC-Client wäre es soweit ich verstanden habe möglich die Termine zentral von unserer Seite aus zu bearbeiten wenn man sich dafür einen extra-benutzer macht der automatisch eingelogt wird wenn nötig oder nur nicht ausgelogt wird - zumindest sieht es für mich so aus als würden andere das so machen.
Wenn ich mir ScoutnetMediator.php und calendar.php so ansehe glaube ich dass das Event-Format von der RPC-API auch besser dem entspricht was Ihr an Eluceo weitergeben wollt.
-
Der offizielle RPC-Client von Github ist nicht mehr aktuell was die Authentifizierung angeht.
-
Haha - ich habe noch eine API gefunden.
CalDAV - siehe https://www.scoutnet.de/kalender/include/einbindung-programme.html (Lesender und Schreibender Zugriff)
Eigentlich müsste man darüber alle wichtigen Funktionen zum Bearbeiten haben und die Authentifizierung ist einfach. Einzige Probleme sind dass man eine entsprechende Bibliothek braucht und da noch Daten als JSON in das Description-Feld gepackt werden ( https://github.com/scoutnet/public/issues/48 erklärt warum JSON )
-
Die Scoutnet-REST-API gibt nur maximal 500 Events zurück - bin mir nicht sicher ob das in der Clientbibliothek abgefangen wird aber unser Stamm hat tatsächlich mehr als 500 Termine im Kalender
-
Ergebnis der Scoutnet-Versammlung ist, dass in naher Zukunft JSON-RPC 2.0 unterstützt wird und damit die verbreiteten Clientbibliotheken. Ansonsten wird sich auf absehbare Zeit quasi nichts tun. Die REST-API wird nicht mehr supported und mittelfristig wohl auch unbrauchbar werden.
Dauerhaften Support gibt es sicher für das Smarty-Template und wahrscheinlich für die RPC-API.
Wir sollten nochmal darüber sprechen wie das mit dem Kalender gemacht werden soll.
-
- attached termin-formular1.PNG
Termin-Bearbeitungs-Formular bei Scoutnet
-
- attached termin-formular2.PNG
Termin-Bearbeitungs-Formular bei Scoutnet - Teil 2
-
Da Ihr ja keine entsprechenden Konten habt, habe ich euch mal Screenshots vom Termin-Bearbeitungs-Formular bei Scoutnet hochgeladen.
-
Von https://github.com/scoutnet/plugins.sn_webservice gibt es jetzt Version 1.0.1 - ich nehme en dass das bedeutet, dass die RPC-API jetzt halbwegs stabil ist.
-
Ich kriege das Testen nicht gebacken aber eigentlich sollte mit
{ "require": { "smarty/smarty": "3.1.31", "scoutnet/sn-webservice": "1.0.1", "slim/slim": "3.8.1", "phpmailer/phpmailer": "5.2.23", "ezyang/htmlpurifier": "4.9.2", "eluceo/ical": "0.11.0", "piwik/piwik-php-tracker": "1.2.0", "matthiasmullie/minify": "1.3.44" } }
etwas ähnliches wie der folgende Code laufen.
public static function getEvents($from,$to){ $scoutNetApi = new \ScoutNet\Api\ScoutnetApi(); global $session; $events = array(); foreach ($scoutNetApi->get_events_for_global_id_with_filter(SCOUTNET_ID, ['startDate' => $from, 'endDate' => $to]) as $e){ $es = array(); $ens = array(); foreach ($e->getCategories() as $cat){ $ens[] = $cat->getText(); $sectionFound = false; } foreach($e->getStufen() as $section){ foreach(self::getSections() as $nr=>$name){ if($section.getBezeichnung() == $name){ $sectionFound = true; $es[] = array( "id" => $nr, "name" => $name ); } } } sort($es); sort($ens); $events[] = array( "id" => $e->uid, "title" => $e->title, "start" => $e->getStartDate().($e->getAllDayEvent()?"":"T".$e->getStartTime()."Z"), "end" => $e->getEndDate().($e->getAllDayEvent()?($e->getAllDayEvent()?"":"T24:00:00Z"):"T".$e->getStartTime()."Z"), "allDay" => $e->getAllDayEvent(), "location" => $e->getLocation(), "url_text" => $e->getUrlText(), "url" => $e->getUrl(), "description" => $e->getDescription(), "keywords" => $es, "sections" => $ens, "CSRFToken" => $session->get("CSRFToken") ); } return $events; }
-
reporter - changed version to 2.1
-
reporter - edited description
-
assigned issue to
-
reporter - changed version to 2.0-RC3
-
reporter Kalender-Administration
- Im PAI wurden die Kalender-Administrationsfunktionen implementiert
see
#67 - Kleiner Bugfix im der Mitarbeiter-Verwaltung: Der Admin-Status wird nun nicht mehr gelöscht
→ <<cset 7ecebaa56d58>>
- Im PAI wurden die Kalender-Administrationsfunktionen implementiert
see
-
reporter - changed status to resolved
Scoutnet ersetzt durch interne Kalenderlösung
- Termin-Einzelanzeige
- Mit Bildern, verknüpften Dokumenten und weiteren Infos
resolve
#67→ <<cset dc6ec0587d95>>
- Log in to comment
Kalender-Frontend FullCalendar etabliert
see
#67→ <<cset 8f2ef87a3982>>