Configuring print templates¶
This document explains everything you need to know about how to configure print templates in Lino Welfare.
Side note: Code snippets (lines starting with >>>
) in this document get
tested as part of our development workflow. The following
initialization snippet tells you which demo project is being used in
this document.
>>> from lino import startup
>>> startup('lino_welfare.projects.gerd.settings.doctests')
>>> from lino.api.doctest import *
Which database objects are printable?¶
While most database models in Lino Welfare are being printed using excerpts (see Excerpt types below), some models still use the more primitive direct printing method (see Printing):
notes.Note
,cal.Event
andoutbox.Mail
.and of course
excerpts.Excerpt
itself
Here is a list of these models:
>>> from lino.modlib.printing.mixins import Printable
>>> for m in rt.models_by_base(Printable):
... print (m)
...
<class 'lino_xl.lib.accounting.models.Voucher'>
<class 'lino_welfare.modlib.aids.models.Granting'>
<class 'lino_welfare.modlib.aids.models.IncomeConfirmation'>
<class 'lino_welfare.modlib.aids.models.RefundConfirmation'>
<class 'lino_welfare.modlib.aids.models.SimpleConfirmation'>
<class 'lino_welfare.modlib.art61.models.Activation'>
<class 'lino_welfare.modlib.art61.models.Contract'>
<class 'lino_welfare.modlib.cal.models.Event'>
<class 'lino_welfare.modlib.cal.models.Guest'>
<class 'lino_xl.lib.cal.models.RecurrentEvent'>
<class 'lino_xl.lib.cal.models.Subscription'>
<class 'lino_welfare.modlib.cal.models.Task'>
<class 'lino_welfare.modlib.cbss.models.IdentifyPersonRequest'>
<class 'lino_welfare.modlib.cbss.models.ManageAccessRequest'>
<class 'lino_welfare.modlib.cbss.models.RetrieveTIGroupsRequest'>
<class 'lino.modlib.changes.models.Change'>
<class 'lino.modlib.checkdata.models.Message'>
<class 'lino_xl.lib.coachings.models.Coaching'>
<class 'lino_welfare.modlib.contacts.models.Company'>
<class 'lino_welfare.modlib.contacts.models.Partner'>
<class 'lino_welfare.modlib.contacts.models.Person'>
<class 'lino.modlib.dashboard.models.Widget'>
<class 'lino_welfare.modlib.debts.models.Budget'>
<class 'lino_welfare.modlib.esf.models.ClientSummary'>
<class 'lino_xl.lib.excerpts.models.Excerpt'>
<class 'lino_xl.lib.finan.models.BankStatement'>
<class 'lino_xl.lib.finan.models.JournalEntry'>
<class 'lino_xl.lib.finan.models.PaymentOrder'>
<class 'lino_welfare.modlib.households.models.Household'>
<class 'lino_welfare.modlib.isip.models.Contract'>
<class 'lino_welfare.modlib.jobs.models.Contract'>
<class 'lino_welfare.modlib.jobs.models.JobProvider'>
<class 'lino_welfare.modlib.newcomers.models.Competence'>
<class 'lino_welfare.modlib.notes.models.Note'>
<class 'lino.modlib.notify.models.Message'>
<class 'lino_xl.lib.outbox.models.Mail'>
<class 'lino_weleup.lib.pcsw.models.Client'>
<class 'lino.modlib.tinymce.models.TextFieldTemplate'>
<class 'lino_xl.lib.uploads.models.Upload'>
<class 'lino.modlib.users.models.Authority'>
<class 'lino_welfare.modlib.users.models.User'>
<class 'lino_xl.lib.vatless.models.AccountInvoice'>
<class 'lino_welfare.modlib.xcourses.models.CourseProvider'>
Consequently, printing an object of one of above models will not appear in the history of excerpts.
We did not yet test what happens if you define an excerpt type for one of the above models.
For configuring the printing of these models, see printing : Basic printing functionality.
Main templates¶
All main templates of a Lino Welfare default configuration are
LibreOffice .odt files because they use some subclass of
lino.modlib.printing.mixins.printable.AppyBuildMethod
as
build_method
.
See Appy POD template syntax for documentation about the syntax and context variables available for designing the template itself.
Excerpt types¶
See Database excerpts for a general introduction to excerpt-based printing.
This is the list of excerpt types:
>>> translation.activate("en")
>>> rt.show(excerpts.ExcerptTypes,
... column_names="content_type primary certifying template body_template")
...
======================== ========= ============ ============================= ================================
Model Primary Certifying Template Body template
------------------------ --------- ------------ ----------------------------- --------------------------------
Income confirmation Yes Yes Default.odt certificate.body.html
Refund confirmation Yes Yes Default.odt certificate.body.html
Simple confirmation Yes Yes Default.odt certificate.body.html
Art61 job supplyment Yes Yes contract.body.html
Presence Yes No Default.odt presence_certificate.body.html
IdentifyPerson Request Yes Yes
ManageAccess Request Yes Yes
Tx25 Request Yes Yes
Partner No No payment_reminder.weasy.html
Person No No TermsConditions.odt
Budget Yes Yes
ESF Summary Yes Yes
Bank Statement Yes Yes
Journal Entry Yes Yes
Payment Order Yes Yes
ISIP Yes Yes
Art60§7 job supplyment Yes Yes
Client Yes No file_sheet.odt
Client No No Default.odt pac.body.html
Client No No cv.odt
Client No No eid-content.odt
======================== ========= ============ ============================= ================================
Aid confirmations¶
When printing aid confirmations (models inheriting from
aids.Confirmation
),
Lino adds another rule:
The body template to be used when printing an aid confirmation is usually not configured on the excerpt type but on the aid type.
AidType.body_template
overridesExcerptType.body_template
.