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).
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
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"