From 7dadfae084e931dda65749ed2e75a6b63e5bc75c Mon Sep 17 00:00:00 2001
From: Tom Teichler <tom.teichler@teckids.org>
Date: Sun, 20 Feb 2022 00:34:13 +0100
Subject: [PATCH] Allow users to configure help_text and if field is required

---
 CHANGELOG.rst                                 |  2 ++
 ...0036_additionalfields_helptext_required.py | 23 +++++++++++++++++++
 aleksis/core/models.py                        |  2 ++
 3 files changed, 27 insertions(+)
 create mode 100644 aleksis/core/migrations/0036_additionalfields_helptext_required.py

diff --git a/CHANGELOG.rst b/CHANGELOG.rst
index ba6a9d2aa..d3e4c84c4 100644
--- a/CHANGELOG.rst
+++ b/CHANGELOG.rst
@@ -16,6 +16,8 @@ Added
 * Display personal photos instead of avatars based on a site preference.
 * Add an account menu in the top navbar.
 * Create a reusable snippet for avatar content.
+* Allow to configure if additional field is required
+* Allow to configure description of additional fields
 
 Changed
 ~~~~~~~
diff --git a/aleksis/core/migrations/0036_additionalfields_helptext_required.py b/aleksis/core/migrations/0036_additionalfields_helptext_required.py
new file mode 100644
index 000000000..948610564
--- /dev/null
+++ b/aleksis/core/migrations/0036_additionalfields_helptext_required.py
@@ -0,0 +1,23 @@
+# Generated by Django 3.2.12 on 2022-02-18 21:48
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('core', '0035_preference_model_unique'),
+    ]
+
+    operations = [
+        migrations.AddField(
+            model_name='additionalfield',
+            name='help_text',
+            field=models.TextField(blank=True, verbose_name='Help text / description'),
+        ),
+        migrations.AddField(
+            model_name='additionalfield',
+            name='required',
+            field=models.BooleanField(default=False, verbose_name='Required'),
+        ),
+    ]
diff --git a/aleksis/core/models.py b/aleksis/core/models.py
index 67867a6cd..07fdaca69 100644
--- a/aleksis/core/models.py
+++ b/aleksis/core/models.py
@@ -456,6 +456,8 @@ class AdditionalField(ExtensibleModel):
     field_type = models.CharField(
         verbose_name=_("Type of field"), choices=FIELD_CHOICES, max_length=50
     )
+    required = models.BooleanField(verbose_name=_("Required"), default=False)
+    help_text = models.TextField(verbose_name=_("Help text / description"), blank=True)
 
     def __str__(self) -> str:
         return self.title
-- 
GitLab