20121018¶
Hilfetexte¶
Momentan ist es nicht möglich, die Tooltips von Parameterfeldern zu bearbeiten.
Die Hilfetexte (Tooltips) müssten insgesamt noch etwas verbessert werden:
HelpText.label und HelpText.text sollten Babelfelder werden
- HelpText.type und HelpTextType:
dbfield action param_field
HelpText.actor statt HelpText.content_type
Das ist aber eigentlich nicht so dringend. Als pragmatische Lösung habe ich begonnen, die deutschen Hilfetexte direkt im Sourcecode einzugeben.
renamed is_deprecated to is_obsolete
allow_cascaded_delete¶
allow_cascaded_delete <lino.core.Model.allow_cascaded_delete
is no longer a boolean but a list.
Bisher konnte man nur sagen Ja oder Nein, aber das war zu einfach gedacht. Zum Beispiel Akteure eines Budgets: die sollen automatisch gelöscht werden, wenn das Budget gelöscht wird. Aber nicht, wenn der Partner gelöscht wird. Aber bisher wurden sie dadurch auch automatisch wenn der Partner gelöscht wurde. Einen Partner zu löschen, der als Akteur in einem Budget verwendet wird, das darf Lino nicht erlauben.
Begleitungen hatten
allow_cascaded_delete <lino.core.Model.allow_cascaded_delete
noch nicht gesetzt. Lino meldete fälschlicherweise Dinge wie
“Kann Kient X nicht löschen, weil 1 Begleitungen darauf verweisen.”
Miscellaneous¶
Discovered and fixed a little bug: editing was not disabled when
lino.core.actors.Actor.editable
was set to True.Außerdem ein Bug, der wahrscheinlich schon länger da war: Wenn man nach [Neu] in contacts/Partners das Insert-Fenster bestätigte, kam “contacts_partner.created may not be NULL”.
changes and mti¶
Mir ist aufgefallen, dass Änderungen noch nicht funktionierten, wenn man sie auf mehreren Ebenen einer MTI-Familie haben will. Also z.B. nicht nur für Klienten, sondern für alle Partner. Und wir wollen das im Lino für ÖSHZ, wo watch_tim auch immer wieder mal Partnermetamorphosen durchführt (Client becomes Partner, Person becomes Company etc.).
Resultat: einige intere Änderungen, und die Konfiguration sieht jetzt so aus:
def pre_site_startup(self):
self.modules.contacts.Partner.watch_changes()
self.modules.contacts.Person.watch_changes(master_key='partner_ptr')
self.modules.contacts.Company.watch_changes(master_key='partner_ptr')
self.modules.pcsw.Client.watch_changes(master_key='partner_ptr')
self.modules.pcsw.Coaching.watch_changes(master_key='client__partner_ptr')
self.modules.pcsw.ClientContact.watch_changes(master_key='client__partner_ptr')
self.modules.jobs.Candidature.watch_changes(master_key='person__partner_ptr')
Die Tabelle ChangesByMaster steht jetzt nicht mehr im Reiter “Chronik” eines Klienten, sondern in einen eigenen Reiter “Änderungen” eines Partners. Das ist logisch: die Änderungen eines Klienten machen nur Sinn, wenn man auch eventuelle Metamorphosen des Partners mit betrachtet.
Das neue System funktioniert auch schon fast.
TODO:
mti.EnableChild loggt noch nichts.
weiter mit watch_tim, der ja ebenfalls jetzt über Changes loggen soll.