20110723 ======== (a) Endspurt vor dem Release ---------------------------- Die Testsuite habe ich aktualisiert, also ``python manage.py test`` meldet keine Fehler mehr. Beim Arbeiten mit :lino:`/dsbe/testlauf` einen weiteren Bug in :term:`appy.pod` entdeckt und `gemeldet `_. (b) Übersetzungen ----------------- Die deutschen Sprachdateien wurden aktualisiert. (c) Proberelease auf Jana ------------------------- Also erstmal ein neues Dump vom Kunden nehmen. Da muss jetzt manuell nur noch folgendes geändert werden: - In `create_contacts_companytype` den Parameter `contract_type_id` ignorieren:: def create_contacts_companytype(id, name, abbr, name_fr, name_en, abbr_fr, abbr_en, contract_type_id): # return CompanyType(id=id,name=name,abbr=abbr,name_fr=name_fr,name_en=name_en,abbr_fr=abbr_fr,abbr_en=abbr_en,contract_type_id=contract_type_id) return CompanyType(id=id,name=name,abbr=abbr,name_fr=name_fr,name_en=name_en,abbr_fr=abbr_fr,abbr_en=abbr_en) - At the end, uncomment the automagic migration:: from lino.apps.dsbe.migrate import install install(globals()) (d) Release beim Kunden ----------------------- Tests auf Jana sind positiv. Heute ist Samstag, also beim Kunden arbeitet niemand. Los gehts. Vorher noch notieren, welche Version momentan läuft:: $ cd /var/snapshots/lino $ hg sum parent: 1668:0617446de660 tip 20110623 branch: default commit: (clean) update: (current) Aber ein Sprung zurück ist nicht nötig: scheint alles zu klappen. Also hiermit erkläre ich Lino :lino:`/releases/2011/0723` als losgelassen (released). Kann aber sein, dass morgen noch Nachträge kommen. (e) Aktive Felder ----------------- Das Detail-Fensters eines Vertrags (Zusammenarbeit der drei Felder :guilabel:`Stelle`, :guilabel:`Stellenanbieter` und :guilabel:`Vertreten durch`) funktionierte noch nicht: da waren erstens ein paar kleine Bugs, und zweitens hätte ich Mühe gehabt, den Endbenutzern zu erklären, dass Lino leider noch keine "active fields" kennt. Da war es weniger Arbeit, dieses lang ersehnte Feature zu implementieren: #. Server-side field-level validation. Beim Start sucht Lino in den Modellen nach Methoden `on_FIELD_change`, deren Parameter ähnlich wie choosers analysiert werden. "Active fields" : wenn die sich ändern, macht der Client ein GET für diesen Record, wobei er aber auch alle anderen geänderten und noch nicht gespeicherten Felder mit übergibt. Der Server macht darauf dann full_clean aber speichert nicht ab, sondern gibt das nur zurück. So kann ich serverseitige field-level validation machen. Auch für `disabled_fields` wäre das wichtig: je nach Vertragsart soll Feld Contract.refund_rate disabled sein (und das soll sich nicht erst nach dem submit ändern). GET /api/contacts/Persons/17?fmt=json&query=foo Die Implementierung war allerdings noch etwas einfacher als ich mir das damals gedacht hatte: statt eines neuen "non-storing PUT" macht er einfach ein submit des kompletten Formulars. Also man kann in einem Report nun eine Liste von "aktiven" Feldern :attr:`lino.reports.Report.active_fields` angeben. Ein aktives Feld bewirkt ein save (d.h. submit und refresh) des Eingabefensters, wenn man es bearbeitet hat und zum nächsten Feld springt. Damit individuelles Spielen mit den disabled_fields effizienter ist, enthält :attr:`lino.reports.Report.fields_list` jetzt keine Feld-Instanzen mehr, sondern nur noch die Feldnamen. (:func:`lino.reports.fields_list` und :func:`lino.ui.extjs3.ext_store.DisabledFieldsStoreField`) Das Feld "Stellenanbieter" eines Vertrags ist bis auf weiteres noch da, obschon es vielleicht raus kann, weil die Drittorganisation in der Stelle definiert wird. Die Frage ist, ob es Stellen gibt, bei denen der Stellenanbieter von Vertrag zu Vertrag ändern kann. Eine andere Frage ist, ob interne Verträge ihr Feld Stellenanbieter *leer* haben sollen, oder ob dort das ausstellende ÖSHZ stehen soll. Logisch wäre eigentlich, dass das Feld leer ist. Lino hat das bisher jedoch nicht nachgeprüft und in den bestehenden Daten habe die internen Verträge dieses Feld dann auch prompt mal leer und mal das ÖSHZ drinstehen. (f) Slave-Grids und HtmlFields im Insert-Fenster ------------------------------------------------ Das folgende Ticket ging auch recht schnell und kommt also noch in die neue Version mit rein: #. Slave-Grids und HtmlFields im Insert-Fenster sind jetzt zwar disabled, aber sie machen trotzdem noch ein load "ihrer" Daten. Das ist manchmal irritierend.