Friday, September 7, 2018¶
I did this using weasyprint
instead of
appypod
. Because appypod templates are
difficult to configure and maintain, and because weasyprint should be
satisfying.
The most visible problem was that amounts (DecimalField
)
didn’t align right in the pdf printout when using weasyprint. To fix
this, I replaced the cell attributes
(lino.core.renderer.HtmlRenderer.cellattrs
) by
class="text-cell"
or class="number-cell"
, and then define
these classes in currently three places: plain/lino.css
,
extjs/lino.css
and inline in
excerpts/base.weasy.html
. I don’t yet see how to unify them
(and whether that’s important).
lino.core.requests.BaseRequest.show()
on a HtmlRenderer did not
render the table header when header_level was specified. That
feature was being used only by TextRenderer so far. Now it is also
used by annual.
We have a new method lino.core.requests.BaseRequest.show_story()
which is used in the template for the report
(ledger/Report/default.weazy.html
).
The lino.core.renderer.HtmlRenderer.table2story()
method now
yields a sequence of elements instead of returning a single one.
Here are the old and the new reports on screen…
… and their printable pdf versions: old.pdf new.pdf
TODO: When a model defines a
lino.core.model.Model.get_choices_text()