Changeset 58:1180376ab3cf
- Timestamp:
- 08/20/08 16:41:47 (11 months ago)
- Author:
- Nicolas ?vrard <nicoe@…>
- Branch:
- default
- Message:
-
Added feature to use image report in odf report
Made the demo_*py files importable
- Files:
-
Legend:
- Unmodified
- Added
- Removed
-
|
r57
|
r58
|
|
| 7 | 7 | repos.add_report(Invoice, 'image/png', 'line_chart', report_name='line') |
| 8 | 8 | |
| 9 | | #Image |
| 10 | | pie_report, _ = repos.reports[Invoice]['pie'] |
| 11 | | file('pie.png', 'w').write(pie_report(inv).render().getvalue()) |
| 12 | | hbar_report, _ = repos.reports[Invoice]['hbar'] |
| 13 | | file('hbar.png', 'w').write(hbar_report(inv).render().getvalue()) |
| 14 | | vbar_report, _ = repos.reports[Invoice]['vbar'] |
| 15 | | file('vbar.png', 'w').write(vbar_report(inv).render().getvalue()) |
| 16 | | line_report, _ = repos.reports[Invoice]['line'] |
| 17 | | file('line.png', 'w').write(line_report(inv).render().getvalue()) |
| | 9 | if __name__ == '__main__': |
| | 10 | pie_report, _ = repos.reports[Invoice]['pie'] |
| | 11 | file('pie.png', 'w').write(pie_report(inv).render().getvalue()) |
| | 12 | hbar_report, _ = repos.reports[Invoice]['hbar'] |
| | 13 | file('hbar.png', 'w').write(hbar_report(inv).render().getvalue()) |
| | 14 | vbar_report, _ = repos.reports[Invoice]['vbar'] |
| | 15 | file('vbar.png', 'w').write(vbar_report(inv).render().getvalue()) |
| | 16 | line_report, _ = repos.reports[Invoice]['line'] |
| | 17 | file('line.png', 'w').write(line_report(inv).render().getvalue()) |
-
|
r57
|
r58
|
|
| 5 | 5 | report_name='ConTeXt') |
| 6 | 6 | #PDF |
| 7 | | pdf_report, _ = repos.reports[Invoice]['ConTeXt'] |
| 8 | | file('bonham_basic.pdf', 'w').write(pdf_report(inv).render().getvalue()) |
| | 7 | if __name__ == '__main__': |
| | 8 | pdf_report, _ = repos.reports[Invoice]['ConTeXt'] |
| | 9 | file('bonham_basic.pdf', 'w').write(pdf_report(inv).render().getvalue()) |
| 9 | 10 | |
-
|
r57
|
r58
|
|
| 1 | 1 | from cStringIO import StringIO |
| 2 | 2 | from common import Invoice, repos, inv |
| | 3 | import demo_chart |
| 3 | 4 | |
| 4 | 5 | repos.add_report(Invoice, 'application/vnd.oasis.opendocument.text', |
| … |
… |
|
| 11 | 12 | 'presentation.odp', report_name='presentation') |
| 12 | 13 | |
| 13 | | # ODT |
| 14 | | basic_report, _ = repos.reports[Invoice]['basic'] |
| 15 | | file('bonham_basic.odt', 'w').write(basic_report(inv).render().getvalue()) |
| 16 | | report, _ = repos.reports[Invoice]['complicated'] |
| 17 | | file('bonham_complicated.odt', 'w').write(report(inv).render().getvalue()) |
| | 14 | if __name__ == '__main__': |
| | 15 | # Add a chart to the invoice |
| | 16 | inv['chart'] = repos.reports[Invoice]['pie'] |
| 18 | 17 | |
| 19 | | # ODS |
| 20 | | ods_report, _ = repos.reports[Invoice]['pivot'] |
| 21 | | file('bonham_pivot.ods', 'w').write(ods_report(inv).render().getvalue()) |
| | 18 | # ODT |
| | 19 | basic_report, _ = repos.reports[Invoice]['basic'] |
| | 20 | file('bonham_basic.odt', 'w').write(basic_report(inv).render().getvalue()) |
| | 21 | report, _ = repos.reports[Invoice]['complicated'] |
| | 22 | file('bonham_complicated.odt', 'w').write(report(inv).render().getvalue()) |
| 22 | 23 | |
| 23 | | # ODP |
| 24 | | odp_report, _ = repos.reports[Invoice]['presentation'] |
| 25 | | file('bonham_presentation.odp', 'w').write(odp_report(inv).render().getvalue()) |
| | 24 | # ODS |
| | 25 | ods_report, _ = repos.reports[Invoice]['pivot'] |
| | 26 | file('bonham_pivot.ods', 'w').write(ods_report(inv).render().getvalue()) |
| | 27 | |
| | 28 | # ODP |
| | 29 | odp_report, _ = repos.reports[Invoice]['presentation'] |
| | 30 | file('bonham_presentation.odp', 'w').write(odp_report(inv).render().getvalue()) |
-
|
r54
|
r58
|
|
| 120 | 120 | |
| 121 | 121 | def __call__(self, obj, **kwargs): |
| 122 | | data = {} |
| | 122 | data = kwargs.copy() |
| 123 | 123 | data['o'] = obj |
| 124 | | data['args'] = kwargs |
| 125 | 124 | return data |
| 126 | 125 | |
-
|
r46
|
r58
|
|
| 35 | 35 | import genshi.output |
| 36 | 36 | from genshi.template import MarkupTemplate |
| | 37 | from relatorio.reporting import Report |
| 37 | 38 | |
| 38 | 39 | GENSHI_EXPR = re.compile(r'''((/)?(for|choose|otherwise|when|if|with)( (\w+)=["'](.*)["']|)|.*)''') |
| … |
… |
|
| 55 | 56 | class ImageHref: |
| 56 | 57 | |
| 57 | | def __init__(self, zipfile): |
| | 58 | def __init__(self, zipfile, context): |
| 58 | 59 | self.zip = zipfile |
| | 60 | self.context = context.copy() |
| | 61 | self.obj = self.context.pop('o') |
| 59 | 62 | |
| 60 | 63 | def __call__(self, expr, name): |
| 61 | 64 | bitstream, mimetype = expr |
| | 65 | if isinstance(bitstream, Report): |
| | 66 | bitstream = bitstream(self.obj, **self.context).render() |
| 62 | 67 | bitstream.seek(0) |
| 63 | 68 | file_content = bitstream.read() |
| … |
… |
|
| 275 | 280 | def generate(self, *args, **kwargs): |
| 276 | 281 | serializer = OOSerializer(self.filepath) |
| 277 | | kwargs['make_href'] = ImageHref(serializer.outzip) |
| | 282 | kwargs['make_href'] = ImageHref(serializer.outzip, kwargs) |
| 278 | 283 | generate_all = super(Template, self).generate(*args, **kwargs) |
| 279 | 284 | |