From 7a00f9cd1830fdf43c9fc279e7cf80224f834239 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Felix=20Sch=C3=A4fer?= <felix@thegcat.net>
Date: Wed, 11 Sep 2019 20:26:21 +0200
Subject: [PATCH] Make showing name and product optional

---
 pretix_public_registrations/forms.py   |  8 ++++++++
 pretix_public_registrations/signals.py | 14 ++++++++++++--
 2 files changed, 20 insertions(+), 2 deletions(-)

diff --git a/pretix_public_registrations/forms.py b/pretix_public_registrations/forms.py
index 107e7f4..47c4825 100644
--- a/pretix_public_registrations/forms.py
+++ b/pretix_public_registrations/forms.py
@@ -20,6 +20,14 @@ class PublicRegistrationsForm(SettingsForm):
         required=True,
         choices=[],
     )
+    public_registrations_show_attendee_name = forms.BooleanField(
+        label=_('Show attendee name'),
+        required=False,
+    )
+    public_registrations_show_item_name = forms.BooleanField(
+        label=_('Show product name'),
+        required=False,
+    )
 
     def __init__(self, *args, **kwargs):
         super().__init__(*args, **kwargs)
diff --git a/pretix_public_registrations/signals.py b/pretix_public_registrations/signals.py
index 2d9f371..7514157 100644
--- a/pretix_public_registrations/signals.py
+++ b/pretix_public_registrations/signals.py
@@ -13,6 +13,8 @@ from pretix.base.settings import settings_hierarkey
 
 settings_hierarkey.add_default('public_registrations_items', None, list)
 settings_hierarkey.add_default('public_registrations_questions', None, list)
+settings_hierarkey.add_default('public_registrations_show_attendee_name', False, bool)
+settings_hierarkey.add_default('public_registrations_show_item_name', False, bool)
 
 
 @receiver(html_head, dispatch_uid="public_registrations_html_head")
@@ -49,7 +51,11 @@ def add_public_registrations_table(sender, **kwargs):
     if cached is None:
         cached = ""
         public_questions = sender.questions.filter(pk__in=sender.settings.get('public_registrations_questions'))
-        headers = [_("Name")] + [
+        headers = (
+            [_("Product")] if sender.settings.get('public_registrations_show_item_name') else []
+        ) + (
+            [_("Name")] if sender.settings.get('public_registrations_show_attendee_name') else []
+        ) + [
             q.question for q in public_questions
         ]
         order_positions = OrderPosition.objects.filter(order__event=sender, item__pk__in=sender.settings.get('public_registrations_items'))
@@ -67,7 +73,11 @@ def add_public_registrations_table(sender, **kwargs):
         public_registrations = [
             {
                 'gr_url': get_gravatar_url(pop.attendee_email, size=24, default="wavatar"),
-                'fields': [pop.attendee_name_cached] + [
+                'fields': (
+                    [pop.item.name] if sender.settings.get('public_registrations_show_item_name') else []
+                ) + (
+                    [pop.attendee_name_cached] if sender.settings.get('public_registrations_show_attendee_name') else []
+                ) + [
                     public_answers[pop.pk][pq.pk].answer if public_answers.get(pop.pk, None) and public_answers[pop.pk].get(pq.pk, None) else ''
                     for pq in public_questions
                 ]
-- 
GitLab