diff --git a/mo/web/org_users.py b/mo/web/org_users.py index efa5b789ebccf1b338d4ce569e57771a01c97071..c29beed486be54a99e4d3b6c3ce72667168f608c 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)