diff options
| author | Magnus Hagander | 2025-09-17 13:07:33 +0000 |
|---|---|---|
| committer | Magnus Hagander | 2025-09-17 13:07:33 +0000 |
| commit | ce808cec211055880bb29a3da073381aa268d453 (patch) | |
| tree | 9a3fbd2c59ae1db9b53df77c07c227eed3876eb4 | |
| parent | f083fbe98cd8118f9ef3d8cfd6d867b9e492b6d8 (diff) | |
Add template debug flag to jinjapdf.py
This will simply print the whole template output from jinja, before
trying to load it as json. Helps debug when rendering problems generate
output that just isn't json.
| -rwxr-xr-x | postgresqleu/confreg/jinjapdf.py | 22 |
1 files changed, 15 insertions, 7 deletions
diff --git a/postgresqleu/confreg/jinjapdf.py b/postgresqleu/confreg/jinjapdf.py index 2b51ead1..2b9a9f16 100755 --- a/postgresqleu/confreg/jinjapdf.py +++ b/postgresqleu/confreg/jinjapdf.py @@ -280,7 +280,7 @@ def test_inlist(v, thelist): class JinjaRenderer(object): - def __init__(self, rootdir, templatefile, fonts, debug=False, systemroot=None, orientation='portrait', pagesize='A4'): + def __init__(self, rootdir, templatefile, fonts, debug=False, jinjadebug=False, systemroot=None, orientation='portrait', pagesize='A4'): if rootdir: self.templatedir = os.path.join(rootdir, 'templates') else: @@ -291,6 +291,7 @@ class JinjaRenderer(object): self.pagesize = landscape(self.pagesize) self.debug = debug + self.jinjadebug = jinjadebug self.border = self.pagebreaks = False @@ -336,6 +337,12 @@ class JinjaRenderer(object): def add_to_story(self, ctx): ctx.update(self.context) s = self.template.render(**ctx) + if self.jinjadebug: + print("Resulting json:") + print("------------------------") + print(s) + print("------------------------") + self.jinjadebug = False # For badges so we don't print one for each badge! try: js = json.loads(s) except ValueError as e: @@ -379,8 +386,8 @@ class JinjaRenderer(object): class JinjaBadgeRenderer(JinjaRenderer): - def __init__(self, rootdir, fonts, debug=False, border=False, pagebreaks=False, systemroot=None, orientation='portrait', pagesize='A4'): - super(JinjaBadgeRenderer, self).__init__(rootdir, 'badge.json', fonts, debug=debug, systemroot=systemroot, orientation=orientation, pagesize=pagesize) + def __init__(self, rootdir, fonts, debug=False, jinjadebug=False, border=False, pagebreaks=False, systemroot=None, orientation='portrait', pagesize='A4'): + super(JinjaBadgeRenderer, self).__init__(rootdir, 'badge.json', fonts, debug=debug, jinjadebug=jinjadebug, systemroot=systemroot, orientation=orientation, pagesize=pagesize) self.border = border self.pagebreaks = pagebreaks @@ -393,8 +400,8 @@ class JinjaBadgeRenderer(JinjaRenderer): class JinjaTicketRenderer(JinjaRenderer): - def __init__(self, rootdir, fonts, debug=False, systemroot=None): - super(JinjaTicketRenderer, self).__init__(rootdir, 'ticket.json', fonts, debug=debug, systemroot=systemroot) + def __init__(self, rootdir, fonts, debug=False, jinjadebug=False, systemroot=None): + super(JinjaTicketRenderer, self).__init__(rootdir, 'ticket.json', fonts, debug=debug, jinjadebug=False, systemroot=systemroot) def add_reg(self, reg, conference): self.add_to_story({ @@ -431,6 +438,7 @@ if __name__ == "__main__": parser.add_argument('--pagebreaks', action='store_true', help='Enable pagebreaks on written file') parser.add_argument('--fontroot', type=str, help='fontroot for dejavu fonts') parser.add_argument('--font', type=str, nargs=1, action='append', help='<font name>:<font path>') + parser.add_argument('--debug-template', action='store_true', help='Print template output before running') args = parser.parse_args() @@ -476,11 +484,11 @@ if __name__ == "__main__": fonts.extend([f.split(':') for f in font]) if args.what == 'badge': - renderer = JinjaBadgeRenderer(args.repopath, fonts, debug=True, border=args.borders, pagebreaks=args.pagebreaks) + renderer = JinjaBadgeRenderer(args.repopath, fonts, debug=True, jinjadebug=args.debug_template, border=args.borders, pagebreaks=args.pagebreaks) for reg in a: renderer.add_badge(reg, conference) else: - renderer = JinjaTicketRenderer(args.repopath, fonts, debug=True) + renderer = JinjaTicketRenderer(args.repopath, fonts, debug=True, jinjadebug=args.debug_template) renderer.add_reg(a[0], conference) with open(args.outputfile, 'wb') as output: |
