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: - +## 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 %}