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