To-Do-Liste

Kurzfristig

  • Bei prev/next im Detail werden die Slavegrids nicht aktualisiert.
  • disabled_fields lassen sich in der Grid bearbeiten.
  • Der Tool-Button zum Speichern der Konfiguration gehört nicht mehr in den Rahmen des “Fensters”, sondern in die tbar des GridPanels. Das Ganze heißt auch nicht mehr “window config”, sondern “grid config”. Neben Kolonnenbreiten müssen darin auch Kolonnenreihenfolge, Kolonnenfilter und Daten-Sortierfolge gespeichert werden. Außerdem sollte man benutzerdefinierte grid configs erstellen und auswählen können.
  • Sprachabhängige Auswahl der Notizvorlage. Wenn Sprache der Notiz nicht die Hauptsprache des Lino-Sites ist, dann wird der Name des zu verwendenden Templates aus dem Standardnamen par convention abgeleitet, indem das Sprachkürzel als Suffix vor der Erweiterung eingefügt wird. Zum Beispiel für eine Telefonnotiz in fr auf einer Site mit Hauptsprache de (und Telefonnotizen haben NoteType.template den Wert phone.odt ) sucht Lino zuerst nach einer Datei phone_fr.odt. Wenn es so eine Datei nicht gibt, nimmt er die phone.odt. (Korrektur: nicht als Suffix, sondern in einem separaten Verzeichnis. Sonst muss ich ja beim Füllen der Auswahlliste die Fremdsprachen rausfiltern).

Fehlende Grundfunktionen

  • Kolonnenfilter. Beispiel: 1 2 3
  • In lino.modlib.countries.models.Countries kann man nicht einfügen. Dieser Report ist ein Sonderfall, weil Country keinen automatischen primary key hat, sondern das Feld isocode dort der pk ist. Das darf natürlich im InsertWrapper und für die ExtraRow (aber nicht für die anderen Zeilen) nicht schreibgeschützt sein. Issue 122.

Kleinkram

  • Das Passfoto in dsbe.PersonDetail ist noch nicht korrekt ausgeschnitten.
  • Wenn man direkt auf einen permalink einsteigt und dieses Fenster dann schließt, dann sieht man nicht den IndexWrapper. Wäre logisch, wenn der auch bei Permalink als erstes erstellt würde.
  • Lustiger und ungewollter Effekt beim Öffnen eines neuen Fensters: das alte scheint vom neuen nach unten verschoben zu werden.
  • Abfragen mit komplexen Bedingungen zur Suche nach Personen
  • Die Zeilenhöhe einer Grid muss einen sinnvollen Maximalwert kriegen. In Explorer / Notes hat man momentan den Eindruck, dass es nur eine Zeile gibt; in Wirklichkeit ist der Memo-Text der ersten Zeile so lang, dass die Zeilenhöhe größer als das Fenster ist.
  • Hinter das QuickFilter-Feld muss ein Button, um den Filter zu aktivieren. Dass man einfach nur ENTER drücken muss ist nicht intuitiv.
  • Links ordentlich anzeigen und bequem erfassen können.
  • Kolonnen-Reihenfolge in window_config speichern.
  • Benutzbarkeit per Tastatur verbessern (issue 11, issue 64)
  • Sehen können, nach welcher Kolonne eine Grid sortiert ist.
  • Nach Duplikaten suchen vor Erstellen einer neuen Person (issue 85)
  • URLs per drag & drop registrieren können
  • Ob ein Detail-Fenster Sklave ist oder nicht, könnte ich den Benutzer selber entscheiden lassen.
  • lino.test_apps.journals funktioniert nicht bzw. wird nicht ausgeführt. Sieht aus als Django-Ticket 11696 doch noch nicht behoben ist. Aber mein Patch 20091107.diff funktioniert nicht mehr und ich bin auch noch nicht sicher. Muss vielleicht mal einen Testcase schreiben, um das Problem zu identifizieren...

Langfristig

  • Layout von Detail-Fenstern : in Lino sind die “Zeilen” momentan ja immer im “Blocksatz” (also links- und rechtsbündig). Das ist unkonventionell: alle RIA die ich kenne, machen ihre Formulare nur linksbündig.

  • HtmlEditor oder TextArea? Der HtmlEditor verursacht deutliche Performanceeinbußen beim Bildschirmaufbau von Detail-Fenstern. Die Wahl sollte konfigurierbar sein. Markup auch.

  • “About”-Fenster mit thanks_to() muss irgendwo sichtbar gemacht werden.

  • In Insert-Fenstern machen Grid-Elemente keinen Sinn. Die können keine Daten enthalten, weil der Record noch keinen primary key hat.

  • Das Detail-Fenster sollte nun auch einen permalink_name bekommen. Allerdings muss ich noch überlegen, ob und wie er sich dann merken soll, auf welchem Record er steht.

  • lino.test_apps.properties funktioniert nicht, scheinbar ist actors.discover() nicht aufgerufen worden.

  • Das Detail-Fenster sollte vielleicht par défaut nicht im Editier-Modus sein, sondern unten ein Button “Edit”, und erst wenn man darauf klickt, werden alle Felder editierbar (und der Record in der Datenbank blockiert), und unten stehen dann zwei Buttons “Save” und “Cancel”. Wobei darauf zu achten ist was passiert, wenn man während des Bearbeitens in der Grid auf eine andere Zeile klickt. Dann muss er am besten das Detail-Fenster speichern, und falls dort ungültige Daten stehen, in der Grid den Zeilenwechsel verweigern.

  • Report.date_format muss in der Syntax des UI (d.h. ExtJS) angegeben werden.

  • Prüfen, ob Dokumentvorlagen im XSL-FO-Format besser wären. Apache FOP als Formatierer. Warum OpenOffice.org nicht schon lange XSL-FO kann, ist mir ein Rätsel. AbiWord dagegen soll es können (laut 1 und 2).

  • Inwiefern überschneiden sich lino.modlib.system.models.SiteConfig und django.contrib.sites?

  • Actions: - Aktionen brauchen nicht unbedingt in lino.reports.Report.do_setup() instanziert zu werden. Von den Standard-Aktionen GridEdit, DeleteSelected usw. reicht eine einzige Instanz. Action.actor käme dann weg, und Action.__str__() könnte dann in dieser Form nicht mehr benutzt werden. - Action.name ist ja im Grunde ein kurzer Name, der pro Actor identifizierend ist. Der Vorteil ist, dass man sich beim Entwerfen von Reports keinen solchen Namen auszudenken braucht, also dass der Programmierer einer Aktion auch deren Namen festlegt. Wenn zwei verschiedene Aktionen den gleichen Namen haben, wird nur die letzte beibehalten und eine Warnung in der lino.log gemacht. - Übersicht der Aktionen, die momentan benutzt werden:

    Klasse

    Name

     

    actions.Action

       

    mixins.PrintAction

       

    mixins.DocumentAction

    print

    Dokument für diesen Record anzeigen (vorher falls nötig generieren)

    mixins.ImageAction

    image

    Bild für diesen Record anzeigen

    reports.ListAction

       

    GridEdit

    grid

    Report im Listeneditor zum Bearbeiten anzeigen

    ShowDetailAction

    detail

    Diesen Record in Detail-Fenster zum Bearbeiten anzeigen

    InsertRow

    insert

    Insert-Fenster anzeigen (mit leeren Feldern bzw. Standardwerten, und mit OK-Button)

    SubmitDetail

    SubmitDetail

    OK-Button in detail

    SubmitInsert

    SubmitInsert

    OK-Button in insert