Tuesday, January 27, 2015¶
Documentation is getting better¶
More tidy-up routine work in the documentation.
There was yet another problem (“choicelists.get_by_name expected
string”) due to a bug in
lino.modlib.vat.Plugin.default_vat_class.
I finally created the plugin lino.modlib.office.
And yet another tutorial: https://www.lino-framework.org/tutorials/addrloc/index.html.
And I moved the country_code setting from
lino.modlib.vat to lino.modlib.countries.
Convert Partner to Person¶
Worked for #80 (Convert Partner to Person).
How to reproduce it:
go to the directory of
lino.projects.min1run initdb_demo and runserver
Create a Partner. Lino opens the detail window on that partner.
Check the “is Person” checkbox and click Save button.
Click the “(show)” link in order to see the person.
Fields first_name and last_name are empty.
The solution was rather complex and tricky:
The
full_cleanmethod oflino.modlib.contacts.models.Personnow reacts if first_name and last_name are both empty and name is not empty. In that case it useslino.modlib.contacts.utils.name2kw()to fill both fields.lino.utils.mti.EnableChildnow callslino.utils.mti.insert_child()with the new keyword parameter full_clean. Which has the effect of callingfull_cleanon the new child.New function
lino.core.utils.error2str()with the side effect that messages caused by ValidationError are now reported in a more user-friendly way.