|
|
|
@ -172,10 +172,12 @@ class MemberListAdmin(admin.ModelAdmin):
|
|
|
|
for memberonlist in memberlist.memberonlist_set.all():
|
|
|
|
for memberonlist in memberlist.memberonlist_set.all():
|
|
|
|
# write table of members in latex compatible format
|
|
|
|
# write table of members in latex compatible format
|
|
|
|
line = '{0} {1} & {2}, {3} & {4} & {5} \\\\ \n'.format(
|
|
|
|
line = '{0} {1} & {2}, {3} & {4} & {5} \\\\ \n'.format(
|
|
|
|
memberonlist.member.prename,
|
|
|
|
esc_ampersand(memberonlist.member.prename),
|
|
|
|
memberonlist.member.lastname, memberonlist.member.street,
|
|
|
|
esc_ampersand(memberonlist.member.lastname),
|
|
|
|
memberonlist.member.place, memberonlist.member.phone_number,
|
|
|
|
esc_ampersand(memberonlist.member.street),
|
|
|
|
memberonlist.member.email)
|
|
|
|
esc_ampersand(memberonlist.member.place),
|
|
|
|
|
|
|
|
esc_ampersand(memberonlist.member.phone_number),
|
|
|
|
|
|
|
|
esc_ampersand(memberonlist.member.email))
|
|
|
|
f.write(esc_underscore(line))
|
|
|
|
f.write(esc_underscore(line))
|
|
|
|
|
|
|
|
|
|
|
|
# copy and adapt latex memberlist template
|
|
|
|
# copy and adapt latex memberlist template
|
|
|
|
@ -187,16 +189,16 @@ class MemberListAdmin(admin.ModelAdmin):
|
|
|
|
template_content = f.read()
|
|
|
|
template_content = f.read()
|
|
|
|
|
|
|
|
|
|
|
|
# adapt template
|
|
|
|
# adapt template
|
|
|
|
name = esc_underscore(memberlist.name)
|
|
|
|
name = esc_all(memberlist.name)
|
|
|
|
template_content = template_content.replace('ACTIVITY', name)
|
|
|
|
template_content = template_content.replace('ACTIVITY', name)
|
|
|
|
groups = ', '.join(g.name for g in
|
|
|
|
groups = ', '.join(g.name for g in
|
|
|
|
memberlist.groups.all())
|
|
|
|
memberlist.groups.all())
|
|
|
|
template_content = template_content.replace('GROUP',
|
|
|
|
template_content = template_content.replace('GROUP',
|
|
|
|
esc_underscore(groups))
|
|
|
|
esc_all(groups))
|
|
|
|
destination = esc_underscore(memberlist.destination)
|
|
|
|
destination = esc_all(memberlist.destination)
|
|
|
|
template_content = template_content.replace('DESTINATION',
|
|
|
|
template_content = template_content.replace('DESTINATION',
|
|
|
|
destination)
|
|
|
|
destination)
|
|
|
|
place = esc_underscore(memberlist.place)
|
|
|
|
place = esc_all(memberlist.place)
|
|
|
|
template_content = template_content.replace('PLACE', place)
|
|
|
|
template_content = template_content.replace('PLACE', place)
|
|
|
|
template_content = template_content.replace('MEMBERLIST-DATE',
|
|
|
|
template_content = template_content.replace('MEMBERLIST-DATE',
|
|
|
|
datetime.today().strftime('%d.%m.%Y'))
|
|
|
|
datetime.today().strftime('%d.%m.%Y'))
|
|
|
|
@ -281,9 +283,9 @@ class MemberListAdmin(admin.ModelAdmin):
|
|
|
|
memberonlist.comments) if
|
|
|
|
memberonlist.comments) if
|
|
|
|
c).replace("..", ".")
|
|
|
|
c).replace("..", ".")
|
|
|
|
line = '{0} {1} & {2} & {3} \\\\'.format(
|
|
|
|
line = '{0} {1} & {2} & {3} \\\\'.format(
|
|
|
|
m.prename, m.lastname,
|
|
|
|
esc_ampersand(m.prename), esc_ampersand(m.lastname),
|
|
|
|
", ".join(qualities), comment or "---",
|
|
|
|
esc_ampersand(", ".join(qualities)),
|
|
|
|
)
|
|
|
|
esc_ampersand(comment) or "---")
|
|
|
|
table += esc_underscore(line)
|
|
|
|
table += esc_underscore(line)
|
|
|
|
|
|
|
|
|
|
|
|
table_qualities = ""
|
|
|
|
table_qualities = ""
|
|
|
|
@ -295,7 +297,7 @@ class MemberListAdmin(admin.ModelAdmin):
|
|
|
|
skill_max = 0 if len(skills[activity]) == 0 else\
|
|
|
|
skill_max = 0 if len(skills[activity]) == 0 else\
|
|
|
|
max(skills[activity])
|
|
|
|
max(skills[activity])
|
|
|
|
line = '{0} & {1} & {2} & {3} \\\\ \n'.format(
|
|
|
|
line = '{0} & {1} & {2} & {3} \\\\ \n'.format(
|
|
|
|
activity,
|
|
|
|
esc_ampersand(activity),
|
|
|
|
skill_avg,
|
|
|
|
skill_avg,
|
|
|
|
skill_min,
|
|
|
|
skill_min,
|
|
|
|
skill_max
|
|
|
|
skill_max
|
|
|
|
@ -311,14 +313,14 @@ class MemberListAdmin(admin.ModelAdmin):
|
|
|
|
template_content = f.read()
|
|
|
|
template_content = f.read()
|
|
|
|
|
|
|
|
|
|
|
|
# adapt template
|
|
|
|
# adapt template
|
|
|
|
name = esc_underscore(memberlist.name)
|
|
|
|
name = esc_all(memberlist.name)
|
|
|
|
template_content = template_content.replace('ACTIVITY', name)
|
|
|
|
template_content = template_content.replace('ACTIVITY', name)
|
|
|
|
groups = ', '.join(g.name for g in memberlist.groups.all())
|
|
|
|
groups = ', '.join(g.name for g in memberlist.groups.all())
|
|
|
|
template_content = template_content.replace('GROUP',
|
|
|
|
template_content = template_content.replace('GROUP',
|
|
|
|
esc_underscore(groups))
|
|
|
|
esc_all(groups))
|
|
|
|
destination = esc_underscore(memberlist.destination)
|
|
|
|
destination = esc_all(memberlist.destination)
|
|
|
|
template_content = template_content.replace('DESTINATION', destination)
|
|
|
|
template_content = template_content.replace('DESTINATION', destination)
|
|
|
|
place = esc_underscore(memberlist.place)
|
|
|
|
place = esc_all(memberlist.place)
|
|
|
|
template_content = template_content.replace('PLACE', place)
|
|
|
|
template_content = template_content.replace('PLACE', place)
|
|
|
|
template_content = template_content.replace('MEMBERLIST-DATE',
|
|
|
|
template_content = template_content.replace('MEMBERLIST-DATE',
|
|
|
|
datetime.today().strftime('%d.%m.%Y'))
|
|
|
|
datetime.today().strftime('%d.%m.%Y'))
|
|
|
|
@ -445,3 +447,11 @@ def media_dir():
|
|
|
|
|
|
|
|
|
|
|
|
def esc_underscore(txt):
|
|
|
|
def esc_underscore(txt):
|
|
|
|
return txt.replace('_', '\_')
|
|
|
|
return txt.replace('_', '\_')
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def esc_ampersand(txt):
|
|
|
|
|
|
|
|
return txt.replace('&', '\&')
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def esc_all(txt):
|
|
|
|
|
|
|
|
esc_underscore(esc_ampersand(txt))
|
|
|
|
|