From ea6a5b6e7d748bc6f8b04957669ab9ebf50b55b2 Mon Sep 17 00:00:00 2001 From: Pea Tyczynska Date: Fri, 6 Jul 2018 11:10:14 +0100 Subject: [PATCH] find_users_by_email view loads a page with search form and is linked to --- app/main/__init__.py | 1 + app/main/views/find_users.py | 16 ++++++++ .../views/find-users/find-users-by-email.html | 40 +++++++++++++++++++ .../views/platform-admin/_base_template.html | 1 + tests/app/main/views/test_find_users.py | 24 +++++++++++ 5 files changed, 82 insertions(+) create mode 100644 app/main/views/find_users.py create mode 100644 app/templates/views/find-users/find-users-by-email.html create mode 100644 tests/app/main/views/test_find_users.py diff --git a/app/main/__init__.py b/app/main/__init__.py index 7510e236a..c42d86d65 100644 --- a/app/main/__init__.py +++ b/app/main/__init__.py @@ -26,6 +26,7 @@ from app.main.views import ( # noqa invites, feedback, providers, + find_users, platform_admin, letter_jobs, email_branding, diff --git a/app/main/views/find_users.py b/app/main/views/find_users.py new file mode 100644 index 000000000..80135d9b0 --- /dev/null +++ b/app/main/views/find_users.py @@ -0,0 +1,16 @@ +from flask import abort, render_template, request, url_for +from flask_login import login_required + +from app.main import main +from app.utils import user_is_platform_admin +from app.main.forms import SearchUsersForm + + +@main.route("/find-users-by-email", methods=['GET']) +@login_required +@user_is_platform_admin +def find_users_by_email(): + return render_template( + 'views/find-users/find-users-by-email.html', + form=SearchUsersForm(), + ) diff --git a/app/templates/views/find-users/find-users-by-email.html b/app/templates/views/find-users/find-users-by-email.html new file mode 100644 index 000000000..650b5cdde --- /dev/null +++ b/app/templates/views/find-users/find-users-by-email.html @@ -0,0 +1,40 @@ +{% extends "views/platform-admin/_base_template.html" %} +{% from "components/page-footer.html" import page_footer %} + +{% block per_page_title %} + Find users by e-mail +{% endblock %} + +{% block org_page_title %} + Find users by e-mail +{% endblock %} + +{% block platform_admin_content %} + +

+ Find users by e-mail +

+ +
+
+ {{ textbox( + form.search, + width='1-1', + label='Find users by e-mail' + ) }} +
+
+ + +
+
+ +
+ +
+ +{% endblock %} diff --git a/app/templates/views/platform-admin/_base_template.html b/app/templates/views/platform-admin/_base_template.html index 4434534f0..7ea7ce43c 100644 --- a/app/templates/views/platform-admin/_base_template.html +++ b/app/templates/views/platform-admin/_base_template.html @@ -20,6 +20,7 @@ ('Email branding', url_for('main.email_branding')), ('Letter jobs', url_for('main.letter_jobs')), ('Inbound SMS numbers', url_for('main.inbound_sms_admin')), + ('Find users by email', url_for('main.find_users_by_email')), ('Email Complaints', url_for('main.platform_admin_list_complaints')) ] %}
  • diff --git a/tests/app/main/views/test_find_users.py b/tests/app/main/views/test_find_users.py new file mode 100644 index 000000000..0f061a53e --- /dev/null +++ b/tests/app/main/views/test_find_users.py @@ -0,0 +1,24 @@ +import pytest +from flask import url_for +from lxml import html +from app.main.views.find_users import find_users_by_email + +from tests.conftest import mock_get_user + +def test_find_users_by_email_page_loads_correctly( + client, + platform_admin_user, + mocker +): + mock_get_user(mocker, user=platform_admin_user) + client.login(platform_admin_user) + + client.login(platform_admin_user) + response = client.get(url_for('main.find_users_by_email')) + + assert response.status_code == 200 + + document = html.fromstring(response.get_data(as_text=True)) + header = document.xpath('//h1')[0].text + assert "Find users by e-mail" in header + assert len(document.xpath("//input[@type='search']")) > 0