Tuesday, March 10, 2015¶
Upgrade in Châtelet¶
The show_in_bbar
attribute of CheckinVisitor
, ReceiveVisitor
and
CheckoutVisitor
were not yet correct.
I must define them individually on each action, not on
NotifyingAction
.
Checkin and pull in Châtelet.
About migrations¶
Mahmoud and I are working together on #38. The “startup signal, apps and plugins” topic seems more or less done, but the other big topic are migrations.
Until now all our customers are perfectly happy without migrations because Lino has Python fixtures.
But as it seems, in Django 1.9 the “legacy method of syncing apps without migrations will be removed, and migrations will become compulsory for all apps.”, so Django will force us some day to live with them.
The challenge with migrations are dependencies between plugins. Before reading on, make sure that you have read Django’s section about Dependencies. But this is just the beginning. Lino adds quite some cool stuff for doing plugin inheritance. And of course we unfortunately can’t expect the Django developers to care about this cool stuff.
What is that cool stuff and what problems will it cause for migrations?
Cannot resolve keyword ‘dupable_words’ into field¶
The new version in CPAS de Châtelet had a bug which caused an Internal Server Error when trying to (manually) create a new partner.
This came only when lino.modlib.dupable_partners
is hidden.
Wrote a test case test_dupable_hidden in
lino_welfare.projects.chatelet.tests
which would have detected
this bug.
Checkin and pull in Châtelet.
Un(e) Bénéficiaire avec ce NISS existe déjà¶
They got the following error message in Châtelet:
ValidationError
{'national_id': [u'Un(e) B\xe9n\xe9ficiaire avec ce NISS existe d\xe9j\xe0.']}
It occurred while reading an eid card.
This message is generated by Django when a unique constraint of a field is violated.
Added some conditions in
lino_welfare.projects.std.tests.test_beid
in order to try
to reproduce it.
Added some optimizations in the StrangeClients
table:
new options
invalid_coaching
andsimilar_persons
because we want to be able to ignore these cases.overlapping_contracts
now defaults to False because the default values should be least power consuling.The default value for
client_state
is now empty because we want to see warnings about a wrongly formatted national_id for non-coached clients.