mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-07-16 03:10:16 -04:00
This was a lot of code to be in a form and it's going to get even more complicated with email branding pools. Moving it out means we can also simplify the tests that target this code.
54 lines
1.9 KiB
Python
54 lines
1.9 KiB
Python
from app.models.organisation import Organisation
|
|
|
|
|
|
def get_available_choices(service, branding_type):
|
|
if branding_type == "email":
|
|
organisation_branding_id = service.organisation.email_branding_id if service.organisation else None
|
|
service_branding_id = service.email_branding_id
|
|
service_branding_name = service.email_branding_name
|
|
elif branding_type == "letter":
|
|
organisation_branding_id = service.organisation.letter_branding_id if service.organisation else None
|
|
service_branding_id = service.letter_branding_id
|
|
service_branding_name = service.letter_branding_name
|
|
|
|
if (
|
|
service.organisation_type == Organisation.TYPE_CENTRAL
|
|
and organisation_branding_id is None
|
|
and service_branding_id is not None
|
|
and branding_type == "email"
|
|
):
|
|
yield ('govuk', 'GOV.UK')
|
|
|
|
if (
|
|
service.organisation_type == Organisation.TYPE_CENTRAL
|
|
and service.organisation
|
|
and organisation_branding_id is None
|
|
and service_branding_name.lower() != 'GOV.UK and {}'.format(service.organisation.name).lower()
|
|
and branding_type == "email"
|
|
):
|
|
yield ('govuk_and_org', 'GOV.UK and {}'.format(service.organisation.name))
|
|
|
|
if (
|
|
service.organisation_type in {
|
|
Organisation.TYPE_NHS_CENTRAL,
|
|
Organisation.TYPE_NHS_LOCAL,
|
|
Organisation.TYPE_NHS_GP,
|
|
}
|
|
and service_branding_name != 'NHS'
|
|
):
|
|
yield ('nhs', 'NHS')
|
|
|
|
if (
|
|
service.organisation
|
|
and service.organisation_type not in {
|
|
Organisation.TYPE_NHS_LOCAL,
|
|
Organisation.TYPE_NHS_CENTRAL,
|
|
Organisation.TYPE_NHS_GP,
|
|
}
|
|
and (
|
|
service_branding_id is None
|
|
or service_branding_id != organisation_branding_id
|
|
)
|
|
):
|
|
yield ('organisation', service.organisation.name)
|