Welcome | Get started | Dive | Contribute | Topics | Reference | Changes | More
Stories¶
One part of Lino is a system for programming complex printable reports.
One part of that system are “stories”.
A story is a sequence of “chunks” of a bigger document. These chunks
can be either an HTML element or a rt.TableRequest
instance.
TODO: write more documentation.
Example:
class Foo(dd.Model):
...
class FooDetail(dd.FormLayout)
preview_tab = dd.Panel("""
second_box
summary_box
""", label=_("Preview"))
class Foos(dd.Table):
@dd.virtualfield(dd.HtmlBox(_("Summary")))
def summary_box(self, ar):
return E.div(*ar.story2html(self.summary_story(ar)))
@dd.virtualfield(dd.HtmlBox(_("Second")))
def second_box(self, ar):
return E.div(*ar.story2html(self.second_story(ar)))
def summary_story(self, ar):
def render(t):
sar = ar.spawn(t, master_instance=self)
if sar.get_total_count():
yield E.h2(unicode(sar.get_title()))
yield sar
yield render(ResultByBudget)
yield render(DebtsByBudget)
yield render(BailiffDebtsByBudget)
yield render(DistByBudget)