def pdf_parent_instructions(request, lang, group_id=None): """Render a PDF for sending home with parents.""" group = get_object_or_404( model.Group.objects.filter( owner=request.user.profile, id=group_id)) if group_id else None lang_verbose = dict(settings.LANGUAGES).get(lang, lang) filename = "Portfoliyo {0}{1}.pdf".format( lang_verbose, " - {0}".format(unidecode(group.name)) if group else u"", ) response = http.HttpResponse(content_type='application/pdf') response['Content-Disposition'] = ( 'attachment; filename="%s"' % filename.encode('utf-8')) pdf.generate_instructions_pdf( stream=response, lang=lang, name=request.user.profile.name or "Your Child's Teacher", code=group.code if group else request.user.profile.code or '', phone=request.user.profile.source_phone, group=group, ) tracking.track(request, 'downloaded signup pdf', language=lang) return response
def test_generate_instructions_pdf_no_group(): """Can omit group argument.""" stream = io.BytesIO() pdf.generate_instructions_pdf( stream, lang='es', name='John Doe', code='ABCDEF', phone='+3214567890', ) stream.close()
def test_generate_instructions_pdf(): """Smoke test - writes to the stream and doesn't blow up.""" stream = io.BytesIO() pdf.generate_instructions_pdf( stream, lang='en', name='John Doe', code='ABCDEF', phone='+3214567890', group=factories.GroupFactory.build(name='Group'), ) stream.close()
def test_generate_instructions_pdf_unicode_group(): """Group can have unicode name.""" stream = io.BytesIO() pdf.generate_instructions_pdf( stream, lang='es', name='John Doe', code='ABCDEF', phone='+3214567890', group=factories.GroupFactory.build(name=u'Grúpo'), ) stream.close()