Add organisations pages to show orgs and create/edit them

This commit is contained in:
Ken Tsang
2018-02-08 12:19:21 +00:00
parent b11bfd49e3
commit f0e8661e34
6 changed files with 228 additions and 0 deletions

View File

@@ -30,6 +30,7 @@ from app.main.views import ( # noqa
letter_jobs,
email_branding,
conversation,
organisations,
notifications,
inbound_number
)

View File

@@ -665,6 +665,11 @@ class ServiceCreateEmailBranding(StripWhitespaceForm):
file = FileField_wtf('Upload a PNG logo', validators=[FileAllowed(['png'], 'PNG Images only!')])
class CreateOrUpdateOrganisation(StripWhitespaceForm):
name = StringField('Name', validators=[DataRequired()])
class LetterBranding(StripWhitespaceForm):
def __init__(self, choices=[], *args, **kwargs):

View File

@@ -0,0 +1,63 @@
from flask import redirect, render_template, url_for
from flask_login import login_required
from app import organisations_client
from app.main import main
from app.main.forms import CreateOrUpdateOrganisation
from app.utils import user_has_permissions
@main.route("/organisations", methods=['GET'])
@login_required
@user_has_permissions(admin_override=True)
def organisations():
orgs = organisations_client.get_organisations()
return render_template(
'views/organisations/organisations.html',
organisations=orgs
)
@main.route("/organisation/<org_id>/edit", methods=['GET', 'POST'])
@login_required
@user_has_permissions(admin_override=True)
def update_organisation(org_id):
org = organisations_client.get_organisation(org_id)
form = CreateOrUpdateOrganisation()
if form.validate_on_submit():
organisations_client.update_organisation(
org_id=org_id,
name=form.name.data
)
return redirect(url_for('.organisations'))
form.name.data = org['name']
return render_template(
'views/organisations/manage-organisation.html',
form=form,
organisation=org
)
@main.route("/organisations/create", methods=['GET', 'POST'])
@login_required
@user_has_permissions(admin_override=True)
def create_organisation():
form = CreateOrUpdateOrganisation()
if form.validate_on_submit():
organisations_client.create_organisation(
name=form.name.data,
)
return redirect(url_for('.organisations'))
return render_template(
'views/organisations/manage-organisation.html',
form=form
)