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()