Diskussion:Tourpl
Aus Geoinformation HSR
Technologien/Rahmenbedingungen:
- Server: Python, SQLite
- Clients:
- OpenLayers, jQuery
- Getestet unter Firefox 3.x+4.x, IE 8+9 (später Safari).
- Folgende externe Webservices werden genutzt:
Inhaltsverzeichnis
Aktueller Stand
Letzte Anpassungen:
- UC1 bis UC5 (vgl. unten) realisiert.
Offene Fragen:
- Nahe beieinander liegende Marker?
- Wie kann man mit MS Excel Umlaute eingeben?
Task List
- Job robuster machen für weniger Ausfallzeiten à la EOSMDBOne
- http://labs.geometa.info/tourpl/ löschen
- Neue "Session" (=> Button "Neu")? vorher noch Fragen, ob die Seite wirklich verlassen und Daten nicht gespeichert werden sollen . D.h. mit JavaScript verhindern, dass der Benutzer die Seite verlässt! Fragen, ob Daten nicht gespeichert werden sollen (bzw. Window verlassen) => <script> window.onbeforeunload = function(){ return "wirklich verlassen?"; } </script>
- Permalink ohne "=", d.h. neu mit "no padding" ("=") (Standard "Base32, uppercase" ist ok und lässt das zu). Sonst kann der Link nicht in Mails verschickt werden.
- Werbung einbauen
- FavIcon einbauen
Feature Requests
Upload:
- CSV-Parser/Reader:
- Zellen mit unsichtbaren Spaces nach letztem Eintrag sollen ignoriert werden.
- "Fahrtenzeilen" ignorieren (Zeilen, bei denen nur in den ersten beiden Kolonnen Werte sind).
- Falls Fehler beim wiederholten "Upload" soll die Tour erhalten bleiben.
- Nach Upload "Zoom to full extent" festlegen und mit Daten speichern (oder jeweils berechnen).
Download:
- Ausgabe mit "Fahrtenzeilen" zwischen den Posten, mit Abfahrtszeit, Reisedauer und nächstes Fahrtziel (z.B. "9:00,00:27,Abfahrt nach Rapperswil").
GUI:
- Reihenfolge in Karte interaktiv umstellen (vgl. OpenLayers Knacknuss).
- Nicht erkannte Adressen interaktiv als Marker in Karte setzen.
- Anzeige Abfahrtszeit in Adressenliste, editierbar.
- Option "Mittlere Aufenthaltsdauer" (Default für Dauer des Aufenthalt bei jedem Zwischenhalt, z.B. 2h)
Statisches Layout:
- Werbung rechts einbauen (verwalten).
- Icons statt Weblinks in den Tabs (Vorlage, Upload, Download, etc.)
- Kleiner Versatz des Balkens oben rechts beim HSR-Logo um ein Pixel beheben (ist ev. mit Icons obsolet).
- Disabling von Funktionen, falls nicht sinnvoll (z.B. "Download, Verbessern").
Verschiedenes/Allgemeines:
- Geocodieren: Falls Adresse nicht erkannt wird => Grau machen und ignorieren.
- Marker nicht nur mit Nummer sondern neu auch mit Name beschriften
- Nach Umarrangieren und "Verbessern" soll der aktuelle Ausschnitt der Karte erhalten bleiben.
- Logging von "Neu erstellen Tourenplan" und von Löschen.
Print:
- Editieren (Druck-)Titel und -Beschreibung
- Speichern (Druck-)Titel und -Beschreibung
- Drucken (Druckansicht) = Print View = Drucken mit Liste und Karte
Ideen
- Anzeigen, Auswählen und Importieren von Google-Kontakten (anstelle CSV-Upload)
Realisierung
Zum Tourpl-Tagesrapport.
Use Cases:
1. UC1 "Tour erstellen":
- User: Tourpl starten
- User: Adressliste vorbereiten (CSV-Format)
- User: Upload Adressliste
- System: Eröffnet neue Tour:
- tour_id generiert (verkürzte uuid)
- Längen- und Breitengrade ergänzt durch Yahoo Geocoding
- dann in sqlite DB persistiert
- Umleitung uf tourpl.ch/?id=tour_id (besser direkt im Pfad à la Doodle)
- Darstellung gemäss Reihenfolge Adressliste mit openlayers in Karte (Markers numerisch und mit Name) und mit JQuery in Liste
2. UC2 "Tour manuell verbessern":
3. UC3 "Tour optimieren lassen" (Prio 3)
- User: Wählt "Optimieren"
- System: Berechnet Liste neu mit TSP-Heuristik und (vorläufig) direkte Distanzen zwischen den 'Posten'.
4. UC4 "Tour download" (CVS-Datei):
- User: Wählt "Download"
- System: Defaults Start um 08:00 Uhr, Aufenthalt 1h
5. UC5 "Neue Tour eröffnen"
- User: Button "Neu"
- USer: Neueinstieg über Startseite
6. tbd.
Spezifikation CSV-Input und -Output
Kolonnen/Felder für CSV-Upload/Input:
- Kolonnen-Namen: Name; Vorname; Anrede; Adresse; PLZ; Ort; Land; Telefon; Email; Koordinaten; Bemerkungen.
- Mitzugeben sind mind. die Felder Name; sowie entweder 1. Adresse; PLZ; Ort; (ev. Land) oder 2. Koordinaten.
- Felder/Kolonnen gehen keine verloren, wenn sie wie oben angegeben heissen (Case Insensitive) - ausser die Felder 'Abfahrt' und 'Dauer'.
- Die Felder 'Abfahrt' und Dauer werden beim Druck/Download überschrieben mit neuen Tourenangaben.
- Feld-Delimiter ist Strichpunkt, Komma, oder Tab. Strings-Delimiter ist Anführungszeichen.
- Die Reihenfolge der Kolonnen ist irrelevant.
- Für den mehrmaligen Upload, sollte der Upload/Import zusätzlich imstande sein, wie folgt mit dem Input umzugehen:
- Die Kolonnen 'Abfahrt' und Dauer: Inhalt wird gelöscht und überschrieben.
- Die Kolonnen Vorname; Telefon; Email und Bemerkungen werden eingelesen und im Download wieder mitgegeben (aber noch nicht angezeigt).
- Zeilen, die aus weniger als drei Werte in den Kolonnen haben, werden ignoriert. Das betrifft konkret auch die Wegbeschreibung (vgl. dort) des Outputs.
Kolonnen/Felder für CSV-Download/Druckansicht:
- Alle eingelesenen Kolonnen. Reihenfolge der Kolonnen...
- Kolonnen-Namen: Abfahrt; Dauer; Name; Vorname; Anrede; Adresse; PLZ; Ort; Land; Telefon; Email; Koordinaten; Bemerkungen.
- Der Feld-Delimiter ist Strichpunkt. Strings-Delimiter ist Anführungszeichen (später als Option?).
- Das Feld 'Abfahrt' enthält die Tageszeit-Angabe, wann die Tour weitergeht zum nächsten Zwischenhalt.
- Das Feldformat für Koordinaten ist Lat/Lon.
Beispiel für CSV-Upload/Input:
Adresse ;Ort ;PLZ ;Land ;Name "Oberseestr. 10" ;"Rapperswil" ;8640 ;"Schweiz" ;"HSR" "Jonastrasse 8" ;"Wald ZH" ;8636 ;"Schweiz" ;"Schreinerei" "Roosstrasse 53" ;"Wollerau" ;8832 ;"Schweiz" ;"Conrad Electronic"
Beispiel für CSV-Download/Druckansicht mit Wegbeschreibung (man beachte auch neue Reihenfolge der Kolonnen!):
Abfahrt;Dauer;Name ;Adresse ;Ort ;PLZ ;Land ;Vorname; Anrede; Telefon; Email; Bemerkungen; Koordinaten 08:00;01:30;"Schreinerei" ;"Jonastrasse 8" ;"Wald ZH" ;8636;"Schweiz"; ; ; ; ; ;"47.27613,8.91014" 09:30;00:30;"Abfahrt nach Rapperswil";;;;;;;;; 10:10;00:10;"HSR" ;"Oberseestr. 10";"Rapperswil";8640:"Schweiz"; ; ; ; ; ;"47.22306,8.81651" 10:20;01:45;"Abfahrt nach Wollerau" ;;;;;;;;; 12:05;00:40;"Conrad Electronic" ;Roosstrasse 53" ;"Wollerau" ;8832;"Schweiz"; ; ; ; ; ;"47.18978,8.72249" 12:45;00:00;"Rückfahrt nach Start" ;;;;;;;;;
Defaults/Annahmen (können dann im Tabellenkalkulation editiert werden):
- Mittlere Dauer eines Aufenthalt bei jedem Zwischenhalt ist 01:00h