====== Avril 2019.1 TODO ====== ===== Features ===== * **-** Move to a new server * **-** Buy the server * **-** Install Avril * **-** Use HTTPS * **-** Give the user possibility to change his own password * **-** добавить кнопку окончания таска на планшете без заполнения анкеты. * **+** Möglichkeit mehrere Aufträge auszuwählen um Operationen daran durchzuführen * Die wichtigste Operation: Löschen * Vorstellbare andere Operationen (evtl. in den späteren Avril-Versionen implementieren): * Auf später verschieben * Als Erledigt markieren * Priorität ändern * Bestimmte Felder auf den gleichen Wert setzen (wie z.B. Adresse) * **-** Auf MQTT umstellen * **+** Implementieren * **-** Installieren auf dem Produktiv-Server * **-** MQTT-Client als Dienst implementieren * Schema: im SyncAdapter (z.B. alle 5 Minuten) prüfen, ob der Dienst läuft. Wenn ja, nichts tun. Wenn nicht - Dienst starten und evtl. Tasks synchronisieren. "Eventuell" bedeutet: schauen, ob es vielleicht genug ist nur den Dienst zu starten ohne "händische" Synchronisation. Ich vermute wegen den Eigenschaften des MQTT-Protokolls wird es funktionieren. * D.h. das Testszenario sieht so aus: - den Dienst abschmieren lassen - danach auf dem Server einen neuen Auftrag erstellen - 5 Minuten später startet der SyncAdapter, der entdeckt, dass der Dienst nicht läuft und startet ihn - nach dem Starten soll der Dienst automatisch eine Nachricht über neue Aufträge bekommen und die Synchronisation starten * Trotzdem zur Sicherheit eine Synchronisation z.B. alle 15 Minuten einbauen. * **+** Avril in Container (mehrere?) verpacken * **?** Update des AngularJS Frameworks * **x** AngularJS Modul suchen, welches das Auswählen mehrerer Sätze implementiert * **-** Server periodisch restarten * **-** Überwachen, ob der Server den richtigen Inhalt liefert * **-** Keycloak auf die neueste stabile Version updaten ===== Bugs ===== * Zu große Updates verhindern: * Nur wirklich notwendige Aufträge holen (z.B. wenn mehr als X Aufträge zu holen sind -> Benutzer warnen, Wipe machen und nur die Aufträge aus der "Inbox" holen) * Die Exception abfangen (s. Mail von parnupatrull@gmail.com vom 01.03.2019): 03-01 16:51:16.312 E/Avril ( 9050): Avril log:20190301 16:51:16> updateJobsLocally exception:android.os.TransactionTooLargeException: data parcel size 3299168 bytes 03-01 16:51:16.313 E/Avril ( 9050): Avril log:20190301 16:51:16> updateJobsLocally exception:data parcel size 3299168 bytes 03-01 16:51:16.314 E/Avril ( 9050): Avril log:20190301 16:51:16> de.wialonconsulting.avril.sync.AvrilSyncException: android.os.TransactionTooLargeException: data parcel size 3299168 bytes 03-01 16:51:16.314 E/Avril ( 9050): at de.wialonconsulting.avril.sync.WorkOrderSyncAdapter.updateJobsLocally(WorkOrderSyncAdapter.java:804) 03-01 16:51:16.314 E/Avril ( 9050): at de.wialonconsulting.avril.sync.WorkOrderSyncAdapter.syncWorkOrders(WorkOrderSyncAdapter.java:343) 03-01 16:51:16.314 E/Avril ( 9050): at de.wialonconsulting.avril.sync.WorkOrderSyncAdapter.onPerformSync(WorkOrderSyncAdapter.java:227) 03-01 16:51:16.314 E/Avril ( 9050): at android.content.AbstractThreadedSyncAdapter$SyncThread.run(AbstractThreadedSyncAdapter.java:272) 03-01 16:51:16.314 E/Avril ( 9050): Caused by: android.os.TransactionTooLargeException: data parcel size 3299168 bytes 03-01 16:51:16.314 E/Avril ( 9050): at android.os.BinderProxy.transactNative(Native Method) 03-01 16:51:16.314 E/Avril ( 9050): at android.os.BinderProxy.transact(Binder.java:511) 03-01 16:51:16.314 E/Avril ( 9050): at android.content.ContentProviderProxy.applyBatch(ContentProviderNative.java:518) 03-01 16:51:16.314 E/Avril ( 9050): at android.content.ContentProviderClient.applyBatch(ContentProviderClient.java:448) 03-01 16:51:16.314 E/Avril ( 9050): at android.content.ContentResolver.applyBatch(ContentResolver.java:1319) 03-01 16:51:16.314 E/Avril ( 9050): at de.wialonconsulting.avril.sync.WorkOrderSyncAdapter.updateJobsLocally(WorkOrderSyncAdapter.java:799) 03-01 16:51:16.314 E/Avril ( 9050): ... 3 more * Die alten Aufträge physikalisch löschen * Эд: При нажатии на Resolv лочится телефон, после разлочивания сразу открывалась анкета. Возможно что проблема с закрыванием при нажатии на Resolv из за особенностей моего телефона. * При открытии анкеты - автоматически НЕ заполняется поле адрес. В анкете поле: Address / в приатаченном логе: "address":" Address" * При открытии анкеты автоматически НЕ заполняется поле - Время тревоги. В анкете поле: Häire registreeritud kell / в приатаченном логе: "field2":"HƤire kellaaeg: 17.05.2019_07:43:46" ===== DevOps ===== * **-** "One click" compile * **-** "One click" delivery