Modul: todoist - Task-/Listenverwaltung in FHEM (Bsp. Einkaufsliste) + Frontend

Begonnen von marvin78, 27 Oktober 2017, 16:26:48

Vorheriges Thema - Nächstes Thema

marvin78

Der indent reicht aber nicht. Sie müssten dann ja auch noch richtig einsortiert werden ;) Ich gehe da irgendwann ran, ich weiß aber noch nicht wann.

Die Änderungen, die ich in den letzten Tagen gemacht habe, waren alle Kleinigkeiten und jeweils in 5 Minuten gemacht, mit den indents sieht es ein wenig anders aus. Ich frickel auch nicht gerne ;)

crispyduck

Ja, stimmt, es gibt ja keinen parent dafür in der Api.
Finde das in todoist oder zumindest in der app auch schlecht gelöst. Tasks in einer Liste mit Intends am Smartphone zu verschieben erfordert richtig Geschick, das diese dann auch wieder den richtigen intend haben.

Aktuell ginge das wohl nur in dem man als parent immer den Task nimmt, bei welchem intend um 1 weniger ist und der in der order als nächstes davor liegt.
Das müsste dann natürlich beim Verschieben,... mit beachtet werden, und damit auch aufwändig.

Die V8 der Api dürfte das wohl leider auch noch nicht beachten.

Fürs Erste reicht das so ja mal vollkommen.

Lg,
crispyduck

marvin78

Touch Devices sind eben nicht wirklich userfreundlich. Das will man uns nur weiß machen. In vielen Bereichen ist das Gegenteil der Fall. Da kann die Software nur bedingt etwas tun. Haptik ist nicht ersetzbar.

Edit: die parent_id ist nur bedingt ein Problem.

crispyduck

Hallo,

ich bin gerade am Testen und es dürfte irgendwo ein Problem mit der richtigen Zuordnung der Listen geben.

Ich habe eine Parent Liste "Einkauf", darunter dann die automatisch erstellten Listen "Einkauf_DM", "Einkauf_Lidl".

Wenn man nun einen Task von "Einkauf_DM" in "Einkauf_Lidl" verschieben will, landet dieser im Parent "Einkauf".

Ebenso lassen sich die Tasks in "Einkauf_DM" und "Einkauf_Lidl" nicht sortieren, bzw. wird dabei "Einkauf" aktualisiert.

Erstellen und Löschen schaut momentan gut aus.

Ist es absicht das leere Listen einen Log2 Eintrag Error Message: no data generieren?

Lg,
crispyduck

marvin78

Das ist tatsächlich mehr oder weniger Absicht, wenn auch nicht ganz glücklich. Das Problem hier ist, dass das eigentlich kein Fehler ist (in der Regel zumindest), es aber so interpretiert wird, da das JSON anders aussieht. Da gehe ich nochmal ran, wenn ich Zeit habe.

Das mit dem Sortieren kann ich mir aktuell nicht erklären. Das muss ich später mal testen.

Edit: Ich sehe schon, der Unterstrich als Trenner ist das Problem. Da muss ich mir was überlegen. Ich komme aber nicht sehr schnell dazu. Wenn du andere Namen für die Devices verwendest (rename) sollte aber alles funktionieren.

crispyduck

Okay, danke. Könnte man hierfür eventuell einen höheren verbose level nehmen? Ich habe FHEM in der Regel auf verose 2 laufen, da ich hier bei gewissen Modulen gerade noch relevante Info bekomme, ohne mir den Log zu zu müllen.

Lg,
crispyduck

marvin78

Nein. Fehler gehören in kleiner als 3. Aber das hier muss von Fehlern getrennt werden.


Ich sehe schon, der Unterstrich als Trenner ist das Problem. Da muss ich mir was überlegen. Ich komme aber nicht sehr schnell dazu. Wenn du andere Namen für die Devices verwendest (rename) sollte aber alles funktionieren.

crispyduck

Ja, ich weiß, aber ist ja eigentlich kein Fehler.

Okay, bitte keinen Stress! Ich hab gesagt ich teste, also mach ich das jetzt auch ordentlich.  ;)
Der underscore war dann wohl auch bei meinem ersten Kontakt mit dem Modul mit ein Problem das nichts richtig ging. Hatte da auch alle Listen mit Einkauf_ benannt.

Edit: Im Projektnamen darf dann eigentlich auch kein underscore sein, und bei Projektnamen mit Leerzeichen wird alles nach dem Leerzeichen abgeschnitten.

Bei der Übersetzung könnte man vielleicht noch "No data for this list." --> "Liste ist leer." mit rein nehmen.

marvin78

Danke für's Testen. Genau wegen solcher "Folgefehler" (der hier ja eigentlich keiner ist) hatte ich das jetzt in einen devel-Zweig gepackt. Das mit dem Unterstrich ist natürlich aber ein Fehler, der mir nicht so schnell aufgefallen wäre, weil ich persönlich niemals auf die Idee kommen würde, Unterstriche im Devicenamen zu verwenden. Ich weiß aber auch, dass das ein häufig verwendetes Zeichen ist, sodass ich hier ein wenig umbauen muss.

Die Übersetzung ist kein Problem. Das baue ich ein.

crispyduck

Löschen funktioniert ansich, allerdings darf kein FHEM Restart zwischen löschen eines Projektes in todoist und dem ausführen fon cChildObjects stattfinden, da es sonst das Internal PROJECT_PARENT nicht mehr gibt.

marvin78

Das stimmt. Daran kann ich aktuell auch nicht viel machen. Wie oft startet man fhem neu?

crispyduck

Bei jedem Update und ich momentan ein paar mal die Woche, das aber auch nur weil ich an einem Modul rum bastel.
Aber ja, abhängig wie oft man Projekte löscht und wie oft man cChildProjects ausführt ist die chance vermutlich gering das dass passiert.

Man könnte doch ein device reading project parent id machen?

Lg
crispyduck

marvin78

Im devel Zweig ist eine neue Version. Hier habe ich einem HTML Element eine neue ID geben müssen. Zudem wird der Split mit einem etwas "intelligenteren" Regex gemacht. Bitte alles einmal ausprobieren. Ich bin nur zu 95% sicher, dass ich alles nachgezogen habe.

Die Parent ID wird nun als unsichtbares Reading zusätzlich abgespeichert. Für den Abgleich beim Löschen, wird dieses Reading verwendet. Aber auch jetzt muss die Liste zumindest einmal aktiv gewesen sein damit das Reading vorhanden ist.

Die Übersetzung ist drin.

crispyduck

Danke dir, werde ich heute oder morgen noch ausgibig testen.

Frage noch zum Touch am Tablet:

ZitatFür touch benötigt man das hier: http://touchpunch.furf.com/

Sollte es nicht reichen die Files die bei einer aktuellen FHEM Installation dabei sind in FHEMWEB einzubinden?

attr WEBtablet JavaScripts pgm2/jquery.min.js pgm2/jquery-ui.min.js

Irgendwie will das drag and drop bei mir am Tablet nicht.

Danke,
crispyduck

marvin78

Nein. Das reicht nicht. Touch funktioniert im style f18, da dort das genannte JS eingebunden ist. Ich habe aktuell keinen Plan, das ins Modul einzubauen.  Aber wenn man das vorgeschlagene js in Javascripts einbindet, sollte es funktionieren. Bei mir funktioniert es mit allen mobilen devices und style f18 (ich sehe aktuell nicht einen einzigen Grund ein anderes style zu verwenden, da dieses auf einfache Art und Weise anpassbar ist und ich habe auch, wenn ich ehrlich bin, kein Problem damit, alte oder schlechte Zöpfe auszuschließen).