From 85df63a4ca3e8904c94ad2cdc7dacaef3128d36d Mon Sep 17 00:00:00 2001 From: Daniel Grams Date: Thu, 14 Oct 2021 14:40:09 +0200 Subject: [PATCH] =?UTF-8?q?Organisation:=20Name=20auf=20Eindeutigkeit=20pr?= =?UTF-8?q?=C3=BCfen=20#309?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- messages.pot | 12 ++++-- project/templates/_macros.html | 20 +++++++++ .../translations/de/LC_MESSAGES/messages.mo | Bin 32556 -> 32624 bytes .../translations/de/LC_MESSAGES/messages.po | 12 ++++-- .../translations/en/LC_MESSAGES/messages.mo | Bin 3365 -> 3489 bytes .../translations/en/LC_MESSAGES/messages.po | 16 ++++--- project/views/js.py | 17 ++++++++ tests/views/test_js.py | 39 ++++++++++++++++++ 8 files changed, 102 insertions(+), 14 deletions(-) diff --git a/messages.pot b/messages.pot index e4b2be0..144a7d0 100644 --- a/messages.pot +++ b/messages.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2021-10-14 10:41+0200\n" +"POT-Creation-Date: 2021-10-14 14:32+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -2017,15 +2017,19 @@ msgstr "" msgid "Short name is already taken" msgstr "" -#: project/views/js.py:40 +#: project/views/js.py:43 +msgid "Name is already taken" +msgstr "" + +#: project/views/js.py:57 msgid "An account already exists with this email." msgstr "" -#: project/views/js.py:80 +#: project/views/js.py:97 msgid "Places of organization" msgstr "" -#: project/views/js.py:88 +#: project/views/js.py:105 msgid "Places of Google Maps" msgstr "" diff --git a/project/templates/_macros.html b/project/templates/_macros.html index aa1ea53..1ab54e8 100644 --- a/project/templates/_macros.html +++ b/project/templates/_macros.html @@ -1550,6 +1550,25 @@ $('#allday').on('change', function() { } }); + $("#name").rules("add", { + remote: { + url: "{{ url_for('js_check_org_name') }}", + type: "post" + {% if admin_unit %} + ,data: { + admin_unit_id: function() { + return "{{ admin_unit.id }}"; + } + } + {% if admin_unit.name %} + ,depends: function() { + return $('#name').val() != '{{ admin_unit.name }}'; + } + {% endif %} + {% endif %} + } + }); + $("#short_name").rules("add", "shortName"); $("#short_name").rules("add", { remote: { @@ -1586,6 +1605,7 @@ $('#allday').on('change', function() { }); if ($("#name").val().length > 0) { + $("#name").valid(); suggest_short_name(); } diff --git a/project/translations/de/LC_MESSAGES/messages.mo b/project/translations/de/LC_MESSAGES/messages.mo index 2104f570e1036fea9962b1c29bf2e1de8fba3850..6f1881f8844249ed88bb437fe6d20a17e9dcc8c6 100644 GIT binary patch delta 7497 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 Mtbg!8&b)g61IfB`-T(jq delta 7461 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 WPhQ`3aRCF?{WQPnp4dqRG5-Tne^wm; diff --git a/project/translations/de/LC_MESSAGES/messages.po b/project/translations/de/LC_MESSAGES/messages.po index 6f4f129..86b2f96 100644 --- a/project/translations/de/LC_MESSAGES/messages.po +++ b/project/translations/de/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2021-10-14 10:41+0200\n" +"POT-Creation-Date: 2021-10-14 14:32+0200\n" "PO-Revision-Date: 2020-06-07 18:51+0200\n" "Last-Translator: FULL NAME \n" "Language: de\n" @@ -2070,15 +2070,19 @@ msgstr "Prüfungsstatus aktualisiert" msgid "Short name is already taken" msgstr "Der Kurzname ist bereits vergeben" -#: project/views/js.py:40 +#: project/views/js.py:43 +msgid "Name is already taken" +msgstr "Der Name ist bereits vergeben" + +#: project/views/js.py:57 msgid "An account already exists with this email." msgstr "Mit dieser E-Mail existiert bereits ein Account." -#: project/views/js.py:80 +#: project/views/js.py:97 msgid "Places of organization" msgstr "Orte der Organisation" -#: project/views/js.py:88 +#: project/views/js.py:105 msgid "Places of Google Maps" msgstr "Orte von Google Maps" diff --git a/project/translations/en/LC_MESSAGES/messages.mo b/project/translations/en/LC_MESSAGES/messages.mo index fe321774e3348c669ead84a36c673b0473bc6e21..8b55c32160f7086674a0145b4d35e8b54889451f 100644 GIT binary patch delta 1088 zcmYk)OKi+h6vy$y%+Q*dw$m{wedv@*J*pUllx~pObkTT(2%@5cMpVsABN940i%M4$ z3pPz9#7?3~Q;n5wq>Eap4Z}`|$3jRvLiqmlBs%#|KL2y>x&M3a{r~UOj@A`kR|jtx zzg_(6`Tts==>M-2Fk4Re3hVG2)?z$p)`o4^ipOyy4&erz#1y{67OV@It;0QTAFePf z*iCM<@C2^J=U9W^Q43WqnsYrSh|{R?V;<){9`g7$s?iB-#93q^`-I;#Gbd(X$mQS+zVr&vk+5>@}f^FNeleG8S% zJurb0;%3wXHlrqVpgQiv7#>2^okg9*04~E})Ct{1)jdMZpFuTHLT&UT#_=~6hI!vH z&ZU~f2&<^z0diV4g*vinq*5#N*S*W&IvsL46z7a4C+Wb~KKBpEiwrcQ%9C$TOrjdx2`?4XS}p zVa{I#U%cQaDh{!_8j7GMB-{qn_-fPxTHO??@g1mnyFK6O`F);0ikjc!b2vCJ%Gk7#J) zNvy>8cnQCwHrjWi7tD%?t5M?}9`|_M=kYMA&`G?C?~sjb6SMFTv+)#j*xw?VX8Cj! zVJ=o<6k9L{yL|kP$4QLQ-;bI<=sxxF2~_^9yMTGb%c%Jq-oK@O_P3ujwBQkH!%*aG zfjBCm6jkvJjAJWm-fh%P+{0oVK;6&?YTgS}{ybj96&&OBe!&9bB#WkW@&`1y4I4&X z(I`@jrIDXK_x@L?1s9RGVjq#UY|Z_I%KwVW-$l*;g_{2tHUGp7N4b9`#JDe=s2CMr zM_pl~$L*+Zp&JXa7j>eC$aiR?$oFMqsDnI1_OK~bAumw{yz%k3KK>!f{VQRO4pp{+ zO4xL_QR6>Q3;cEuP=y|&@-nDiTyH{uc diff --git a/project/translations/en/LC_MESSAGES/messages.po b/project/translations/en/LC_MESSAGES/messages.po index bfeecd5..ee54eaf 100644 --- a/project/translations/en/LC_MESSAGES/messages.po +++ b/project/translations/en/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2021-10-14 10:41+0200\n" +"POT-Creation-Date: 2021-10-14 14:32+0200\n" "PO-Revision-Date: 2021-04-30 15:04+0200\n" "Last-Translator: FULL NAME \n" "Language: en\n" @@ -148,11 +148,11 @@ msgstr "Profile information" #: project/i10n.py:45 msgid "Scope_user:read" -msgstr "" +msgstr "Read user settings" #: project/i10n.py:46 msgid "Scope_user:write" -msgstr "" +msgstr "Create, update and delete user settings" #: project/i10n.py:47 msgid "Scope_organizer:write" @@ -2018,15 +2018,19 @@ msgstr "" msgid "Short name is already taken" msgstr "" -#: project/views/js.py:40 +#: project/views/js.py:43 +msgid "Name is already taken" +msgstr "" + +#: project/views/js.py:57 msgid "An account already exists with this email." msgstr "" -#: project/views/js.py:80 +#: project/views/js.py:97 msgid "Places of organization" msgstr "" -#: project/views/js.py:88 +#: project/views/js.py:105 msgid "Places of Google Maps" msgstr "" diff --git a/project/views/js.py b/project/views/js.py index 79710ff..e5ad30a 100644 --- a/project/views/js.py +++ b/project/views/js.py @@ -27,6 +27,23 @@ def js_check_org_short_name(): return jsonify(error) +@app.route("/js/check/organization/name", methods=["POST"]) +def js_check_org_name(): + csrf.protect() + + name = request.form["name"] + admin_unit_id = ( + int(request.form["admin_unit_id"]) if "admin_unit_id" in request.form else -1 + ) + organization = AdminUnit.query.filter(AdminUnit.name == name).first() + + if not organization or organization.id == admin_unit_id: + return jsonify(True) + + error = gettext("Name is already taken") + return jsonify(error) + + @app.route("/js/check/register/email", methods=["POST"]) def js_check_register_email(): csrf.protect() diff --git a/tests/views/test_js.py b/tests/views/test_js.py index 97a6628..4deab54 100644 --- a/tests/views/test_js.py +++ b/tests/views/test_js.py @@ -41,6 +41,45 @@ def test_js_check_org_short_name_exists(client, seeder, utils): assert response.json == "Der Kurzname ist bereits vergeben" +def test_js_check_org_name(client, seeder, utils): + seeder.create_user(admin=True) + utils.login() + + url = utils.get_url("admin_unit_create") + response = utils.get(url) + + with client: + url = utils.get_url("js_check_org_name") + response = utils.post_form_data( + url, + { + "name": "Meine Crew", + }, + ) + utils.assert_response_ok(response) + assert response.json + + +def test_js_check_org_name_exists(client, seeder, utils): + seeder.create_user(admin=True) + user_id = utils.login() + seeder.create_admin_unit(user_id, "Meine Crew") + + url = utils.get_url("admin_unit_create") + response = utils.get(url) + + with client: + url = utils.get_url("js_check_org_name") + response = utils.post_form_data( + url, + { + "name": "Meine Crew", + }, + ) + utils.assert_response_ok(response) + assert response.json == "Der Name ist bereits vergeben" + + def test_js_js_check_register_email(client, seeder, utils): url = utils.get_url("security.register") response = utils.get(url)