Merge pull request #149 from alphagov/add-manage-users

Populate manage users page with fake data
This commit is contained in:
Adam Shimali
2016-02-04 12:12:26 +00:00
3 changed files with 134 additions and 32 deletions

View File

@@ -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)

View File

@@ -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)

View File

@@ -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 %}