diff --git a/hypha/apply/utils/pdfs.py b/hypha/apply/utils/pdfs.py index 505b9c2d74b5afb1316247e7be227f3a87a3cfa3..3e63b38f23ce98a85c754a757af5bf83acde0cc4 100644 --- a/hypha/apply/utils/pdfs.py +++ b/hypha/apply/utils/pdfs.py @@ -36,29 +36,38 @@ def font(font_name): return os.path.join(font_location, font_name) -pdfmetrics.registerFont(TTFont('Montserrat', font('Montserrat-Regular.ttf'))) -pdfmetrics.registerFont(TTFont('MontserratBold', font('Montserrat-Bold.ttf'))) -pdfmetrics.registerFont(TTFont('MontserratItalic', font('Montserrat-Italic.ttf'))) -pdfmetrics.registerFont(TTFont('MontserratBoldItalic', font('Montserrat-BoldItalic.ttf'))) -pdfmetrics.registerFontFamily( - 'Montserrat', - normal='Montserrat', - bold='MontserratBold', - italic='MontserratItalic', - boldItalic='MontserratBoldItalic' -) +PREPARED_FONTS = False + + +def prepare_fonts(): + global PREPARED_FONTS + if PREPARED_FONTS: + return + pdfmetrics.registerFont(TTFont('Montserrat', font('Montserrat-Regular.ttf'))) + pdfmetrics.registerFont(TTFont('MontserratBold', font('Montserrat-Bold.ttf'))) + pdfmetrics.registerFont(TTFont('MontserratItalic', font('Montserrat-Italic.ttf'))) + pdfmetrics.registerFont(TTFont('MontserratBoldItalic', font('Montserrat-BoldItalic.ttf'))) + pdfmetrics.registerFontFamily( + 'Montserrat', + normal='Montserrat', + bold='MontserratBold', + italic='MontserratItalic', + boldItalic='MontserratBoldItalic' + ) + + pdfmetrics.registerFont(TTFont('NotoSans', font('NotoSans-Regular.ttf'))) + pdfmetrics.registerFont(TTFont('NotoSansBold', font('NotoSans-Bold.ttf'))) + pdfmetrics.registerFont(TTFont('NotoSansItalic', font('NotoSans-Italic.ttf'))) + pdfmetrics.registerFont(TTFont('NotoSansBoldItalic', font('NotoSans-BoldItalic.ttf'))) + pdfmetrics.registerFontFamily( + 'NotoSans', + normal='NotoSans', + bold='NotoSansBold', + italic='NotoSansItalic', + boldItalic='NotoSansBoldItalic' + ) + PREPARED_FONTS = True -pdfmetrics.registerFont(TTFont('NotoSans', font('NotoSans-Regular.ttf'))) -pdfmetrics.registerFont(TTFont('NotoSansBold', font('NotoSans-Bold.ttf'))) -pdfmetrics.registerFont(TTFont('NotoSansItalic', font('NotoSans-Italic.ttf'))) -pdfmetrics.registerFont(TTFont('NotoSansBoldItalic', font('NotoSans-BoldItalic.ttf'))) -pdfmetrics.registerFontFamily( - 'NotoSans', - normal='NotoSans', - bold='NotoSansBold', - italic='NotoSansItalic', - boldItalic='NotoSansBoldItalic' -) DARK_GREY = Color(0.0154, 0.0154, 0, 0.7451) @@ -69,6 +78,7 @@ FRAME_PADDING = 6 def make_pdf(title, meta, content): + prepare_fonts() buffer = io.BytesIO() doc = SimpleDocTemplate( buffer, diff --git a/hypha/settings/test.py b/hypha/settings/test.py index ebbfa77f6b798ced0d9a1e45ac9ad48fd12430e1..d3a4abdea729367eddf73d8912f0a52a60f803a9 100644 --- a/hypha/settings/test.py +++ b/hypha/settings/test.py @@ -15,3 +15,7 @@ PROJECTS_AUTO_CREATE = True # Need this to ensure white noise doesn't kill the speed of testing # http://whitenoise.evans.io/en/latest/django.html#whitenoise-makes-my-tests-run-slow WHITENOISE_AUTOREFRESH = True + +PASSWORD_HASHERS = [ + 'django.contrib.auth.hashers.MD5PasswordHasher', +]