diff --git a/README.md b/README.md
index 91109d3cd..6e0f3b741 100644
--- a/README.md
+++ b/README.md
@@ -3,24 +3,18 @@
# notifications-admin
+
Application to handle the admin functions of the notifications application.
-### Features of this application:
-
- - Register users
-
- Register services
-
- Download CSV for an email or sms batch
-
- Show history of notifications
-
- Reports
-
+## Features of this application
-### Create a virtual environment for this project
-```shell
- mkvirtualenv -p /usr/local/bin/python3 notifications-admin
-```
+ - Register users
+ - Register services
+ - Download CSV for an email or SMS batch
+ - Show history of notifications
+ - Reports
-
-### Building the frontend
+## First-time setup
You need [Node](http://nodejs.org/) which will also get you [NPM](npmjs.org),
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
```
+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
in a separate terminal from the app
```shell
npm run watch
```
-### Running the application:
+## Running the application
+
```shell
- pip install -r requirements.txt
- ./scripts/bootstrap.sh
+ workon notifications-admin
./scripts/run_app.sh
```
-Note: the ./scripts/bootstrap.sh script only needs to be run the first time to
-create the database.
+Then visit [localhost:6012](localhost:6012)
-URL to test app:
-
- localhost:6012/helloworld
-
-
-### Domain model
+## Domain model
All the domain models are defined in the
[models.py](https://github.com/alphagov/notifications-admin/blob/master/app/models.py)
diff --git a/app/main/views/index.py b/app/main/views/index.py
index 941cc72ae..151ee4e80 100644
--- a/app/main/views/index.py
+++ b/app/main/views/index.py
@@ -39,4 +39,58 @@ def check_email(service_id):
@main.route("/services//manage-users")
@login_required
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)
diff --git a/app/templates/views/manage-users.html b/app/templates/views/manage-users.html
index 1a8e1a5ea..a1771222c 100644
--- a/app/templates/views/manage-users.html
+++ b/app/templates/views/manage-users.html
@@ -1,4 +1,5 @@
{% extends "withnav_template.html" %}
+{% from "components/table.html" import list_table, row, field %}
{% from "components/page-footer.html" import page_footer %}
{% block page_title %}
@@ -7,13 +8,58 @@ GOV.UK Notify | Manage users
{% block maincolumn_content %}
- Manage users
+Manage users
- Here's where you can add or remove users of a service.
+
+ Invite users
+
- {{ page_footer(
- back_link = url_for('.service_dashboard', service_id=service_id),
- back_link_text = 'Back to dashboard'
- ) }}
+{% call(item) list_table(
+ users,
+ 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') %}
+ Change
+ {% 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') %}
+ Change
+ {% endcall %}
+{% endcall %}
{% endblock %}