From cf785d0d0c93db2e65e619404410711df73187c3 Mon Sep 17 00:00:00 2001 From: mariusrklein <47218379+mariusrklein@users.noreply.github.com> Date: Sun, 22 Jun 2025 15:08:41 +0200 Subject: [PATCH] feat (members): change list layout to accomodate large ticket_no barcodes --- jdav_web/members/admin.py | 7 ++--- jdav_web/members/models.py | 6 ++--- .../templates/members/group_checklist.tex | 26 ++++++++++++------- 3 files changed, 23 insertions(+), 16 deletions(-) diff --git a/jdav_web/members/admin.py b/jdav_web/members/admin.py index 3bcde34..ed9d070 100644 --- a/jdav_web/members/admin.py +++ b/jdav_web/members/admin.py @@ -878,13 +878,14 @@ class GroupAdmin(CommonAdminMixin, admin.ModelAdmin): return HttpResponseRedirect(reverse('admin:%s_%s_changelist' % (self.opts.app_label, self.opts.model_name))) ensure_media_dir() - n_weeks = 15 + n_weeks = 18 + n_members = 20 context = { 'groups': self.model.objects.filter(show_website=True), 'settings': settings, - 'range': range(n_weeks), - 'n_members': range(24), + 'week_range': range(n_weeks), + 'member_range': range(n_members), 'dates': mondays_until_nth(n_weeks), 'weekdays': [long for i, long in WEEKDAYS], } diff --git a/jdav_web/members/models.py b/jdav_web/members/models.py index 69635c9..078cbf1 100644 --- a/jdav_web/members/models.py +++ b/jdav_web/members/models.py @@ -374,10 +374,10 @@ class Member(Person): return "{0} {1}".format(self.plz, self.town) @property - def dav_badge_no_tag(self): - """Returning the badge number stripped of strings and spaces""" + def ticket_tag(self): + """Returning the ticket number stripped of strings and spaces""" - return "{" + ''.join(re.findall(r'\d', self.dav_badge_no))[-6:] + "}" + return "{" + ''.join(re.findall(r'\d', self.ticket_no)) + "}" @property def iban_valid(self): diff --git a/jdav_web/members/templates/members/group_checklist.tex b/jdav_web/members/templates/members/group_checklist.tex index 0415439..ed9a9fb 100644 --- a/jdav_web/members/templates/members/group_checklist.tex +++ b/jdav_web/members/templates/members/group_checklist.tex @@ -6,8 +6,9 @@ {% block extra-preamble %} \usepackage{rotating} -\usepackage[code=Code39,X=.24mm,ratio=2.25,H=0.4cm]{makebarcode} +\usepackage[code=Code39,X=.48mm,ratio=3.5,H=0.5cm]{makebarcode} \geometry{reset,margin=1cm, bottom=1.5cm} +\renewcommand{\arraystretch}{1} {% endblock %} {% block content %} @@ -23,23 +24,28 @@ \noindent {{ weekdays|index:group.weekday|esc_all }}, {{ group.start_time }} - {{ group.end_time }} Uhr\\ \noindent Anwesende Jugendleitende und Teilnehmende werden mit einem Kreuz ($\times$) markiert und die ausgefüllte -Liste zum Anfang der Gruppenstunde an der Kasse abgegeben. Zum Ende wird sie wieder abgeholt. Abgelaufene -Punktekarten werden von der Kasse mit einem Kreis ($\otimes$) markiert. +Liste zum Anfang der Gruppenstunde an der Kasse abgegeben. Zum Ende wird sie wieder abgeholt. Wenn die Punkte auf einer Karte fast aufgebraucht sind, notiert die Kasse die verbliebenen Eintritte (3, 2, 1) unter dem Kreuz. \begin{table}[H] \centering -%\begin{tabularx}{\textwidth}{lXX|l|l|l|l|l|l|l|l|l|l|l|l|l|l|l|l|l} -\begin{tabularx}{\textwidth}{lXl{% for i in range %}|l{% endfor%}} +%\begin{tabularx}{\textwidth}{lYY|l|l|l|l|l|l|l|l|l|l|l|l|l|l|l|l|l} +\begin{tabularx}{\textwidth}{X{% for i in week_range %}|l{% endfor%}} \toprule - \textbf{\#} & \textbf{Name} & {% for i in range %} + \textbf{Name} {% for i in week_range %} & \begin{sideways} {{ dates|index:i|add:group.weekday|date_vs }} \end{sideways} {% endfor %} \\ - {% for j in n_members %} + {% for j in member_range %} {% with m=group.sorted_members|index:j %} \midrule - {{ j|plus:1 }} & - {% if m in group.leiters.all %}{{ m.name|esc_all }} \textbf{(JL)} {% else %} {{ m.name|esc_all }} {% endif %} & {% if m.dav_badge_no_tag|length > 2 %}\barcode{{ m.dav_badge_no_tag }}{% endif %} - {% for i in range %} & {% endfor %}\\ + \begin{tabular}{@{}l} + {% if m.ticket_tag|length > 2 %}\barcode{{ m.ticket_tag }}{% else %}\rule{0pt}{5mm}{% endif %} + \vspace{-0.8ex} \\ + {\small {{ j|plus:1 }} {% if m in group.leiters.all %}\textbf{JL}{% endif %} + {{ m.name|esc_all }} {% if m.ticket_tag|length > 2 %} - {{ m.ticket_tag }}{% endif %} + \vspace{-3ex} } + \end{tabular} + + {% for i in week_range %} & {% endfor %}\\ {% endwith %} {% endfor %}