20120123

Fehlerjagd vor dem Release.

  • Der [Upload]-Button von quick_upload_buttons enthielt fehlerhaften Code:

    <a href='javascript:Lino.uploads.UploadsByOwner.insert({ "base_params": { "mt": 18, "type": 2, "mk": 200007 } },{ "data_record": { "phantom": true, "data": { "valid_until": null, "description": "", "created": null, "userHidden": 200067, "modified": null, "typeHidden": 2, "user": "lsaffre", "file": "", "owner": "<a href=\"javascript:Lino.dsbe.AllPersons.detail(undefined,{},{record_id:200007})\">MUSTERMANN Max (200007)</a>", "type": "Aufenthaltserlaubnis", "id": null }, "title": "Uploads von MUSTERMANN Max (200007)" } })'>Upload</a>
    

    Der erste Parameter, caller fehlte. Außerdem habe ich Ticket docs/tickets/56 eröffnet.

  • Beim Ausdruck der contacts/Person/eid-content.odt (eID-Inhalt) kamen zwei Fehler:

    • “Error while evaluating expression “self.card_type_text()”. card_type_text() takes exactly 2 arguments (1 given)” –> self.card_type_text() wurde ersetzt durch self.card_type.
    • Error while evaluating expression “self.sex”. ‘Person’ object has no attribute ‘sex’

    Person.card_type ist jetzt auch endlich eine ChoiceList namens lino.apps.dsbe.models.BeIdCardTypes. Folglich müssen diese Texte nun auch via poEdit übersetzt werden.

  • Der Trick mit dem base_queryset, das in der Tabelle gespeichert wird, scheint nun ein Caching-Problem hervorzurufen. War einfach reproduzierbar, indem ich in einer Listenansicht einen Record erstellte. Anschließend wurde dieser Record erst nach einem Server-Neustart sichtbar. Seltsam, dass das nicht schon immer so war. Ich deaktiviere das ganze System, zumal ich nie nachgeprüft habe, ob das überhaupt was bringt. Kann auch sein, dass es bisher nur deshalb keinen Schaden anrichtete, weil es gar nicht funktionierte…

  • CalendarPanel machte “Uncaught TypeError: Cannot call method ‘getTime’ of null”. restful_view schickt jetzt für ein GET der Liste niemals einen Phantom-Record mit.

  • New utility class lino.utils.Cycler used in lino.apps.dsbe.fixtures.demo.

  • lino.tools.resolve_field() now returns an lino.tools.UnresolvedField

  • Die Aktion Eintragen in der Tabelle der Kandidaten pro Kurs machte kein Refresh des Fensters. Das waren zwei Stunden Arbeit mit containing_window und containing_panel.

  • Einige Übersetzungen der labels von .dtl-Dateien waren verschwunden. Kann sein, dass ich die .dtl.py-Dateien irgendwann mal gelöscht hatte und make appdocs vor dem letzten make mm nicht habe laufen lassen.

  • Und make appdocs funktionierte übrigens nicht:

    File "t:\hgwork\lino\lino\apps\dsbe\models.py", line 1107, in setup_columns
      for pg in PersonGroup.objects.filter(ref_name__isnull=False).order_by('ref_name'):
    ...
    django.db.utils.DatabaseError: no such table: dsbe_persongroup
    
  • Das Detail-Fenster von User holte sich jetzt auch die .dtl-Dateien von Person. Das kam, weil lino.modlib.contacts.models.PersonMixin nur Person hieß.

Und dann habe ich in letzter Minute noch mögliche Performance-Probleme festgestellt. Schade! Aber es ist jetzt 23.30 Uhr, ich habe 8 Stunden intensive Fehlerjagd hinter mir… jetzt gehe ich erstmal schlafen, und morgen schaue ich mir die Sachen genauer an.

TODO: Lino.FormPanel sollte sein loadMask aktivieren (Meldung “Bitte warten”), wenn er speichert. Das ist nämlich vor allem bei aktiven Feldern (z.B. Eingabe einer Art60-7-Konvention) lästig.