20130716 (Tuesday, 16 July 2013)¶
Expected a string, got 30L¶
When trying the Create
Invoice
action to faggio.sales.InvoiceablePartners
on
faggio-demo
I got the above traceback.
This was because Lino’s
QuantityField.to_python
implementation wasn’t yet robust enough.
Here some test cases:
>>> from decimal import Decimal
>>> from lino import startup
>>> startup('lino_book.projects.min1.settings')
>>> from lino.api import dd
>>> f = dd.QuantityField()
>>> f.to_python(None)
>>> f.to_python(30)
Decimal('30')
>>> # f.to_python(30L) no longer valid in python 3
Decimal('30')
>>> print(f.to_python(''))
None
>>> f.to_python(Decimal(0))
Decimal('0')
Events, Guests and Clients¶
I found a way for making workflows configurable. See
I replaced the fill_event_guests_from_team_members function
(a receiver for the post_save signal on Event) by
two methods
lino_xl.lib.cal.Event.add_guests()
and
lino_xl.lib.cal.Event.suggest_guests()
.
Which shows that
I prefer subclassing over signals
for making these things customizable.
Then I applied the new ideas for inheriting apps to lino_welfare:
New modules
lino_welfare.modlib.cal
,
lino_welfare.modlib.contacts
and
lino_welfare.modlib.ui
Aha! And here is also another missing piece:
lino.ad.app.extends_models
instead of having
to specify them in
lino.ui.Site.override_modlib_models
.
Checkin.
TODO: some tests are failing because lino.ui is no longer automatically being yeld by get_installed_plugins.