From 86a3ea5308ec1b179a12b726c0487c3f578e2843 Mon Sep 17 00:00:00 2001
From: Dominik George <dominik.george@teckids.org>
Date: Tue, 22 Feb 2022 22:24:29 +0100
Subject: [PATCH] Fix duplication of fields in form layout

---
 CHANGELOG.rst                   | 1 +
 aleksis/apps/paweljong/forms.py | 9 ++++++---
 2 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/CHANGELOG.rst b/CHANGELOG.rst
index 648fef2..2ea9e00 100644
--- a/CHANGELOG.rst
+++ b/CHANGELOG.rst
@@ -13,6 +13,7 @@ Fixed
 ~~~~~
 
 * Fix creation on email addresses
+* Fix duplication of form fields in layout
 
 `1.1`_
 ----------
diff --git a/aleksis/apps/paweljong/forms.py b/aleksis/apps/paweljong/forms.py
index 06cc921..1fb58f1 100644
--- a/aleksis/apps/paweljong/forms.py
+++ b/aleksis/apps/paweljong/forms.py
@@ -300,15 +300,18 @@ class RegisterEventAdditional(ExtensibleForm):
     def __init__(self, event, *args, **kwargs):
         super().__init__(*args, **kwargs)
 
+        self.__class__.layout_filled = getattr(self.__class__, "layout_filled", False)
+
         for field in event.linked_group.additional_fields.all():
             field_instance = getattr(fields, field.field_type)(
                 required=field.required,
                 help_text=field.help_text,
             )
             self.fields[field.title] = field_instance
-            node = Fieldset(f"{field.title}", f"{field.title}")
-            self.add_node_to_layout(node)
-
+            if not self.layout_filled:
+                node = Fieldset(f"{field.title}", f"{field.title}")
+                self.add_node_to_layout(node)
+        self.__class__.layout_filled = True
 
 class RegisterEventFinancial(ExtensibleForm):
     """Form to register for an event."""
-- 
GitLab