Friday, July 10, 2015¶
It seems that lino.modlib.excerpts
needs another subtle
feature. Currently the system adminstrator can define several excerpt
types per model. In that case one of these is marked as primary and
possibly also certifying. Now in Chatelet they want that the main
template of an immersion contract
(lino_welfare.modlib.immersion.models.Contract
) can vary
depending on some value of some field of the excerpt’s owner (the
database object being printed). Currently there is one primary
excerpt type per database model (which defines one main template).
Possible solutions:
create a new database model, i.e. we would have two types of immersion contracts.
Add a kind of locally configurable rule, e.g. a callable property of the
lino_welfare.modlib.integ
plugin:def get_contract_template(self, obj, ar): """Called when `template` field of excerpt type is empty.""" return "Default.odt"
which in Chatelet would become:
def get_contract_template(self, obj, ar): assert isinstance(obj, rt.models.immersion.Contract) if obj.company is None: return "StageInterne.odt" return "StageForem.odt"