mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-02-05 02:42:26 -05:00
Merge pull request #149 from alphagov/add-manage-users
Populate manage users page with fake data
This commit is contained in:
52
README.md
52
README.md
@@ -3,24 +3,18 @@
|
|||||||
|
|
||||||
|
|
||||||
# notifications-admin
|
# notifications-admin
|
||||||
|
|
||||||
Application to handle the admin functions of the notifications application.
|
Application to handle the admin functions of the notifications application.
|
||||||
|
|
||||||
### Features of this application:
|
## Features of this application
|
||||||
<ul>
|
|
||||||
<li>Register users
|
|
||||||
<li>Register services
|
|
||||||
<li>Download CSV for an email or sms batch
|
|
||||||
<li>Show history of notifications
|
|
||||||
<li>Reports
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
### Create a virtual environment for this project
|
- Register users
|
||||||
```shell
|
- Register services
|
||||||
mkvirtualenv -p /usr/local/bin/python3 notifications-admin
|
- Download CSV for an email or SMS batch
|
||||||
```
|
- Show history of notifications
|
||||||
|
- Reports
|
||||||
|
|
||||||
|
## First-time setup
|
||||||
### Building the frontend
|
|
||||||
|
|
||||||
You need [Node](http://nodejs.org/) which will also get you [NPM](npmjs.org),
|
You need [Node](http://nodejs.org/) which will also get you [NPM](npmjs.org),
|
||||||
Node's package management tool.
|
Node's package management tool.
|
||||||
@@ -43,28 +37,36 @@ The frontend dependencies are managed using NPM and Bower. To install or update
|
|||||||
npm run build
|
npm run build
|
||||||
```
|
```
|
||||||
|
|
||||||
|
The app runs within a virtual environment. To [install virtualenv](https://virtualenv.readthedocs.org/en/latest/installation.html), run
|
||||||
|
```shell
|
||||||
|
[sudo] pip install virtualenv
|
||||||
|
```
|
||||||
|
|
||||||
|
To make a virtualenv for this app, run
|
||||||
|
```shell
|
||||||
|
mkvirtualenv -p /usr/local/bin/python3 notifications-admin
|
||||||
|
pip install -r requirements.txt
|
||||||
|
./scripts/bootstrap.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
## Building the frontend
|
||||||
|
|
||||||
If you want the front end assets to re-compile on changes, leave this running
|
If you want the front end assets to re-compile on changes, leave this running
|
||||||
in a separate terminal from the app
|
in a separate terminal from the app
|
||||||
```shell
|
```shell
|
||||||
npm run watch
|
npm run watch
|
||||||
```
|
```
|
||||||
|
|
||||||
### Running the application:
|
## Running the application
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
pip install -r requirements.txt
|
workon notifications-admin
|
||||||
./scripts/bootstrap.sh
|
|
||||||
./scripts/run_app.sh
|
./scripts/run_app.sh
|
||||||
```
|
```
|
||||||
|
|
||||||
Note: the ./scripts/bootstrap.sh script only needs to be run the first time to
|
Then visit [localhost:6012](localhost:6012)
|
||||||
create the database.
|
|
||||||
|
|
||||||
URL to test app:
|
## Domain model
|
||||||
|
|
||||||
localhost:6012/helloworld
|
|
||||||
|
|
||||||
|
|
||||||
### Domain model
|
|
||||||
|
|
||||||
All the domain models are defined in the
|
All the domain models are defined in the
|
||||||
[models.py](https://github.com/alphagov/notifications-admin/blob/master/app/models.py)
|
[models.py](https://github.com/alphagov/notifications-admin/blob/master/app/models.py)
|
||||||
|
|||||||
@@ -39,4 +39,58 @@ def check_email(service_id):
|
|||||||
@main.route("/services/<service_id>/manage-users")
|
@main.route("/services/<service_id>/manage-users")
|
||||||
@login_required
|
@login_required
|
||||||
def manage_users(service_id):
|
def manage_users(service_id):
|
||||||
return render_template('views/manage-users.html', service_id=service_id)
|
users = [
|
||||||
|
{
|
||||||
|
'name': 'Henry Hadlow',
|
||||||
|
'permission_send_messages': True,
|
||||||
|
'permission_manage_service': False,
|
||||||
|
'permission_manage_api_keys': False
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
'name': 'Pete Herlihy',
|
||||||
|
'permission_send_messages': False,
|
||||||
|
'permission_manage_service': False,
|
||||||
|
'permission_manage_api_keys': False,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'name': 'Chris Hill-Scott',
|
||||||
|
'permission_send_messages': True,
|
||||||
|
'permission_manage_service': True,
|
||||||
|
'permission_manage_api_keys': True
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'name': 'Martyn Inglis',
|
||||||
|
'permission_send_messages': True,
|
||||||
|
'permission_manage_service': True,
|
||||||
|
'permission_manage_api_keys': True
|
||||||
|
}
|
||||||
|
]
|
||||||
|
invited_users = [
|
||||||
|
{
|
||||||
|
'email_localpart': 'caley.smolska',
|
||||||
|
'permission_send_messages': True,
|
||||||
|
'permission_manage_service': False,
|
||||||
|
'permission_manage_api_keys': False
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
'email_localpart': 'ash.stephens',
|
||||||
|
'permission_send_messages': False,
|
||||||
|
'permission_manage_service': False,
|
||||||
|
'permission_manage_api_keys': False
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'email_localpart': 'nicholas.staples',
|
||||||
|
'permission_send_messages': True,
|
||||||
|
'permission_manage_service': True,
|
||||||
|
'permission_manage_api_keys': True
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'email_localpart': 'adam.shimali',
|
||||||
|
'permission_send_messages': True,
|
||||||
|
'permission_manage_service': True,
|
||||||
|
'permission_manage_api_keys': True
|
||||||
|
}
|
||||||
|
]
|
||||||
|
return render_template('views/manage-users.html', service_id=service_id, users=users, invited_users=invited_users)
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
{% extends "withnav_template.html" %}
|
{% extends "withnav_template.html" %}
|
||||||
|
{% from "components/table.html" import list_table, row, field %}
|
||||||
{% from "components/page-footer.html" import page_footer %}
|
{% from "components/page-footer.html" import page_footer %}
|
||||||
|
|
||||||
{% block page_title %}
|
{% block page_title %}
|
||||||
@@ -7,13 +8,58 @@ GOV.UK Notify | Manage users
|
|||||||
|
|
||||||
{% block maincolumn_content %}
|
{% block maincolumn_content %}
|
||||||
|
|
||||||
<h1 class="heading-large">Manage users</h1>
|
<h1 class="heading-large">Manage users</h1>
|
||||||
|
|
||||||
<p>Here's where you can add or remove users of a service.</p>
|
<p>
|
||||||
|
<a href="#" class="button">Invite users</a>
|
||||||
|
</p>
|
||||||
|
|
||||||
{{ page_footer(
|
{% call(item) list_table(
|
||||||
back_link = url_for('.service_dashboard', service_id=service_id),
|
users,
|
||||||
back_link_text = 'Back to dashboard'
|
caption='Active users',
|
||||||
) }}
|
field_headings=['Name', 'Send messages', 'Manage Service', 'Manage API keys', 'Link to change'],
|
||||||
|
field_headings_visible=True,
|
||||||
|
caption_visible=True
|
||||||
|
) %}
|
||||||
|
{% call field() %}
|
||||||
|
{{ item.name }}
|
||||||
|
{% endcall %}
|
||||||
|
{% call field() %}
|
||||||
|
{{ "✔" if item.permission_send_messages else "❌" }}
|
||||||
|
{% endcall %}
|
||||||
|
{% call field() %}
|
||||||
|
{{ "✔" if item.permission_manage_service else "❌" }}
|
||||||
|
{% endcall %}
|
||||||
|
{% call field() %}
|
||||||
|
{{ "✔" if item.permission_manage_api_keys else "❌" }}
|
||||||
|
{% endcall %}
|
||||||
|
{% call field(align='right') %}
|
||||||
|
<a href="#">Change</a>
|
||||||
|
{% endcall %}
|
||||||
|
{% endcall %}
|
||||||
|
|
||||||
|
{% call(item) list_table(
|
||||||
|
invited_users,
|
||||||
|
caption='Invited users',
|
||||||
|
field_headings=['Name', 'Send messages', 'Manage Service', 'Manage API keys', 'Link to change'],
|
||||||
|
field_headings_visible=True,
|
||||||
|
caption_visible=True
|
||||||
|
) %}
|
||||||
|
{% call field() %}
|
||||||
|
{{ item.email_localpart }}
|
||||||
|
{% endcall %}
|
||||||
|
{% call field() %}
|
||||||
|
{{ "✔" if item.permission_send_messages else "❌" }}
|
||||||
|
{% endcall %}
|
||||||
|
{% call field() %}
|
||||||
|
{{ "✔" if item.permission_manage_service else "❌" }}
|
||||||
|
{% endcall %}
|
||||||
|
{% call field() %}
|
||||||
|
{{ "✔" if item.permission_manage_api_keys else "❌" }}
|
||||||
|
{% endcall %}
|
||||||
|
{% call field(align='right') %}
|
||||||
|
<a href="#">Change</a>
|
||||||
|
{% endcall %}
|
||||||
|
{% endcall %}
|
||||||
|
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|||||||
Reference in New Issue
Block a user