From a56f563ee14b591d4dac9803808ea493655c8024 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jan=20Bedna=C5=99=C3=ADk?= <jan.bednarik@gmail.com>
Date: Wed, 2 Sep 2020 22:11:57 +0200
Subject: [PATCH] donate: Option to choose preselected value in donation form
 for projects

---
 ...0011_donateprojectpage_form_preselected.py | 22 +++++++++++++++++++
 donate/models.py                              | 13 +++++++++++
 .../templates/donate/donate_project_page.html |  6 ++---
 3 files changed, 38 insertions(+), 3 deletions(-)
 create mode 100644 donate/migrations/0011_donateprojectpage_form_preselected.py

diff --git a/donate/migrations/0011_donateprojectpage_form_preselected.py b/donate/migrations/0011_donateprojectpage_form_preselected.py
new file mode 100644
index 00000000..ffe32c02
--- /dev/null
+++ b/donate/migrations/0011_donateprojectpage_form_preselected.py
@@ -0,0 +1,22 @@
+# Generated by Django 3.0.9 on 2020-09-02 19:09
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ("donate", "0010_auto_20200902_1744"),
+    ]
+
+    operations = [
+        migrations.AddField(
+            model_name="donateprojectpage",
+            name="form_preselected",
+            field=models.IntegerField(
+                choices=[(1, "první"), (2, "druhá"), (3, "třetí")],
+                default=1,
+                verbose_name="výchozí částka",
+            ),
+        ),
+    ]
diff --git a/donate/models.py b/donate/models.py
index 66f75c10..15ab4c66 100644
--- a/donate/models.py
+++ b/donate/models.py
@@ -346,6 +346,15 @@ class DonateProjectIndexPage(Page, SubpageMixin, MetadataPageMixin):
 
 
 class DonateProjectPage(DonateFormMixin, Page, SubpageMixin, MetadataPageMixin):
+    FIRST = 1
+    SECOND = 2
+    THIRD = 3
+    FORM_CHOICES = [
+        (FIRST, "první"),
+        (SECOND, "druhá"),
+        (THIRD, "třetí"),
+    ]
+
     ### FIELDS
 
     date = models.DateField("běží od")
@@ -372,6 +381,9 @@ class DonateProjectPage(DonateFormMixin, Page, SubpageMixin, MetadataPageMixin):
     form_amount_1 = models.IntegerField("pevná částka 1", default=100)
     form_amount_2 = models.IntegerField("pevná částka 2", default=200)
     form_amount_3 = models.IntegerField("pevná částka 3", default=500)
+    form_preselected = models.IntegerField(
+        "výchozí částka", default=FIRST, choices=FORM_CHOICES
+    )
     # we will use photo as search image
     search_image = None
 
@@ -415,6 +427,7 @@ class DonateProjectPage(DonateFormMixin, Page, SubpageMixin, MetadataPageMixin):
                 FieldPanel("form_amount_1"),
                 FieldPanel("form_amount_2"),
                 FieldPanel("form_amount_3"),
+                FieldPanel("form_preselected"),
             ],
             "nastavení darů",
         ),
diff --git a/donate/templates/donate/donate_project_page.html b/donate/templates/donate/donate_project_page.html
index 6c0f9dce..a19fe579 100644
--- a/donate/templates/donate/donate_project_page.html
+++ b/donate/templates/donate/donate_project_page.html
@@ -81,15 +81,15 @@
                       <legend class="col-form-label col-md-12 col-form-label-lg">Částka</legend>
                       <div class="col-md-12">
                           <div class="custom-control custom-radio custom-control-inline">
-                            <input type="radio" id="amount1" name="amount" value="{{ page.form_amount_1 }}" class="custom-control-input" checked>
+                            <input type="radio" id="amount1" name="amount" value="{{ page.form_amount_1 }}" class="custom-control-input"{% if page.form_preselected == page.FIRST %} checked{% endif %}>
                             <label class="custom-control-label col-form-label-lg" for="amount1">{{ page.form_amount_1 }} Kč</label>
                           </div>
                           <div class="custom-control custom-radio custom-control-inline">
-                            <input type="radio" id="amount2" name="amount" value="{{ page.form_amount_2 }}" class="custom-control-input">
+                            <input type="radio" id="amount2" name="amount" value="{{ page.form_amount_2 }}" class="custom-control-input"{% if page.form_preselected == page.SECOND %} checked{% endif %}>
                             <label class="custom-control-label col-form-label-lg" for="amount2">{{ page.form_amount_2 }} Kč</label>
                           </div>
                           <div class="custom-control custom-radio custom-control-inline">
-                            <input type="radio" id="amount3" name="amount" value="{{ page.form_amount_3 }}" class="custom-control-input">
+                            <input type="radio" id="amount3" name="amount" value="{{ page.form_amount_3 }}" class="custom-control-input"{% if page.form_preselected == page.THIRD %} checked{% endif %}>
                             <label class="custom-control-label col-form-label-lg" for="amount3">{{ page.form_amount_3 }} Kč</label>
                           </div>
                           <div class="custom-control custom-radio custom-control-inline">
-- 
GitLab