diff --git a/app/main/forms.py b/app/main/forms.py index 15b9e5ee5..b3678f75d 100644 --- a/app/main/forms.py +++ b/app/main/forms.py @@ -731,6 +731,7 @@ class ServiceUpdateEmailBranding(StripWhitespaceForm): name = StringField('Name of brand') text = StringField('Text') + domain = StringField('Domain') colour = StringField( 'Colour', render_kw={'onchange': 'update_colour(this)'}, @@ -738,15 +739,15 @@ class ServiceUpdateEmailBranding(StripWhitespaceForm): Regexp(regex="^$|^#(?:[0-9a-fA-F]{3}){1,2}$", message='Must be a valid color hex code') ] ) - file = FileField_wtf('Upload a PNG logo', validators=[FileAllowed(['png'], 'PNG Images only!')]) - - -class ServiceCreateEmailBranding(StripWhitespaceForm): - - name = StringField('Name of brand') - text = StringField('Text') - colour = StringField( - 'Colour', + banner_colour = StringField( + 'Banner colour', + render_kw={'onchange': 'update_colour(this)'}, + validators=[ + Regexp(regex="^$|^#(?:[0-9a-fA-F]{3}){1,2}$", message='Must be a valid color hex code') + ] + ) + single_id_colour = StringField( + 'Single identity colour', render_kw={'onchange': 'update_colour(this)'}, validators=[ Regexp(regex="^$|^#(?:[0-9a-fA-F]{3}){1,2}$", message='Must be a valid color hex code') diff --git a/app/main/views/email_branding.py b/app/main/views/email_branding.py index 4f55b1e7f..fbe5595d4 100644 --- a/app/main/views/email_branding.py +++ b/app/main/views/email_branding.py @@ -4,7 +4,6 @@ from flask_login import login_required from app import email_branding_client from app.main import main from app.main.forms import ( - ServiceCreateEmailBranding, ServiceSelectEmailBranding, ServiceUpdateEmailBranding, ) @@ -80,7 +79,10 @@ def update_email_branding(branding_id, logo=None): logo=logo, name=form.name.data, text=form.text.data, - colour=form.colour.data + colour=form.colour.data, + banner_colour=form.banner_colour.data, + single_id_colour=form.single_id_colour.data, + domain=form.domain.data, ) return redirect(url_for('.email_branding', branding_id=branding_id)) @@ -88,6 +90,9 @@ def update_email_branding(branding_id, logo=None): form.name.data = email_branding['name'] form.text.data = email_branding['text'] form.colour.data = email_branding['colour'] + form.banner_colour.data = email_branding['banner_colour'] + form.single_id_colour.data = email_branding['single_id_colour'] + form.domain.data = email_branding['domain'] return render_template( 'views/email-branding/manage-branding.html', @@ -103,7 +108,7 @@ def update_email_branding(branding_id, logo=None): @login_required @user_is_platform_admin def create_email_branding(logo=None): - form = ServiceCreateEmailBranding() + form = ServiceUpdateEmailBranding() if form.validate_on_submit(): if form.file.data: @@ -128,7 +133,10 @@ def create_email_branding(logo=None): logo=logo, name=form.name.data, text=form.text.data, - colour=form.colour.data + colour=form.colour.data, + banner_colour=form.banner_colour.data, + single_id_colour=form.single_id_colour.data, + domain=form.domain.data ) return redirect(url_for('.email_branding')) diff --git a/app/main/views/index.py b/app/main/views/index.py index 5e46f95c9..3b4232825 100644 --- a/app/main/views/index.py +++ b/app/main/views/index.py @@ -78,6 +78,13 @@ def design_content(): return render_template('views/design-patterns-content-guidance.html') +def _set_colour(branding_style, email_branding): + if branding_style in ['both', 'org']: + return email_branding['single_id_colour'] or email_branding['colour'] + elif branding_style == 'org_banner': + return email_branding['banner_colour'] or email_branding['colour'] + + @main.route('/_email') def email_template(): branding_type = request.args.get('branding_type', 'govuk') @@ -91,8 +98,9 @@ def email_template(): brand_banner = False else: email_branding = email_branding_client.get_email_branding(branding_style)['email_branding'] + colour = _set_colour(branding_type, email_branding) brand_name = email_branding['text'] - brand_colour = email_branding['colour'] + brand_colour = colour brand_logo = 'https://{}/{}'.format(get_cdn_domain(), email_branding['logo']) govuk_banner = branding_type in ['govuk', 'both'] brand_banner = branding_type == 'org_banner' diff --git a/app/notify_client/email_branding_client.py b/app/notify_client/email_branding_client.py index ae2375144..0349c3f84 100644 --- a/app/notify_client/email_branding_client.py +++ b/app/notify_client/email_branding_client.py @@ -18,20 +18,26 @@ class EmailBrandingClient(NotifyAdminAPIClient): def get_letter_email_branding(self): return self.get(url='/dvla_organisations') - def create_email_branding(self, logo, name, text, colour): + def create_email_branding(self, logo, name, text, colour, banner_colour, single_id_colour, domain): data = { "logo": logo, "name": name, "text": text, - "colour": colour + "colour": colour, + "banner_colour": banner_colour, + "single_id_colour": single_id_colour, + "domain": domain, } return self.post(url="/email-branding", data=data) - def update_email_branding(self, branding_id, logo, name, text, colour): + def update_email_branding(self, branding_id, logo, name, text, colour, banner_colour, single_id_colour, domain): data = { "logo": logo, "name": name, "text": text, - "colour": colour + "colour": colour, + "banner_colour": banner_colour, + "single_id_colour": single_id_colour, + "domain": domain, } return self.post(url="/email-branding/{}".format(branding_id), data=data) diff --git a/app/templates/views/email-branding/manage-branding.html b/app/templates/views/email-branding/manage-branding.html index d8927ad65..8b628a9a4 100644 --- a/app/templates/views/email-branding/manage-branding.html +++ b/app/templates/views/email-branding/manage-branding.html @@ -12,7 +12,6 @@