From 5eae9d7cbe5ebde87975a3cd7ad3f7cf86abc7a5 Mon Sep 17 00:00:00 2001
From: Jiri Kalvoda <jirikalvoda@kam.mff.cuni.cz>
Date: Sun, 1 Aug 2021 11:19:50 +0200
Subject: [PATCH] Fields: FormAddRole

---
 mo/web/org_users.py           | 13 +++----------
 mo/web/templates/org_org.html |  2 +-
 2 files changed, 4 insertions(+), 11 deletions(-)

diff --git a/mo/web/org_users.py b/mo/web/org_users.py
index 2d00c010..123e90ad 100644
--- a/mo/web/org_users.py
+++ b/mo/web/org_users.py
@@ -299,8 +299,8 @@ def org_orgs():
 
 
 class FormAddRole(FlaskForm):
-    role = wtforms.SelectField('Role',  choices=db.RoleType.choices(), coerce=db.RoleType.coerce, render_kw={'autofocus': True})
-    place_code = wtforms.StringField('Oblast')
+    role = wtforms.SelectField('Role', choices=db.RoleType.choices(), coerce=db.RoleType.coerce, render_kw={'autofocus': True})
+    place = mo_fields.Place()
     year = wtforms.IntegerField('Ročník', validators=[validators.Optional()])
     category = wtforms.StringField("Kategorie", validators=[validators.Length(max=2)], filters=[lambda x: x or None])
     seq = wtforms.IntegerField("Kolo", validators=[validators.Optional()])
@@ -360,14 +360,7 @@ def org_org(id: int):
             new_role.assigned_by = g.user.user_id
 
             ok = True
-            place_code = form_add_role.place_code.data
-            if place_code:
-                place = db.get_place_by_code(place_code)
-                if not place:
-                    role_errors.append("Nepovedlo se nalézt místo podle kódu")
-                    ok = False
-                else:
-                    new_role.place = place
+            new_role.place = form_add_role.place.place
 
             if not g.gatekeeper.can_set_role(new_role):
                 role_errors.append(f'Roli "{new_role}" nelze přidělit, není podmnožinou žádné vaší role')
diff --git a/mo/web/templates/org_org.html b/mo/web/templates/org_org.html
index 7a143382..bf470cda 100644
--- a/mo/web/templates/org_org.html
+++ b/mo/web/templates/org_org.html
@@ -54,7 +54,7 @@
 <form action="" method="POST" class="form form-inline" role="form">
 	{{ form_add_role.csrf_token() }}
 	{{ wtf.form_field(form_add_role.role) }}
-	{{ wtf.form_field(form_add_role.place_code, placeholder='Kód', size=8) }}
+	{{ wtf.form_field(form_add_role.place, size=8) }}
 	{{ wtf.form_field(form_add_role.year, type='number', size=3, maxlength=2) }}
 	{{ wtf.form_field(form_add_role.category, size=2, maxlength=2) }}
 	{{ wtf.form_field(form_add_role.seq, type='number', size=3, maxlength=2) }}
-- 
GitLab