diff --git a/jdav_web/members/admin.py b/jdav_web/members/admin.py index bc0a37f..e0a1dc6 100644 --- a/jdav_web/members/admin.py +++ b/jdav_web/members/admin.py @@ -173,13 +173,19 @@ class MemberListAdmin(admin.ModelAdmin): )) for memberonlist in memberlist.memberonlist_set.all(): # write table of members in latex compatible format - line = '{0} {1} & {2}, {3} & {4} & {5} \\\\ \n'.format( + member = memberonlist.member + # use parents phone number if available + phone_number = member.phone_number_parents if\ + member.phone_number_parents else member.phone_number + # use parents email address if available + email = member.email_parents if\ + member.email_parents else member.email + line = '{0} {1} & {2} & {3} & \\Email{{{4}}} \\\\ \n'.format( esc_ampersand(memberonlist.member.prename), esc_ampersand(memberonlist.member.lastname), - esc_ampersand(memberonlist.member.street), - esc_ampersand(memberonlist.member.place), - esc_ampersand(memberonlist.member.phone_number), - esc_ampersand(memberonlist.member.email)) + esc_ampersand(memberonlist.member.address), + esc_ampersand(memberonlist.member.contact_phone_number), + esc_ampersand(memberonlist.member.contact_email)) f.write(esc_underscore(line)) # copy and adapt latex memberlist template diff --git a/jdav_web/members/models.py b/jdav_web/members/models.py index ca22efe..7548307 100644 --- a/jdav_web/members/models.py +++ b/jdav_web/members/models.py @@ -111,6 +111,32 @@ class Member(models.Model): """Returning the whole place (plz + town)""" return "{0} {1}".format(self.plz, self.town) + @property + def address(self): + """Returning the whole address""" + if not self.street and not self.town and not self.plz: + return "---" + else: + return "{0}, {1}".format(self.street, self.place) + + @property + def contact_phone_number(self): + """Returning, if available phone number of parents, else member's phone number""" + if self.phone_number_parents: + return str(self.phone_number_parents) + elif self.phone_number: + return str(self.phone_number) + else: + return "---" + + @property + def contact_email(self): + """Returning, if available email of parents, else member's email""" + if self.email_parents: + return self.email_parents + else: + return self.email + @property def association_email(self): """Returning the association email of the member""" diff --git a/media/memberlists/memberlist_template.tex b/media/memberlists/memberlist_template.tex index 08c9b0d..745677a 100644 --- a/media/memberlists/memberlist_template.tex +++ b/media/memberlists/memberlist_template.tex @@ -6,9 +6,11 @@ \usepackage{cmbright} \usepackage{graphicx} \usepackage{textpos} -\usepackage[colorlinks]{hyperref} +\usepackage[colorlinks, breaklinks]{hyperref} \usepackage{float} \usepackage[margin=1in]{geometry} +\usepackage{array} +\usepackage{tabularx} \newcommand{\picpos}[4]{ \begin{textblock*}{#1}(#2, #3) @@ -16,8 +18,20 @@ \end{textblock*} } +% custom url command for properly formatting emails +\DeclareUrlCommand\Email{\urlstyle{same}} +% allow linebreak after every character +\expandafter\def\expandafter\UrlBreaks\expandafter{\UrlBreaks +\do\/\do\a\do\b\do\c\do\d\do\e\do\f\do\g\do\h\do\i\do\j\do\k +\do\l\do\m\do\n\do\o\do\p\do\q\do\r\do\s\do\t\do\u\do\v +\do\w\do\x\do\y\do\z +\do\A\do\B\do\C\do\D\do\E\do\F\do\G\do\H\do\I\do\J\do\K +\do\L\do\M\do\N\do\O\do\P\do\Q\do\R\do\S\do\T\do\U\do\V +\do\W\do\X\do\Y\do\Z} + \renewcommand{\arraystretch}{1.5} +\newcolumntype{L}{>{\hspace{0pt}}X} \newcommand{\tickedbox}{ \makebox[0pt][l]{$\square$}\raisebox{.15ex}{\hspace{0.1em}$\checkmark$} } @@ -58,13 +72,13 @@ \noindent TOUR-TYPE \begin{table}[H] - \begin{tabular*}{1\linewidth}{@{\extracolsep{\fill}}llll} + \begin{tabularx}{1\linewidth}{@{\extracolsep{\fill}}lLlL} \toprule \textbf{Name} & \textbf{Anschrift} & \textbf{Telefon} & \textbf{E-Mail} \\ \midrule \input{TABLE-NAME} \bottomrule - \end{tabular*} + \end{tabularx} \end{table} \vspace{1cm}