fix(members/pdf): don't escape umlaut

Partially reverts 2761efecaa. To handle invalid unicode characters, we now override
the LaTeX error message to remove invalid characters instead of crashing. We also
add various umlaut and invisible unicode characters to the test data.
cm-remove-jet
Christian Merten 10 months ago
parent c4d6581e6f
commit edd47ac8bd
Signed by: christian.merten
GPG Key ID: D953D69721B948B3

@ -3,6 +3,10 @@
\documentclass[a4paper]{article}
\usepackage[utf8]{inputenc}
% remove all undefined unicode characters instead of throwing an error
\makeatletter
\def\UTFviii@undefined@err#1{}
\makeatother
\usepackage{booktabs}
\usepackage{amssymb}
\usepackage{cmbright}

@ -3,6 +3,10 @@
\documentclass{article}
\usepackage[utf8]{inputenc}
% remove all undefined unicode characters instead of throwing an error
\makeatletter
\def\UTFviii@undefined@err#1{}
\makeatother
\usepackage{booktabs}
\usepackage{tabularx}
\usepackage{ragged2e}

@ -3,6 +3,10 @@
\documentclass[a4paper]{article}
\usepackage[utf8]{inputenc}
% remove all undefined unicode characters instead of throwing an error
\makeatletter
\def\UTFviii@undefined@err#1{}
\makeatother
\usepackage{booktabs}
\usepackage{tabularx}
\usepackage{ragged2e}

@ -3,6 +3,10 @@
\documentclass[a4paper]{article}
\usepackage[utf8]{inputenc}
% remove all undefined unicode characters instead of throwing an error
\makeatletter
\def\UTFviii@undefined@err#1{}
\makeatother
\usepackage{booktabs}
\usepackage{amssymb}
\usepackage{cmbright}

@ -3,6 +3,10 @@
\documentclass[a4paper]{article}
\usepackage[utf8]{inputenc}
% remove all undefined unicode characters instead of throwing an error
\makeatletter
\def\UTFviii@undefined@err#1{}
\makeatother
\usepackage{booktabs}
\usepackage{amssymb}
\usepackage{cmbright}

@ -1,6 +1,5 @@
from django import template
from django.utils.safestring import mark_safe
from utils import normalize_name
register = template.Library()
@ -13,7 +12,7 @@ def checked_if_true(name, value):
@register.filter
def esc_all(val):
return mark_safe(str(normalize_name(str(val), False, False)).replace('_', '\\_').replace('&', '\\&'))
return mark_safe(str(val).replace('_', '\\_').replace('&', '\\&'))
@register.filter

@ -215,15 +215,15 @@ class MemberTestCase(BasicMemberTestCase):
class PDFTestCase(TestCase):
def setUp(self):
self.ex = Freizeit.objects.create(name='Wild trip', kilometers_traveled=120,
self.ex = Freizeit.objects.create(name='Wild & _törip', kilometers_traveled=120,
tour_type=GEMEINSCHAFTS_TOUR,
tour_approach=MUSKELKRAFT_ANREISE,
difficulty=1)
self.note = MemberNoteList.objects.create(title='Cool list')
self.note = MemberNoteList.objects.create(title='Coolß! st')
for i in range(7):
m = Member.objects.create(prename='Lise {}'.format(i),
lastname='Walter',
m = Member.objects.create(prename='Liääüuße {}'.format(i),
lastname='Walter&co : _ kg &',
birth_date=timezone.now().date(),
email=settings.TEST_MAIL, gender=FEMALE)
NewMemberOnList.objects.create(member=m, comments='a' * i, memberlist=self.ex)

Loading…
Cancel
Save