Show
Ignore:
Timestamp:
01/27/09 07:36:35 (18 months ago)
Author:
Ga?tan de Menten <ged@…>
Branch:
default
Message:

do not use the report repository in any example except a special purpose
example "demo_repository".

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • examples/demo_odf.py

    r107 r112  
    1 from cStringIO import StringIO 
    2 from common import Invoice, repos, inv 
    3 import demo_chart 
     1from os.path import abspath 
     2from relatorio import Report 
    43 
    5 repos.add_report(Invoice, 'application/vnd.oasis.opendocument.text', 
    6                  'basic.odt', report_name='basic') 
    7 repos.add_report(Invoice, 'application/vnd.oasis.opendocument.text', 
    8                  'invoice.odt', report_name='complicated') 
    9 repos.add_report(Invoice, 'application/vnd.oasis.opendocument.spreadsheet', 
    10                  'pivot.ods', report_name='pivot') 
    11 repos.add_report(Invoice, 'application/vnd.oasis.opendocument.presentation', 
    12                  'presentation.odp', report_name='presentation') 
    13 repos.add_report(None, 'application/vnd.oasis.opendocument.text', 
    14                  'columns.odt', report_name='column') 
     4# test data 
     5from common import inv 
     6 
     7ODT_MIME = 'application/vnd.oasis.opendocument.text' 
     8ODS_MIME = 'application/vnd.oasis.opendocument.spreadsheet' 
     9ODP_MIME = 'application/vnd.oasis.opendocument.presentation' 
    1510 
    1611if __name__ == '__main__': 
    17     # Add a chart to the invoice 
    18     inv['chart'] = repos.classes[Invoice].ids['pie'] 
    19  
    2012    # ODT 
    2113    print "generating output_basic.odt... ", 
    22     basic_report, _ = repos.classes[Invoice].ids['basic'] 
    23     data = basic_report(o=inv).render().getvalue() 
    24     file('output_basic.odt', 'wb').write(data) 
     14    report = Report(abspath('basic.odt'), ODT_MIME) 
     15    content = report(o=inv).render().getvalue() 
     16    file('output_basic.odt', 'wb').write(content) 
    2517    print "done" 
    2618 
     19    # we could also use an opendocument template directly 
     20#    from relatorio.templates import opendocument 
     21#    template = opendocument.Template(source=None, filepath='basic.odt') 
     22#    content = template.generate(o=inv).render().getvalue() 
     23#    file('output_basic.odt', 'wb').write(content) 
     24 
    2725    print "generating output_complicated.odt... ", 
    28     report, _ = repos.classes[Invoice].ids['complicated'] 
    29     data = report(o=inv).render().getvalue() 
    30     file('output_complicated.odt', 'wb').write(data) 
     26    # Add a chart to the invoice 
     27    inv['chart'] = (Report(abspath('pie_chart'), 'image/png'), 'image/png') 
     28    report = Report(abspath('complicated.odt'), ODT_MIME) 
     29    content = report(o=inv).render().getvalue() 
     30    file('output_complicated.odt', 'wb').write(content) 
    3131    print "done" 
    3232 
    3333    print "generating output_columns.odt... ", 
    34     column_report, _ = repos.classes[None].ids['column'] 
     34    report = Report(abspath('columns.odt'), ODT_MIME) 
    3535    lst = [[], ['i'], ['a', 'b'], [1, 2, 3], ['I', 'II', 'III', 'IV']] 
    3636    titles = ['first', 'second', 'third', 'fourth'] 
    37     data = column_report(titles=titles, lst=lst).render().getvalue() 
    38     file('output_columns.odt', 'wb').write(data) 
     37    content = report(titles=titles, lst=lst).render().getvalue() 
     38    file('output_columns.odt', 'wb').write(content) 
    3939    print "done" 
    4040 
    4141    # ODS 
    4242    print "generating output_pivot.ods... ", 
    43     ods_report, _ = repos.classes[Invoice].ids['pivot'] 
    44     data = ods_report(o=inv).render().getvalue() 
    45     file('output_pivot.ods', 'wb').write(data) 
     43    report = Report(abspath('pivot.ods'), ODS_MIME) 
     44    content = report(o=inv).render().getvalue() 
     45    file('output_pivot.ods', 'wb').write(content) 
    4646    print "done" 
    4747 
    4848    # ODP 
    4949    print "generating output_presentation.odp... ", 
    50     odp_report, _ = repos.classes[Invoice].ids['presentation'] 
    51     data = odp_report(o=inv).render().getvalue() 
    52     file('output_presentation.odp', 'wb').write(data) 
     50    report = Report(abspath('presentation.odp'), ODP_MIME) 
     51    content = report(o=inv).render().getvalue() 
     52    file('output_presentation.odp', 'wb').write(content) 
    5353    print "done" 
    5454