Skip to content
Snippets Groups Projects
Commit c51e1aee authored by Martin Mareš's avatar Martin Mareš
Browse files

Registrace: Drobná vylepšení okolo hledání měst

  • Ořezáváme mezery z počátku i konce názvu obce.

  • Místo "jméno obce" používáme častější "název obce".

  • Placeholder od INPUTu vysvětluje, co se má zadat
    (uživatelé nečekaně často zkouší zadat přímo název školy
    a pak píší správci, že ji to nenajde).

  • Pokud se obec nenajde, radíme hledat jen část názvu
    (to řeší různé obce s pomlčkami ve jméně nebo zažitými
    nekanonickými názvy).

Closes #301.
parent 8ceff6e7
Branches
No related tags found
No related merge requests found
...@@ -17,11 +17,11 @@ def api_root(): ...@@ -17,11 +17,11 @@ def api_root():
@app.route('/api/find-town') @app.route('/api/find-town')
def api_find_town(): def api_find_town():
query = request.args.get('q') query = request.args.get('q', "").strip()
if query is None or len(query) < 2: if len(query) < 2:
return jsonify(error='Zadejte alespoň 2 znaky jména obce.') return jsonify(error='Zadejte alespoň 2 znaky názvu obce.')
elif '%' in query: elif '%' in query:
return jsonify(error='Nepovolené znaky ve jménu obce.') return jsonify(error='Nepovolené znaky v názvu obce.')
else: else:
max_places = 50 max_places = 50
places = (db.get_session().query(db.Place) places = (db.get_session().query(db.Place)
...@@ -33,10 +33,10 @@ def api_find_town(): ...@@ -33,10 +33,10 @@ def api_find_town():
.limit(max_places) .limit(max_places)
.all()) .all())
if not places : if not places :
return jsonify(error='Nenalezena žádná obec.') return jsonify(error='Nenalezena žádná obec. Zkuste zadat jen část názvu.')
# XXX: Nemůže se stát, že nastane přesná shoda a k tomu příliš mnoho nepřesných? # XXX: Nemůže se stát, že nastane přesná shoda a k tomu příliš mnoho nepřesných?
if len(places) >= max_places: if len(places) >= max_places:
return jsonify(error='Nalezeno příliš mnoho obcí. Zadejte prosím více znaků jména.') return jsonify(error='Nalezeno příliš mnoho obcí. Zadejte prosím více znaků názvu.')
res = [] res = []
for p in places: for p in places:
......
...@@ -28,9 +28,9 @@ ...@@ -28,9 +28,9 @@
<div id='town_query-group' class='form-group row required{% if form.school.errors %} has-error{% endif %}'> <div id='town_query-group' class='form-group row required{% if form.school.errors %} has-error{% endif %}'>
<label class='col-sm-2 control-label' for='town_query'>Škola</label> <label class='col-sm-2 control-label' for='town_query'>Škola</label>
<div class='col-sm-8'> <div class='col-sm-8'>
<input autofocus="" class="form-control" id="town_query" name="town_query" type="text" value=""> <input autofocus="" class="form-control" id="town_query" name="town_query" type="text" value="" placeholder="Nejdříve zadejte název obce.">
<div id='town_query-help' class='help-block'> <div id='town_query-help' class='help-block'>
Zadejte prvních pár znaků jména obce a zmáčkněte Hledat. Zadejte prvních pár znaků názvu obce a zmáčkněte Hledat.
Pokud se vám nedaří školu najít (například proto, že studujete v zahraničí), Pokud se vám nedaří školu najít (například proto, že studujete v zahraničí),
informujte prosím <a href='{{ url_for('doc_about') }}'>správce OSMO</a>. informujte prosím <a href='{{ url_for('doc_about') }}'>správce OSMO</a>.
</div> </div>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment