blunt rename of org (#620)

This commit is contained in:
Steven Reilly
2023-07-12 12:09:44 -04:00
committed by GitHub
parent 5fe81bc040
commit 13d0e46b52
107 changed files with 1471 additions and 1471 deletions

View File

@@ -22,7 +22,7 @@ from app.main.views import ( # noqa isort:skip
manage_users,
new_password,
notifications,
organisations,
organizations,
performance,
platform_admin,
pricing,

View File

@@ -65,7 +65,7 @@ from app.main.validators import (
ValidGovEmail,
)
from app.models.feedback import PROBLEM_TICKET_TYPE, QUESTION_TICKET_TYPE
from app.models.organisation import Organisation
from app.models.organization import Organization
from app.utils import branding, merge_jsonlike
from app.utils.user_permissions import all_ui_permissions, permission_options
@@ -627,7 +627,7 @@ class RegisterUserFromInviteForm(RegisterUserForm):
class RegisterUserFromOrgInviteForm(StripWhitespaceForm):
def __init__(self, invited_org_user):
super().__init__(
organisation=invited_org_user.organisation,
organization=invited_org_user.organization,
email_address=invited_org_user.email_address,
)
@@ -638,7 +638,7 @@ class RegisterUserFromOrgInviteForm(StripWhitespaceForm):
mobile_number = InternationalPhoneNumber('Mobile number', validators=[DataRequired(message='Cannot be empty')])
password = password()
organisation = HiddenField('organisation')
organization = HiddenField('organization')
email_address = HiddenField('email_address')
auth_type = HiddenField('auth_type', validators=[DataRequired()])
@@ -964,7 +964,7 @@ class OnOffField(GovukRadiosField):
)
class OrganisationTypeField(GovukRadiosField):
class OrganizationTypeField(GovukRadiosField):
def __init__(
self,
*args,
@@ -975,7 +975,7 @@ class OrganisationTypeField(GovukRadiosField):
super().__init__(
*args,
choices=[
(value, label) for value, label in Organisation.TYPE_LABELS.items()
(value, label) for value, label in Organization.TYPE_LABELS.items()
if not include_only or value in include_only
],
thing='the type of organization',
@@ -1130,7 +1130,7 @@ class RenameServiceForm(StripWhitespaceForm):
])
class RenameOrganisationForm(StripWhitespaceForm):
class RenameOrganizationForm(StripWhitespaceForm):
name = GovukTextInputField(
u'Organization name',
validators=[
@@ -1140,11 +1140,11 @@ class RenameOrganisationForm(StripWhitespaceForm):
])
class OrganisationOrganisationTypeForm(StripWhitespaceForm):
organisation_type = OrganisationTypeField('What type of organization is this?')
class OrganizationOrganizationTypeForm(StripWhitespaceForm):
organization_type = OrganizationTypeField('What type of organization is this?')
class AdminOrganisationDomainsForm(StripWhitespaceForm):
class AdminOrganizationDomainsForm(StripWhitespaceForm):
def populate(self, domains_list):
for index, value in enumerate(domains_list):
@@ -1172,12 +1172,12 @@ class CreateServiceForm(StripWhitespaceForm):
MustContainAlphanumericCharacters(),
Length(max=255, message='Service name must be 255 characters or fewer')
])
organisation_type = OrganisationTypeField('Where is this service run?')
organization_type = OrganizationTypeField('Where is this service run?')
class AdminNewOrganisationForm(
RenameOrganisationForm,
OrganisationOrganisationTypeForm
class AdminNewOrganizationForm(
RenameOrganizationForm,
OrganizationOrganizationTypeForm
):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
@@ -1834,13 +1834,13 @@ class SetTemplateSenderForm(StripWhitespaceForm):
sender = GovukRadiosField()
class AdminSetOrganisationForm(StripWhitespaceForm):
class AdminSetOrganizationForm(StripWhitespaceForm):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.organisations.choices = kwargs['choices']
self.organizations.choices = kwargs['choices']
organisations = GovukRadiosField(
organizations = GovukRadiosField(
'Select an organization',
validators=[
DataRequired()
@@ -2059,7 +2059,7 @@ class AdminClearCacheForm(StripWhitespaceForm):
raise ValidationError('Select at least one option')
class AdminOrganisationGoLiveNotesForm(StripWhitespaceForm):
class AdminOrganizationGoLiveNotesForm(StripWhitespaceForm):
request_to_go_live_notes = TextAreaField(
'Go live notes',
filters=[lambda x: x or None],

View File

@@ -9,12 +9,12 @@ from app.main.forms import CreateServiceForm
from app.utils.user import user_is_gov_user, user_is_logged_in
def _create_service(service_name, organisation_type, email_from, form):
def _create_service(service_name, organization_type, email_from, form):
try:
service_id = service_api_client.create_service(
service_name=service_name,
organisation_type=organisation_type,
organization_type=organization_type,
message_limit=current_app.config['DEFAULT_SERVICE_LIMIT'],
restricted=True,
user_id=session['user_id'],
@@ -45,11 +45,11 @@ def _create_example_template(service_id):
@user_is_logged_in
@user_is_gov_user
def add_service():
default_organisation_type = current_user.default_organisation_type
default_organization_type = current_user.default_organization_type
form = CreateServiceForm(
# avoid setting a default for now; the US gov email addresses aren't as useful as the UK
# ones for guessing the org type
organisation_type=None
organization_type=None
)
if form.validate_on_submit():
@@ -58,12 +58,12 @@ def add_service():
service_id, error = _create_service(
service_name,
default_organisation_type or form.organisation_type.data,
default_organization_type or form.organization_type.data,
email_from,
form,
)
if error:
return _render_add_service_page(form, default_organisation_type)
return _render_add_service_page(form, default_organization_type)
if len(service_api_client.get_active_services({'user_id': session['user_id']}).get('data', [])) > 1:
return redirect(url_for('main.service_dashboard', service_id=service_id))
@@ -75,23 +75,23 @@ def add_service():
template_id=example_sms_template['data']['id']
))
else:
return _render_add_service_page(form, default_organisation_type)
return _render_add_service_page(form, default_organization_type)
def _render_add_service_page(form, default_organisation_type):
def _render_add_service_page(form, default_organization_type):
heading = 'About your service'
if default_organisation_type == 'local':
if default_organization_type == 'local':
return render_template(
'views/add-service-local.html',
form=form,
heading=heading,
default_organisation_type=default_organisation_type,
default_organization_type=default_organization_type,
)
return render_template(
'views/add-service.html',
form=form,
heading=heading,
default_organisation_type=default_organisation_type,
default_organization_type=default_organization_type,
)

View File

@@ -3,7 +3,7 @@ from flask_login import current_user
from app import status_api_client
from app.main import main
from app.models.organisation import AllOrganisations
from app.models.organization import AllOrganizations
from app.utils import PermanentRedirect
from app.utils.user import user_is_logged_in
@@ -24,8 +24,8 @@ def choose_account():
org_count, live_service_count = None, None
if current_user.platform_admin:
org_count, live_service_count = (
len(AllOrganisations()),
status_api_client.get_count_of_live_services_and_organisations()['services'],
len(AllOrganizations()),
status_api_client.get_count_of_live_services_and_organizations()['services'],
)
return render_template(
'views/choose-account.html',
@@ -45,14 +45,14 @@ def show_accounts_or_dashboard():
if service_id and (current_user.belongs_to_service(service_id) or current_user.platform_admin):
return redirect(url_for('.service_dashboard', service_id=service_id))
organisation_id = session.get('organisation_id')
if organisation_id and (current_user.belongs_to_organisation(organisation_id) or current_user.platform_admin):
return redirect(url_for('.organisation_dashboard', org_id=organisation_id))
organization_id = session.get('organization_id')
if organization_id and (current_user.belongs_to_organization(organization_id) or current_user.platform_admin):
return redirect(url_for('.organization_dashboard', org_id=organization_id))
if len(current_user.service_ids) == 1 and not current_user.organisation_ids:
if len(current_user.service_ids) == 1 and not current_user.organization_ids:
return redirect(url_for('.service_dashboard', service_id=current_user.service_ids[0]))
if len(current_user.organisation_ids) == 1 and not current_user.trial_mode_services:
return redirect(url_for('.organisation_dashboard', org_id=current_user.organisation_ids[0]))
if len(current_user.organization_ids) == 1 and not current_user.trial_mode_services:
return redirect(url_for('.organization_dashboard', org_id=current_user.organization_ids[0]))
return redirect(url_for('.choose_account'))

View File

@@ -127,8 +127,8 @@ def feedback(ticket_type):
p1=out_of_hours_emergency,
user_name=user_name,
user_email=user_email,
org_id=current_service.organisation_id if current_service else None,
org_type=current_service.organisation_type if current_service else None,
org_id=current_service.organization_id if current_service else None,
org_type=current_service.organization_type if current_service else None,
service_id=current_service.id if current_service else None,
)
zendesk_client.send_ticket_to_zendesk(ticket)

View File

@@ -30,7 +30,7 @@ def index():
return render_template(
'views/signedout.html',
sms_rate=CURRENT_SMS_RATE,
counts=status_api_client.get_count_of_live_services_and_organisations(),
counts=status_api_client.get_count_of_live_services_and_organizations(),
)

View File

@@ -3,12 +3,12 @@ from flask_login import current_user
from markupsafe import Markup
from app.main import main
from app.models.organisation import Organisation
from app.models.organization import Organization
from app.models.service import Service
from app.models.user import (
InvitedOrgUser,
InvitedUser,
OrganisationUsers,
OrganizationUsers,
User,
Users,
)
@@ -74,7 +74,7 @@ def accept_invite(token):
return redirect(url_for('main.register_from_invite'))
@main.route("/organisation-invitation/<token>")
@main.route("/organization-invitation/<token>")
def accept_org_invite(token):
invited_org_user = InvitedOrgUser.from_token(token)
@@ -93,25 +93,25 @@ def accept_org_invite(token):
abort(403)
if invited_org_user.status == 'cancelled':
organisation = Organisation.from_id(invited_org_user.organisation)
organization = Organization.from_id(invited_org_user.organization)
return render_template('views/cancelled-invitation.html',
from_user=invited_org_user.invited_by.name,
organisation_name=organisation.name)
organization_name=organization.name)
if invited_org_user.status == 'accepted':
session.pop('invited_org_user_id', None)
return redirect(url_for('main.organisation_dashboard', org_id=invited_org_user.organisation))
return redirect(url_for('main.organization_dashboard', org_id=invited_org_user.organization))
session['invited_org_user_id'] = invited_org_user.id
existing_user = User.from_email_address_or_none(invited_org_user.email_address)
organisation_users = OrganisationUsers(invited_org_user.organisation)
organization_users = OrganizationUsers(invited_org_user.organization)
if existing_user:
existing_user.update_email_access_validated_at()
invited_org_user.accept_invite()
if existing_user not in organisation_users:
existing_user.add_to_organisation(organisation_id=invited_org_user.organisation)
return redirect(url_for('main.organisation_dashboard', org_id=invited_org_user.organisation))
if existing_user not in organization_users:
existing_user.add_to_organization(organization_id=invited_org_user.organization)
return redirect(url_for('main.organization_dashboard', org_id=invited_org_user.organization))
else:
return redirect(url_for('main.register_from_org_invite'))

View File

@@ -71,9 +71,9 @@ def invite_user(service_id, user_id=None):
'views/user-already-invited.html',
user_to_invite=user_to_invite,
)
if not user_to_invite.default_organisation:
if not user_to_invite.default_organization:
abort(403)
if user_to_invite.default_organisation.id != current_service.organisation_id:
if user_to_invite.default_organization.id != current_service.organization_id:
abort(403)
form.email_address.data = user_to_invite.email_address
else:

View File

@@ -7,23 +7,23 @@ from flask_login import current_user
from notifications_python_client.errors import HTTPError
from app import (
current_organisation,
current_organization,
email_branding_client,
org_invite_api_client,
organisations_client,
organizations_client,
)
from app.main import main
from app.main.forms import (
AdminBillingDetailsForm,
AdminNewOrganisationForm,
AdminNewOrganizationForm,
AdminNotesForm,
AdminOrganisationDomainsForm,
AdminOrganisationGoLiveNotesForm,
AdminOrganizationDomainsForm,
AdminOrganizationGoLiveNotesForm,
AdminPreviewBrandingForm,
AdminSetEmailBrandingForm,
InviteOrgUserForm,
OrganisationOrganisationTypeForm,
RenameOrganisationForm,
OrganizationOrganizationTypeForm,
RenameOrganizationForm,
SearchByNameForm,
SearchUsersForm,
)
@@ -32,32 +32,32 @@ from app.main.views.dashboard import (
requested_and_current_financial_year,
)
from app.main.views.service_settings import get_branding_as_value_and_label
from app.models.organisation import AllOrganisations, Organisation
from app.models.organization import AllOrganizations, Organization
from app.models.user import InvitedOrgUser, User
from app.utils.csv import Spreadsheet
from app.utils.user import user_has_permissions, user_is_platform_admin
@main.route("/organisations", methods=['GET'])
@main.route("/organizations", methods=['GET'])
@user_is_platform_admin
def organisations():
def organizations():
return render_template(
'views/organisations/index.html',
organisations=AllOrganisations(),
'views/organizations/index.html',
organizations=AllOrganizations(),
search_form=SearchByNameForm(),
)
@main.route("/organisations/add", methods=['GET', 'POST'])
@main.route("/organizations/add", methods=['GET', 'POST'])
@user_is_platform_admin
def add_organisation():
form = AdminNewOrganisationForm()
def add_organization():
form = AdminNewOrganizationForm()
if form.validate_on_submit():
try:
return redirect(url_for(
'.organisation_settings',
org_id=Organisation.create_from_form(form).id,
'.organization_settings',
org_id=Organization.create_from_form(form).id,
))
except HTTPError as e:
msg = 'Organization name already exists'
@@ -67,23 +67,23 @@ def add_organisation():
raise e
return render_template(
'views/organisations/add-organisation.html',
'views/organizations/add-organization.html',
form=form
)
@main.route("/organisations/<uuid:org_id>", methods=['GET'])
@main.route("/organizations/<uuid:org_id>", methods=['GET'])
@user_has_permissions()
def organisation_dashboard(org_id):
def organization_dashboard(org_id):
year, current_financial_year = requested_and_current_financial_year(request)
services = current_organisation.services_and_usage(
services = current_organization.services_and_usage(
financial_year=year
)['services']
return render_template(
'views/organisations/organisation/index.html',
'views/organizations/organization/index.html',
services=services,
years=get_tuples_of_financial_years(
partial(url_for, '.organisation_dashboard', org_id=current_organisation.id),
partial(url_for, '.organization_dashboard', org_id=current_organization.id),
start=current_financial_year - 2,
end=current_financial_year,
),
@@ -94,18 +94,18 @@ def organisation_dashboard(org_id):
for key in ('emails_sent', 'sms_cost')
},
download_link=url_for(
'.download_organisation_usage_report',
'.download_organization_usage_report',
org_id=org_id,
selected_year=year
)
)
@main.route("/organisations/<uuid:org_id>/download-usage-report.csv", methods=['GET'])
@main.route("/organizations/<uuid:org_id>/download-usage-report.csv", methods=['GET'])
@user_has_permissions()
def download_organisation_usage_report(org_id):
def download_organization_usage_report(org_id):
selected_year = request.args.get('selected_year')
services_usage = current_organisation.services_and_usage(
services_usage = current_organization.services_and_usage(
financial_year=selected_year
)['services']
@@ -135,36 +135,36 @@ def download_organisation_usage_report(org_id):
'Content-Type': 'text/csv; charset=utf-8',
'Content-Disposition': (
'inline;'
'filename="{} organisation usage report for year {}'
'filename="{} organization usage report for year {}'
' - generated on {}.csv"'.format(
current_organisation.name,
current_organization.name,
selected_year,
datetime.now().strftime("%Y-%m-%dT%H:%M:%S.%fZ")
))
}
@main.route("/organisations/<uuid:org_id>/trial-services", methods=['GET'])
@main.route("/organizations/<uuid:org_id>/trial-services", methods=['GET'])
@user_is_platform_admin
def organisation_trial_mode_services(org_id):
def organization_trial_mode_services(org_id):
return render_template(
'views/organisations/organisation/trial-mode-services.html',
'views/organizations/organization/trial-mode-services.html',
search_form=SearchByNameForm(),
)
@main.route("/organisations/<uuid:org_id>/users", methods=['GET'])
@main.route("/organizations/<uuid:org_id>/users", methods=['GET'])
@user_has_permissions()
def manage_org_users(org_id):
return render_template(
'views/organisations/organisation/users/index.html',
users=current_organisation.team_members,
show_search_box=(len(current_organisation.team_members) > 7),
'views/organizations/organization/users/index.html',
users=current_organization.team_members,
show_search_box=(len(current_organization.team_members) > 7),
form=SearchUsersForm(),
)
@main.route("/organisations/<uuid:org_id>/users/invite", methods=['GET', 'POST'])
@main.route("/organizations/<uuid:org_id>/users/invite", methods=['GET', 'POST'])
@user_has_permissions()
def invite_org_user(org_id):
form = InviteOrgUserForm(
@@ -182,36 +182,36 @@ def invite_org_user(org_id):
return redirect(url_for('.manage_org_users', org_id=org_id))
return render_template(
'views/organisations/organisation/users/invite-org-user.html',
'views/organizations/organization/users/invite-org-user.html',
form=form
)
@main.route("/organisations/<uuid:org_id>/users/<uuid:user_id>", methods=['GET'])
@main.route("/organizations/<uuid:org_id>/users/<uuid:user_id>", methods=['GET'])
@user_has_permissions()
def edit_organisation_user(org_id, user_id):
def edit_organization_user(org_id, user_id):
# The only action that can be done to an org user is to remove them from the org.
# This endpoint is used to get the ID of the user to delete without passing it as a
# query string, but it uses the template for all org team members in order to avoid
# having a page containing a single link.
return render_template(
'views/organisations/organisation/users/index.html',
users=current_organisation.team_members,
show_search_box=(len(current_organisation.team_members) > 7),
'views/organizations/organization/users/index.html',
users=current_organization.team_members,
show_search_box=(len(current_organization.team_members) > 7),
form=SearchUsersForm(),
user_to_remove=User.from_id(user_id)
)
@main.route("/organisations/<uuid:org_id>/users/<uuid:user_id>/delete", methods=['POST'])
@main.route("/organizations/<uuid:org_id>/users/<uuid:user_id>/delete", methods=['POST'])
@user_has_permissions()
def remove_user_from_organisation(org_id, user_id):
organisations_client.remove_user_from_organisation(org_id, user_id)
def remove_user_from_organization(org_id, user_id):
organizations_client.remove_user_from_organization(org_id, user_id)
return redirect(url_for('.show_accounts_or_dashboard'))
@main.route("/organisations/<uuid:org_id>/cancel-invited-user/<uuid:invited_user_id>", methods=['GET'])
@main.route("/organizations/<uuid:org_id>/cancel-invited-user/<uuid:invited_user_id>", methods=['GET'])
@user_has_permissions()
def cancel_invited_org_user(org_id, invited_user_id):
org_invite_api_client.cancel_invited_user(org_id=org_id, invited_user_id=invited_user_id)
@@ -222,23 +222,23 @@ def cancel_invited_org_user(org_id, invited_user_id):
return redirect(url_for('main.manage_org_users', org_id=org_id))
@main.route("/organisations/<uuid:org_id>/settings/", methods=['GET'])
@main.route("/organizations/<uuid:org_id>/settings/", methods=['GET'])
@user_is_platform_admin
def organisation_settings(org_id):
def organization_settings(org_id):
return render_template(
'views/organisations/organisation/settings/index.html',
'views/organizations/organization/settings/index.html',
)
@main.route("/organisations/<uuid:org_id>/settings/edit-name", methods=['GET', 'POST'])
@main.route("/organizations/<uuid:org_id>/settings/edit-name", methods=['GET', 'POST'])
@user_is_platform_admin
def edit_organisation_name(org_id):
form = RenameOrganisationForm(name=current_organisation.name)
def edit_organization_name(org_id):
form = RenameOrganizationForm(name=current_organization.name)
if form.validate_on_submit():
try:
current_organisation.update(name=form.name.data)
current_organization.update(name=form.name.data)
except HTTPError as http_error:
error_msg = 'Organization name already exists'
if http_error.status_code == 400 and error_msg in http_error.message:
@@ -246,91 +246,91 @@ def edit_organisation_name(org_id):
else:
raise http_error
else:
return redirect(url_for('.organisation_settings', org_id=org_id))
return redirect(url_for('.organization_settings', org_id=org_id))
return render_template(
'views/organisations/organisation/settings/edit-name.html',
'views/organizations/organization/settings/edit-name.html',
form=form,
)
@main.route("/organisations/<uuid:org_id>/settings/edit-type", methods=['GET', 'POST'])
@main.route("/organizations/<uuid:org_id>/settings/edit-type", methods=['GET', 'POST'])
@user_is_platform_admin
def edit_organisation_type(org_id):
def edit_organization_type(org_id):
form = OrganisationOrganisationTypeForm(
organisation_type=current_organisation.organisation_type
form = OrganizationOrganizationTypeForm(
organization_type=current_organization.organization_type
)
if form.validate_on_submit():
current_organisation.update(
organisation_type=form.organisation_type.data,
current_organization.update(
organization_type=form.organization_type.data,
delete_services_cache=True,
)
return redirect(url_for('.organisation_settings', org_id=org_id))
return redirect(url_for('.organization_settings', org_id=org_id))
return render_template(
'views/organisations/organisation/settings/edit-type.html',
'views/organizations/organization/settings/edit-type.html',
form=form,
)
@main.route("/organisations/<uuid:org_id>/settings/set-email-branding", methods=['GET', 'POST'])
@main.route("/organizations/<uuid:org_id>/settings/set-email-branding", methods=['GET', 'POST'])
@user_is_platform_admin
def edit_organisation_email_branding(org_id):
def edit_organization_email_branding(org_id):
email_branding = email_branding_client.get_all_email_branding()
form = AdminSetEmailBrandingForm(
all_branding_options=get_branding_as_value_and_label(email_branding),
current_branding=current_organisation.email_branding_id,
current_branding=current_organization.email_branding_id,
)
if form.validate_on_submit():
return redirect(url_for(
'.organisation_preview_email_branding',
'.organization_preview_email_branding',
org_id=org_id,
branding_style=form.branding_style.data,
))
return render_template(
'views/organisations/organisation/settings/set-email-branding.html',
'views/organizations/organization/settings/set-email-branding.html',
form=form,
search_form=SearchByNameForm()
)
@main.route("/organisations/<uuid:org_id>/settings/preview-email-branding", methods=['GET', 'POST'])
@main.route("/organizations/<uuid:org_id>/settings/preview-email-branding", methods=['GET', 'POST'])
@user_is_platform_admin
def organisation_preview_email_branding(org_id):
def organization_preview_email_branding(org_id):
branding_style = request.args.get('branding_style', None)
form = AdminPreviewBrandingForm(branding_style=branding_style)
if form.validate_on_submit():
current_organisation.update(
current_organization.update(
email_branding_id=form.branding_style.data,
delete_services_cache=True,
)
return redirect(url_for('.organisation_settings', org_id=org_id))
return redirect(url_for('.organization_settings', org_id=org_id))
return render_template(
'views/organisations/organisation/settings/preview-email-branding.html',
'views/organizations/organization/settings/preview-email-branding.html',
form=form,
action=url_for('main.organisation_preview_email_branding', org_id=org_id),
action=url_for('main.organization_preview_email_branding', org_id=org_id),
)
@main.route("/organisations/<uuid:org_id>/settings/edit-organisation-domains", methods=['GET', 'POST'])
@main.route("/organizations/<uuid:org_id>/settings/edit-organization-domains", methods=['GET', 'POST'])
@user_is_platform_admin
def edit_organisation_domains(org_id):
def edit_organization_domains(org_id):
form = AdminOrganisationDomainsForm()
form = AdminOrganizationDomainsForm()
if form.validate_on_submit():
try:
organisations_client.update_organisation(
organizations_client.update_organization(
org_id,
domains=list(OrderedDict.fromkeys(
domain.lower()
@@ -342,94 +342,94 @@ def edit_organisation_domains(org_id):
if e.status_code == 400 and error_message in e.message:
flash("This domain is already in use", "error")
return render_template(
'views/organisations/organisation/settings/edit-domains.html',
'views/organizations/organization/settings/edit-domains.html',
form=form,
)
else:
raise e
return redirect(url_for('.organisation_settings', org_id=org_id))
return redirect(url_for('.organization_settings', org_id=org_id))
form.populate(current_organisation.domains)
form.populate(current_organization.domains)
return render_template(
'views/organisations/organisation/settings/edit-domains.html',
'views/organizations/organization/settings/edit-domains.html',
form=form,
)
@main.route("/organisations/<uuid:org_id>/settings/edit-go-live-notes", methods=['GET', 'POST'])
@main.route("/organizations/<uuid:org_id>/settings/edit-go-live-notes", methods=['GET', 'POST'])
@user_is_platform_admin
def edit_organisation_go_live_notes(org_id):
def edit_organization_go_live_notes(org_id):
form = AdminOrganisationGoLiveNotesForm()
form = AdminOrganizationGoLiveNotesForm()
if form.validate_on_submit():
organisations_client.update_organisation(
organizations_client.update_organization(
org_id,
request_to_go_live_notes=form.request_to_go_live_notes.data
)
return redirect(url_for('.organisation_settings', org_id=org_id))
return redirect(url_for('.organization_settings', org_id=org_id))
org = organisations_client.get_organisation(org_id)
org = organizations_client.get_organization(org_id)
form.request_to_go_live_notes.data = org['request_to_go_live_notes']
return render_template(
'views/organisations/organisation/settings/edit-go-live-notes.html',
'views/organizations/organization/settings/edit-go-live-notes.html',
form=form,
)
@main.route("/organisations/<uuid:org_id>/settings/notes", methods=['GET', 'POST'])
@main.route("/organizations/<uuid:org_id>/settings/notes", methods=['GET', 'POST'])
@user_is_platform_admin
def edit_organisation_notes(org_id):
form = AdminNotesForm(notes=current_organisation.notes)
def edit_organization_notes(org_id):
form = AdminNotesForm(notes=current_organization.notes)
if form.validate_on_submit():
if form.notes.data == current_organisation.notes:
return redirect(url_for('.organisation_settings', org_id=org_id))
if form.notes.data == current_organization.notes:
return redirect(url_for('.organization_settings', org_id=org_id))
current_organisation.update(
current_organization.update(
notes=form.notes.data
)
return redirect(url_for('.organisation_settings', org_id=org_id))
return redirect(url_for('.organization_settings', org_id=org_id))
return render_template(
'views/organisations/organisation/settings/edit-organisation-notes.html',
'views/organizations/organization/settings/edit-organization-notes.html',
form=form,
)
@main.route("/organisations/<uuid:org_id>/settings/edit-billing-details", methods=['GET', 'POST'])
@main.route("/organizations/<uuid:org_id>/settings/edit-billing-details", methods=['GET', 'POST'])
@user_is_platform_admin
def edit_organisation_billing_details(org_id):
def edit_organization_billing_details(org_id):
form = AdminBillingDetailsForm(
billing_contact_email_addresses=current_organisation.billing_contact_email_addresses,
billing_contact_names=current_organisation.billing_contact_names,
billing_reference=current_organisation.billing_reference,
purchase_order_number=current_organisation.purchase_order_number,
notes=current_organisation.notes,
billing_contact_email_addresses=current_organization.billing_contact_email_addresses,
billing_contact_names=current_organization.billing_contact_names,
billing_reference=current_organization.billing_reference,
purchase_order_number=current_organization.purchase_order_number,
notes=current_organization.notes,
)
if form.validate_on_submit():
current_organisation.update(
current_organization.update(
billing_contact_email_addresses=form.billing_contact_email_addresses.data,
billing_contact_names=form.billing_contact_names.data,
billing_reference=form.billing_reference.data,
purchase_order_number=form.purchase_order_number.data,
notes=form.notes.data,
)
return redirect(url_for('.organisation_settings', org_id=org_id))
return redirect(url_for('.organization_settings', org_id=org_id))
return render_template(
'views/organisations/organisation/settings/edit-organisation-billing-details.html',
'views/organizations/organization/settings/edit-organization-billing-details.html',
form=form,
)
@main.route("/organisations/<uuid:org_id>/billing")
@main.route("/organizations/<uuid:org_id>/billing")
@user_is_platform_admin
def organisation_billing(org_id):
def organization_billing(org_id):
return render_template(
'views/organisations/organisation/billing.html'
'views/organizations/organization/billing.html'
)

View File

@@ -16,25 +16,25 @@ def performance():
start_date=(datetime.now(pytz.utc) - timedelta(days=7)).date(),
end_date=datetime.now(pytz.utc).date(),
)
stats['organisations_using_notify'] = sorted(
stats['organizations_using_notify'] = sorted(
[
{
'organisation_name': organisation_name or 'No organization',
'organization_name': organization_name or 'No organization',
'count_of_live_services': len(list(group)),
}
for organisation_name, group in groupby(
for organization_name, group in groupby(
stats['services_using_notify'],
itemgetter('organisation_name'),
itemgetter('organization_name'),
)
],
key=itemgetter('organisation_name'),
key=itemgetter('organization_name'),
)
stats['average_percentage_under_10_seconds'] = mean([
row['percentage_under_10_seconds']
for row in stats['processing_time']
] or [0])
stats['count_of_live_services_and_organisations'] = (
status_api_client.get_count_of_live_services_and_organisations()
stats['count_of_live_services_and_organizations'] = (
status_api_client.get_count_of_live_services_and_organizations()
)
return render_template(
'views/performance.html',

View File

@@ -193,8 +193,8 @@ def live_services_csv():
column_names = OrderedDict([
('service_id', 'Service ID'),
('organisation_name', 'Organization'),
('organisation_type', 'Organization type'),
('organization_name', 'Organization'),
('organization_type', 'Organization type'),
('service_name', 'Service name'),
('consent_to_research', 'Consent to research'),
('contact_name', 'Main contact'),
@@ -258,7 +258,7 @@ def get_billing_report():
start_date = form.start_date.data
end_date = form.end_date.data
headers = [
"organisation_id", "organisation_name", "service_id", "service_name",
"organization_id", "organization_name", "service_id", "service_name",
"sms_cost", "sms_chargeable_units",
"purchase_order_number", "contact_names", "contact_email_addresses", "billing_reference"
]
@@ -273,7 +273,7 @@ def get_billing_report():
raise e
rows = [
[
r["organisation_id"], r["organisation_name"], r["service_id"], r["service_name"],
r["organization_id"], r["organization_name"], r["service_id"], r["service_name"],
r["sms_cost"], r["sms_chargeable_units"],
r.get("purchase_order_number"), r.get("contact_names"),
r.get("contact_email_addresses"), r.get("billing_reference")
@@ -301,14 +301,14 @@ def get_volumes_by_service():
start_date = form.start_date.data
end_date = form.end_date.data
headers = [
"organisation id", "organisation name", "service id", "service name",
"organization id", "organization name", "service id", "service name",
"free allowance", "sms notifications", "sms chargeable units", "email totals",
]
result = billing_api_client.get_data_for_volumes_by_service_report(start_date, end_date)
rows = [
[
r["organisation_id"], r["organisation_name"], r["service_id"], r["service_name"],
r["organization_id"], r["organization_name"], r["service_id"], r["service_name"],
r["free_allowance"], r["sms_notifications"], r["sms_chargeable_units"], r["email_totals"],
]
for r in result
@@ -447,11 +447,11 @@ def clear_cache():
'email_branding',
'email_branding-????????-????-????-????-????????????',
]),
('organisation', [
'organisations',
('organization', [
'organizations',
'domains',
'live-service-and-organisation-counts',
'organisation-????????-????-????-????-????????????-name',
'live-service-and-organization-counts',
'organization-????????-????-????-????-????????????-name',
]),
])

View File

@@ -63,17 +63,17 @@ def register_from_org_invite():
form.auth_type.data = 'sms_auth'
if form.validate_on_submit():
if (form.organisation.data != invited_org_user.organisation or
if (form.organization.data != invited_org_user.organization or
form.email_address.data != invited_org_user.email_address):
abort(400)
_do_registration(form, send_email=False, send_sms=True, organisation_id=invited_org_user.organisation)
_do_registration(form, send_email=False, send_sms=True, organization_id=invited_org_user.organization)
invited_org_user.accept_invite()
return redirect(url_for('main.verify'))
return render_template('views/register-from-org-invite.html', invited_org_user=invited_org_user, form=form)
def _do_registration(form, send_sms=True, send_email=True, organisation_id=None):
def _do_registration(form, send_sms=True, send_email=True, organization_id=None):
user = User.from_email_address_or_none(form.email_address.data)
if user:
if send_email:
@@ -96,8 +96,8 @@ def _do_registration(form, send_sms=True, send_email=True, organisation_id=None)
user.send_verify_code()
session['expiry_date'] = str(datetime.utcnow() + timedelta(hours=1))
session['user_details'] = {"email": user.email_address, "id": user.id}
if organisation_id:
session['organisation_id'] = organisation_id
if organization_id:
session['organization_id'] = organization_id
@main.route('/registration-continue')

View File

@@ -23,7 +23,7 @@ from app import (
email_branding_client,
inbound_number_client,
notification_api_client,
organisations_client,
organizations_client,
service_api_client,
)
from app.event_handlers import (
@@ -45,7 +45,7 @@ from app.main.forms import (
AdminServiceRateLimitForm,
AdminServiceSMSAllowanceForm,
AdminSetEmailBrandingForm,
AdminSetOrganisationForm,
AdminSetOrganizationForm,
ChooseEmailBrandingForm,
EstimateUsageForm,
RenameServiceForm,
@@ -108,7 +108,7 @@ def service_name_change(service_id):
else:
return redirect(url_for('.service_settings', service_id=service_id))
if current_service.organisation_type == 'local':
if current_service.organization_type == 'local':
return render_template(
'views/service-settings/name-local.html',
form=form,
@@ -174,8 +174,8 @@ def submit_request_to_go_live(service_id):
user_name=current_user.name,
user_email=current_user.email_address,
requester_sees_message_content=False,
org_id=current_service.organisation_id,
org_type=current_service.organisation_type,
org_id=current_service.organization_id,
org_type=current_service.organization_type,
service_id=current_service.id,
)
zendesk_client.send_ticket_to_zendesk(ticket)
@@ -818,28 +818,28 @@ def service_preview_email_branding(service_id):
)
@main.route("/services/<uuid:service_id>/service-settings/link-service-to-organisation", methods=['GET', 'POST'])
@main.route("/services/<uuid:service_id>/service-settings/link-service-to-organization", methods=['GET', 'POST'])
@user_is_platform_admin
def link_service_to_organisation(service_id):
def link_service_to_organization(service_id):
all_organisations = organisations_client.get_organisations()
all_organizations = organizations_client.get_organizations()
form = AdminSetOrganisationForm(
choices=convert_dictionary_to_wtforms_choices_format(all_organisations, 'id', 'name'),
organisations=current_service.organisation_id
form = AdminSetOrganizationForm(
choices=convert_dictionary_to_wtforms_choices_format(all_organizations, 'id', 'name'),
organizations=current_service.organization_id
)
if form.validate_on_submit():
if form.organisations.data != current_service.organisation_id:
organisations_client.update_service_organisation(
if form.organizations.data != current_service.organization_id:
organizations_client.update_service_organization(
service_id,
form.organisations.data
form.organizations.data
)
return redirect(url_for('.service_settings', service_id=service_id))
return render_template(
'views/service-settings/link-service-to-organisation.html',
has_organisations=all_organisations,
'views/service-settings/link-service-to-organization.html',
has_organizations=all_organizations,
form=form,
search_form=SearchByNameForm(),
)
@@ -860,8 +860,8 @@ def create_email_branding_zendesk_ticket(form_option_selected, detail=None):
ticket_type=NotifySupportTicket.TYPE_QUESTION,
user_name=current_user.name,
user_email=current_user.email_address,
org_id=current_service.organisation_id,
org_type=current_service.organisation_type,
org_id=current_service.organization_id,
org_type=current_service.organization_type,
service_id=current_service.id
)
zendesk_client.send_ticket_to_zendesk(ticket)
@@ -941,18 +941,18 @@ def email_branding_nhs(service_id):
)
@main.route("/services/<uuid:service_id>/service-settings/email-branding/organisation", methods=['GET', 'POST'])
@main.route("/services/<uuid:service_id>/service-settings/email-branding/organization", methods=['GET', 'POST'])
@user_has_permissions('manage_service')
def email_branding_organisation(service_id):
check_email_branding_allowed_for_service('organisation')
def email_branding_organization(service_id):
check_email_branding_allowed_for_service('organization')
if request.method == 'POST':
create_email_branding_zendesk_ticket('organisation')
create_email_branding_zendesk_ticket('organization')
flash('Thanks for your branding request. Well get back to you within one working day.', 'default')
return redirect(url_for('.service_settings', service_id=current_service.id))
return render_template('views/service-settings/branding/email-branding-organisation.html')
return render_template('views/service-settings/branding/email-branding-organization.html')
@main.route("/services/<uuid:service_id>/service-settings/email-branding/something-else", methods=['GET', 'POST'])

View File

@@ -72,7 +72,7 @@ def activate_user(user_id):
user = User.from_id(user_id)
# the user will have a new current_session_id set by the API - store it in the cookie for future requests
session['current_session_id'] = user.current_session_id
organisation_id = session.get('organisation_id')
organization_id = session.get('organization_id')
activated_user = user.activate()
activated_user.login()
@@ -83,10 +83,10 @@ def activate_user(user_id):
invited_org_user = InvitedOrgUser.from_session()
if invited_org_user:
user_api_client.add_user_to_organisation(invited_org_user.organisation, user_id)
user_api_client.add_user_to_organization(invited_org_user.organization, user_id)
if organisation_id:
return redirect(url_for('main.organisation_dashboard', org_id=organisation_id))
if organization_id:
return redirect(url_for('main.organization_dashboard', org_id=organization_id))
else:
return redirect(url_for('main.add_service', first='first'))