From d54a6484359b364c7f8a1723f7c576debcead3d5 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jan=20Bedna=C5=99=C3=ADk?= <jan.bednarik@gmail.com>
Date: Tue, 16 Feb 2021 12:51:17 +0100
Subject: [PATCH] donate: Fix targeted donations form

---
 donate/forms.py                                          | 9 +++++++++
 donate/static/donate/assets/js/scripts.js                | 2 +-
 .../templates/donate/donate_targeted_donations_page.html | 2 +-
 3 files changed, 11 insertions(+), 2 deletions(-)

diff --git a/donate/forms.py b/donate/forms.py
index de9f6f16..67e73126 100644
--- a/donate/forms.py
+++ b/donate/forms.py
@@ -22,6 +22,15 @@ class DonateForm(forms.Form):
             raise forms.ValidationError("Wrong periodicity!")
         return value
 
+    def clean(self):
+        cleaned_data = super().clean()
+        if (
+            cleaned_data["portal_project_id"] == self.PORTAL_ID_IN_SELECT
+            and cleaned_data["select_portal_project_id"] is None
+        ):
+            raise forms.ValidationError("Není zadán účel daru.")
+        return cleaned_data
+
     def get_amount(self):
         amount = self.cleaned_data["amount"]
         if amount == self.CUSTOM_AMOUNT:
diff --git a/donate/static/donate/assets/js/scripts.js b/donate/static/donate/assets/js/scripts.js
index e6dce2a1..49e387bb 100644
--- a/donate/static/donate/assets/js/scripts.js
+++ b/donate/static/donate/assets/js/scripts.js
@@ -92,7 +92,7 @@
   });
 
   $("#other_target_select").change(function () {
-    if ($(this).val() !== "-") {
+    if ($(this).val() !== "") {
       $("#other_target").prop("checked", true);
       updateLink($(this).val());
     }
diff --git a/donate/templates/donate/donate_targeted_donations_page.html b/donate/templates/donate/donate_targeted_donations_page.html
index e5fe9ba5..b4464a2c 100644
--- a/donate/templates/donate/donate_targeted_donations_page.html
+++ b/donate/templates/donate/donate_targeted_donations_page.html
@@ -37,7 +37,7 @@
                   <label class="custom-control-label col-form-label-lg custom-control-label-for-select" for="other_target">
                     Dar pro:
                     <select id="other_target_select" name="select_portal_project_id" class="custom-control-select">
-                      <option value="-">--- vybrat ---</option>
+                      <option value="">--- vybrat ---</option>
                       {% for target in other_targets %}
                         <option value="{{ target.portal_project_id }}">{{ target.title }}</option>
                       {% endfor %}
-- 
GitLab