diff --git a/app/__init__.py b/app/__init__.py index e28175aec..4346301da 100644 --- a/app/__init__.py +++ b/app/__init__.py @@ -105,7 +105,6 @@ from app.notify_client.performance_dashboard_api_client import ( performance_dashboard_api_client, ) from app.notify_client.platform_stats_api_client import platform_stats_api_client -from app.notify_client.provider_client import provider_client from app.notify_client.service_api_client import service_api_client from app.notify_client.status_api_client import status_api_client from app.notify_client.template_folder_api_client import template_folder_api_client @@ -191,7 +190,6 @@ def create_app(application): organizations_client, performance_dashboard_api_client, platform_stats_api_client, - provider_client, service_api_client, status_api_client, template_folder_api_client, diff --git a/app/main/__init__.py b/app/main/__init__.py index e712f4dfd..325a82e93 100644 --- a/app/main/__init__.py +++ b/app/main/__init__.py @@ -26,7 +26,6 @@ from app.main.views import ( # noqa isort:skip performance, platform_admin, pricing, - providers, register, security_policy, send, diff --git a/app/main/forms.py b/app/main/forms.py index b811e8c83..dd77a8f1a 100644 --- a/app/main/forms.py +++ b/app/main/forms.py @@ -1440,52 +1440,6 @@ class EstimateUsageForm(StripWhitespaceForm): return super().validate(*args, **kwargs) -class AdminProviderRatioForm(Form): - def __init__(self, providers): - self._providers = providers - - # hack: https://github.com/wtforms/wtforms/issues/736 - self._unbound_fields = [ - ( - provider["identifier"], - GovukIntegerField( - f"{provider['display_name']} (%)", - validators=[ - validators.NumberRange( - min=0, max=100, message="Must be between 0 and 100" - ) - ], - param_extensions={ - "classes": "width-8", - }, - ), - ) - for provider in providers - ] - - super().__init__( - data={ - provider["identifier"]: provider["priority"] for provider in providers - } - ) - - def validate(self, extra_validators=None): - if not super().validate(extra_validators): - return False - - total = sum( - getattr(self, provider["identifier"]).data for provider in self._providers - ) - - if total == 100: - return True - - for provider in self._providers: - getattr(self, provider["identifier"]).errors += ["Must add up to 100%"] - - return False - - class ServiceContactDetailsForm(StripWhitespaceForm): contact_details_type = RadioField( "Type of contact details", diff --git a/app/main/views/providers.py b/app/main/views/providers.py deleted file mode 100644 index fb4b024ee..000000000 --- a/app/main/views/providers.py +++ /dev/null @@ -1,79 +0,0 @@ -from datetime import datetime - -from flask import render_template, url_for -from werkzeug.utils import redirect - -from app import provider_client -from app.main import main -from app.main.forms import AdminProviderRatioForm -from app.utils.user import user_is_platform_admin - -PROVIDER_PRIORITY_MEANING_SWITCHOVER = datetime(2019, 11, 29, 11, 0).isoformat() - - -@main.route("/providers") -@user_is_platform_admin -def view_providers(): - providers = provider_client.get_all_providers()["provider_details"] - domestic_email_providers, domestic_sms_providers, intl_sms_providers = [], [], [] - for provider in providers: - if provider["notification_type"] == "sms": - domestic_sms_providers.append(provider) - if provider.get("supports_international", None): - intl_sms_providers.append(provider) - elif provider["notification_type"] == "email": - domestic_email_providers.append(provider) - - add_monthly_traffic(domestic_sms_providers) - - return render_template( - "views/providers/providers.html", - email_providers=domestic_email_providers, - domestic_sms_providers=domestic_sms_providers, - intl_sms_providers=intl_sms_providers, - ) - - -def add_monthly_traffic(domestic_sms_providers): - total_sms_sent = sum( - provider["current_month_billable_sms"] for provider in domestic_sms_providers - ) - - for provider in domestic_sms_providers: - percentage = ( - (provider["current_month_billable_sms"] / total_sms_sent * 100) - if total_sms_sent - else 0 - ) - provider["monthly_traffic"] = round(percentage) - - -@main.route("/provider/edit-sms-provider-ratio", methods=["GET", "POST"]) -@user_is_platform_admin -def edit_sms_provider_ratio(): - providers = [ - provider - for provider in provider_client.get_all_providers()["provider_details"] - if provider["notification_type"] == "sms" and provider["active"] - ] - - form = AdminProviderRatioForm(providers) - - if form.validate_on_submit(): - for provider in providers: - field = getattr(form, provider["identifier"]) - provider_client.update_provider(provider["id"], field.data) - return redirect(url_for(".view_providers")) - - return render_template( - "views/providers/edit-sms-provider-ratio.html", form=form, providers=providers - ) - - -@main.route("/provider/") -@user_is_platform_admin -def view_provider(provider_id): - versions = provider_client.get_provider_versions(provider_id) - return render_template( - "views/providers/provider.html", provider_versions=versions["data"] - ) diff --git a/app/navigation.py b/app/navigation.py index 99e88fdb4..d5af628ab 100644 --- a/app/navigation.py +++ b/app/navigation.py @@ -165,7 +165,6 @@ class HeaderNavigation(Navigation): "change_user_auth", "clear_cache", "create_email_branding", - "edit_sms_provider_ratio", "email_branding", "find_services_by_name", "find_users_by_email", @@ -186,8 +185,6 @@ class HeaderNavigation(Navigation): "trial_services", "update_email_branding", "user_information", - "view_provider", - "view_providers", }, "sign-in": { "revalidate_email_sent", diff --git a/app/notify_client/provider_client.py b/app/notify_client/provider_client.py deleted file mode 100644 index f12fc3d47..000000000 --- a/app/notify_client/provider_client.py +++ /dev/null @@ -1,20 +0,0 @@ -from app.notify_client import NotifyAdminAPIClient, _attach_current_user - - -class ProviderClient(NotifyAdminAPIClient): - def get_all_providers(self): - return self.get(url="/provider-details") - - def get_provider_by_id(self, provider_id): - return self.get(url="/provider-details/{}".format(provider_id)) - - def get_provider_versions(self, provider_id): - return self.get(url="/provider-details/{}/versions".format(provider_id)) - - def update_provider(self, provider_id, priority): - data = {"priority": priority} - data = _attach_current_user(data) - return self.post(url="/provider-details/{}".format(provider_id), data=data) - - -provider_client = ProviderClient() diff --git a/app/templates/views/platform-admin/_base_template.html b/app/templates/views/platform-admin/_base_template.html index 7a54c8ff3..777d7b9bd 100644 --- a/app/templates/views/platform-admin/_base_template.html +++ b/app/templates/views/platform-admin/_base_template.html @@ -19,12 +19,12 @@