From b6647194697552948a69c52d41dc6ca81432e947 Mon Sep 17 00:00:00 2001
From: Jiri Kalvoda <jirikalvoda@kam.mff.cuni.cz>
Date: Wed, 21 Jul 2021 17:26:57 +0200
Subject: [PATCH] =?UTF-8?q?P=C5=99id=C3=A1no=20upozorn=C4=9Bn=C3=AD=20v=20?=
 =?UTF-8?q?p=C5=99=C3=ADpad=C4=9B=20vytv=C3=A1=C5=99en=C3=AD=20orga=20s=20?=
 =?UTF-8?q?duplicitn=C3=ADm=20jm=C3=A9nem.?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Closes #118

Pro potvrzení vytvoření duplicity jsem přidal do formuláře UserEditForm
zaškrtávací položku is_duplicit_name, kterou vždy, když není potřeba, mažu.
---
 mo/web/org_users.py | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/mo/web/org_users.py b/mo/web/org_users.py
index efa5b789..c29beed4 100644
--- a/mo/web/org_users.py
+++ b/mo/web/org_users.py
@@ -356,6 +356,7 @@ class UserEditForm(FlaskForm):
     email = wtforms.StringField("E-mail", validators=[Required()])
     note = wtforms.TextAreaField("Poznámka")
     is_test = wtforms.BooleanField("Testovací účet")
+    allow_duplicate_name = wtforms.BooleanField("Přidat účet s duplicitním jménem")
     submit = wtforms.SubmitField("Uložit")
 
     def validate_email(form, field):
@@ -385,6 +386,7 @@ def org_user_edit(id: int):
         raise werkzeug.exceptions.Forbidden()
 
     form = UserEditForm(obj=user)
+    del form.allow_duplicate_name
     if (user.is_org or user.is_admin) and not g.user.is_admin:
         # emaily u organizátorů může editovat jen správce
         del form.email
@@ -433,6 +435,7 @@ def org_user_new():
 
     form = UserEditForm()
     form.submit.label.text = 'Vytvořit'
+    is_duplicate_name = False
     if form.validate_on_submit():
         check = True
 
@@ -440,6 +443,15 @@ def org_user_new():
             flash('Účet s daným e-mailem již existuje', 'danger')
             check = False
 
+        if is_org:
+            if (mo.db.get_session().query(db.User)
+                    .filter_by(first_name=form.first_name.data, last_name=form.last_name.data, is_org=True)
+                    .first() is not None):
+                is_duplicate_name = True
+                if not form.allow_duplicate_name.data:
+                    flash('Organizátor s daným jménem již existuje. V případě, že se nejedná o chybu, zaškrtněte políčko ve formuláři.', 'danger')
+                    check = False
+
         if check:
             new_user = db.User()
             form.populate_obj(new_user)
@@ -470,4 +482,6 @@ def org_user_new():
                 return redirect(url_for('org_org', id=new_user.user_id))
             return redirect(url_for('org_user', id=new_user.user_id))
 
+    if not is_duplicate_name:
+        del form.allow_duplicate_name
     return render_template('org_user_new.html', form=form, is_org=is_org)
-- 
GitLab