2018-02-20 11:22:17 +00:00
|
|
|
from flask import render_template, url_for
|
2016-05-18 14:23:49 +01:00
|
|
|
from flask_login import login_required
|
2016-05-11 09:43:55 +01:00
|
|
|
from werkzeug.utils import redirect
|
2018-02-20 11:22:17 +00:00
|
|
|
|
|
|
|
|
from app import provider_client
|
2016-05-11 09:43:55 +01:00
|
|
|
from app.main import main
|
|
|
|
|
from app.main.forms import ProviderForm
|
2018-02-27 16:45:20 +00:00
|
|
|
from app.utils import user_is_platform_admin
|
2016-05-11 09:43:55 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
@main.route("/providers")
|
|
|
|
|
@login_required
|
2018-02-27 16:45:20 +00:00
|
|
|
@user_is_platform_admin
|
2016-05-11 09:43:55 +01:00
|
|
|
def view_providers():
|
|
|
|
|
providers = provider_client.get_all_providers()['provider_details']
|
2017-04-25 11:10:59 +01:00
|
|
|
domestic_email_providers, domestic_sms_providers, intl_sms_providers = [], [], []
|
|
|
|
|
for provider in providers:
|
|
|
|
|
if provider['notification_type'] == 'sms':
|
|
|
|
|
domestic_sms_providers.append(provider)
|
2017-04-25 16:26:33 +01:00
|
|
|
if provider.get('supports_international', None):
|
2017-04-25 11:10:59 +01:00
|
|
|
intl_sms_providers.append(provider)
|
|
|
|
|
elif provider['notification_type'] == 'email':
|
|
|
|
|
domestic_email_providers.append(provider)
|
|
|
|
|
|
2017-01-17 15:21:05 +00:00
|
|
|
return render_template(
|
2017-03-02 22:53:51 +00:00
|
|
|
'views/providers/providers.html',
|
2017-04-25 11:10:59 +01:00
|
|
|
email_providers=domestic_email_providers,
|
|
|
|
|
domestic_sms_providers=domestic_sms_providers,
|
|
|
|
|
intl_sms_providers=intl_sms_providers
|
2017-01-17 15:21:05 +00:00
|
|
|
)
|
2016-05-11 09:43:55 +01:00
|
|
|
|
|
|
|
|
|
2017-03-02 22:53:51 +00:00
|
|
|
@main.route("/provider/<provider_id>/edit", methods=['GET', 'POST'])
|
2016-05-11 09:43:55 +01:00
|
|
|
@login_required
|
2018-02-27 16:45:20 +00:00
|
|
|
@user_is_platform_admin
|
2017-03-02 22:53:51 +00:00
|
|
|
def edit_provider(provider_id):
|
2016-05-11 09:43:55 +01:00
|
|
|
provider = provider_client.get_provider_by_id(provider_id)['provider_details']
|
|
|
|
|
form = ProviderForm(active=provider['active'], priority=provider['priority'])
|
|
|
|
|
|
|
|
|
|
if form.validate_on_submit():
|
|
|
|
|
provider_client.update_provider(provider_id, form.priority.data)
|
|
|
|
|
return redirect(url_for('.view_providers'))
|
|
|
|
|
|
2017-03-02 22:53:51 +00:00
|
|
|
return render_template('views/providers/edit-provider.html', form=form, provider=provider)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@main.route("/provider/<provider_id>")
|
|
|
|
|
@login_required
|
2018-02-27 16:45:20 +00:00
|
|
|
@user_is_platform_admin
|
2017-03-02 22:53:51 +00:00
|
|
|
def view_provider(provider_id):
|
|
|
|
|
versions = provider_client.get_provider_versions(provider_id)
|
|
|
|
|
return render_template('views/providers/provider.html', provider_versions=versions['data'])
|