return v in l
class JinjaRenderer(object):
- def __init__(self, rootdir, debug=False, border=False):
+ def __init__(self, rootdir, debug=False, border=False, pagebreaks=False):
self.templatedir = os.path.join(rootdir, 'templates')
self.debug = debug
self.border = border
+ self.pagebreaks = pagebreaks
registerFont(TTFont('DejaVu Serif', "/usr/share/fonts/truetype/ttf-dejavu/DejaVuSerif.ttf"))
registerFont(TTFont('DejaVu Serif Bold', "/usr/share/fonts/truetype/ttf-dejavu/DejaVuSerif-Bold.ttf"))
js['border'] = self.border
self.story.append(JinjaBadge(js, self.staticdir))
+ if not 'forcebreaks' in js:
+ js['forcebreaks'] = self.pagebreaks
if js.get('forcebreaks', False):
self.story.append(PageBreak())
# Render badges from within the website scope, meaning we have access to the
# django objects here.
-def render_jinja_badges(conference, registrations, output, border):
- renderer = JinjaRenderer(conference.jinjadir, border=border)
+def render_jinja_badges(conference, registrations, output, border, pagebreaks):
+ renderer = JinjaRenderer(conference.jinjadir, border=border, pagebreaks=pagebreaks)
for reg in registrations:
renderer.add_badge(reg.safe_export())
parser.add_argument('attendeelist', type=str, help='JSON file with attendee list')
parser.add_argument('outputfile', type=str, help='Name of output PDF file')
parser.add_argument('--borders', action='store_true', help='Enable borders on written file')
+ parser.add_argument('--pagebreaks', action='store_true', help='Enable pagebreaks on written file')
args = parser.parse_args()
- renderer = JinjaRenderer(args.repopath, debug=True, border=args.borders)
+ renderer = JinjaRenderer(args.repopath, debug=True, border=args.borders, pagebreaks=args.pagebreaks)
with open(args.attendeelist) as f:
a = json.load(f)
format = POST['format']
orientation = POST['orientation']
borders = POST.has_key('border')
+ pagebreaks = POST.has_key('pagebreaks')
fields = POST.getlist('fields')
extracols = filter(None, map(lambda x: x.strip(), POST['additionalcols'].split(',')))
# pass the full objects into the badge builder.
try:
resp = HttpResponse(content_type='application/pdf')
- render_jinja_badges(conference, result, resp, borders)
+ render_jinja_badges(conference, result, resp, borders, pagebreaks)
return resp
except Exception, e:
return HttpResponse("Exception occured: %s" % e, content_type='text/plain')