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.min1
run 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_clean
method oflino.modlib.contacts.models.Person
now 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.EnableChild
now callslino.utils.mti.insert_child()
with the new keyword parameter full_clean. Which has the effect of callingfull_clean
on 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.