mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-09-09 06:53:11 -04:00
find_users_by_email view loads a page with search form and is linked to
This commit is contained in:
@@ -26,6 +26,7 @@ from app.main.views import ( # noqa
|
|||||||
invites,
|
invites,
|
||||||
feedback,
|
feedback,
|
||||||
providers,
|
providers,
|
||||||
|
find_users,
|
||||||
platform_admin,
|
platform_admin,
|
||||||
letter_jobs,
|
letter_jobs,
|
||||||
email_branding,
|
email_branding,
|
||||||
|
|||||||
16
app/main/views/find_users.py
Normal file
16
app/main/views/find_users.py
Normal file
@@ -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(),
|
||||||
|
)
|
||||||
40
app/templates/views/find-users/find-users-by-email.html
Normal file
40
app/templates/views/find-users/find-users-by-email.html
Normal file
@@ -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 %}
|
||||||
|
|
||||||
|
<h1 class="heading-large">
|
||||||
|
Find users by e-mail
|
||||||
|
</h1>
|
||||||
|
|
||||||
|
<form
|
||||||
|
method="post"
|
||||||
|
action="{{ url_for('.find_users_by_email') }}"
|
||||||
|
class="grid-row"
|
||||||
|
>
|
||||||
|
<div class="column-three-quarters">
|
||||||
|
{{ textbox(
|
||||||
|
form.search,
|
||||||
|
width='1-1',
|
||||||
|
label='Find users by e-mail'
|
||||||
|
) }}
|
||||||
|
</div>
|
||||||
|
<div class="column-one-quarter align-button-with-textbox">
|
||||||
|
<input type="hidden" name="csrf_token" value="{{ csrf_token() }}">
|
||||||
|
<button type="submit" class="button">Search</button>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
|
||||||
|
<form id="search-form" method="post">
|
||||||
|
<input type="hidden" name="csrf_token" value="{{ csrf_token() }}">
|
||||||
|
</form>
|
||||||
|
|
||||||
|
{% endblock %}
|
||||||
@@ -20,6 +20,7 @@
|
|||||||
('Email branding', url_for('main.email_branding')),
|
('Email branding', url_for('main.email_branding')),
|
||||||
('Letter jobs', url_for('main.letter_jobs')),
|
('Letter jobs', url_for('main.letter_jobs')),
|
||||||
('Inbound SMS numbers', url_for('main.inbound_sms_admin')),
|
('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'))
|
('Email Complaints', url_for('main.platform_admin_list_complaints'))
|
||||||
] %}
|
] %}
|
||||||
<li>
|
<li>
|
||||||
|
|||||||
24
tests/app/main/views/test_find_users.py
Normal file
24
tests/app/main/views/test_find_users.py
Normal file
@@ -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
|
||||||
Reference in New Issue
Block a user