from datetime import datetime from jinja2 import Environment, FileSystemLoader jinja_options = { "loader": FileSystemLoader('util'), } env = Environment(**jinja_options) def renderInvoiceToHtml(invoice, user): """ Renders a nice HTML display for the given invoice. """ def get_price(price): if not price: return '$0' return '$' + '{0:.2f}'.format(float(price) / 100) def get_range(line): if line.period and line.period.start and line.period.end: return ': ' + format_date(line.period.start) + ' - ' + format_date(line.period.end) return '' def format_date(timestamp): return datetime.fromtimestamp(timestamp).strftime('%Y-%m-%d') data = { 'user': user.username, 'invoice': invoice, 'invoice_date': format_date(invoice.date), 'getPrice': get_price, 'getRange': get_range } template = env.get_template('invoice.tmpl') rendered = template.render(data) return rendered