From b9f0bbb4606ccdc14941e04f5d5f631313e48a1a Mon Sep 17 00:00:00 2001 From: Yohann D'ANELLO Date: Tue, 5 Jan 2021 22:28:09 +0100 Subject: [PATCH] [redisdead] Replace very old crans logo and remove all crans-specific options in the config template Signed-off-by: Yohann D'ANELLO --- logos/crans.png | Bin 10618 -> 0 bytes plays/files/crans_icon_dark.svg | 10 ++++++++++ plays/mailman.yml | 4 ++++ roles/mailman/tasks/main.yml | 8 ++++---- .../usr/lib/mailman/Mailman/htmlformat.py.j2 | 12 ++++++------ 5 files changed, 24 insertions(+), 10 deletions(-) delete mode 100644 logos/crans.png create mode 100644 plays/files/crans_icon_dark.svg diff --git a/logos/crans.png b/logos/crans.png deleted file mode 100644 index 9c5e281a69694f2aed73c8466229c3dcb96b9609..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10618 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 + + + + + + + + + diff --git a/plays/mailman.yml b/plays/mailman.yml index e04d61ec..dfaf888b 100755 --- a/plays/mailman.yml +++ b/plays/mailman.yml @@ -10,6 +10,10 @@ default_language: "fr" auth_basic: | "On n'aime pas les spambots, donc on a mis un mot de passe. Le login est Stop et le mot de passe est Spam."; + custom_logo: "crans_icon_dark.svg" + custom_logo_name: "crans.svg" + custom_logo_url: "https://www.crans.org/" + custom_logo_alt: "CRANS" spamassassin: "SpamAssassin_crans" smtphost: "smtp.adm.crans.org" mynetworks: ['138.231.0.0/16', '185.230.76.0/22', '2a0c:700:0::/40'] diff --git a/roles/mailman/tasks/main.yml b/roles/mailman/tasks/main.yml index 53ae09de..467ef9f0 100644 --- a/roles/mailman/tasks/main.yml +++ b/roles/mailman/tasks/main.yml @@ -20,12 +20,12 @@ notify: Reload mailman # Fanciness -- name: Deploy crans logo +- name: Deploy custom logo copy: - src: ../../../logos/crans.png - dest: /usr/share/images/mailman/crans.png + src: "{{ mailman.custom_logo }}" + dest: "/usr/share/images/mailman/{{ mailman.custom_logo_name }}" -- name: Deploy crans logo +- name: Deploy custom logo template: src: usr/lib/mailman/Mailman/htmlformat.py.j2 dest: /usr/lib/mailman/Mailman/htmlformat.py diff --git a/roles/mailman/templates/usr/lib/mailman/Mailman/htmlformat.py.j2 b/roles/mailman/templates/usr/lib/mailman/Mailman/htmlformat.py.j2 index 146f9576..3f10f131 100644 --- a/roles/mailman/templates/usr/lib/mailman/Mailman/htmlformat.py.j2 +++ b/roles/mailman/templates/usr/lib/mailman/Mailman/htmlformat.py.j2 @@ -650,14 +650,14 @@ class DefinitionList(Container): from mm_cfg import MAILMAN_URL PYTHON_URL = 'http://www.python.org/' GNU_URL = 'http://www.gnu.org/' -CRANS_URL = 'http://www.crans.org/' +CUSTOM_URL = '{{ mailman.custom_logo_url }}' # The names of the image logo files. These are concatentated onto # mm_cfg.IMAGE_LOGOS (not urljoined). DELIVERED_BY = 'mailman.jpg' PYTHON_POWERED = 'PythonPowered.png' GNU_HEAD = 'gnu-head-tiny.jpg' -CRANS_LOGO = 'crans.png' +CUSTOM_LOGO = '{{ mailman.custom_logo_name }}' def MailmanLogo(): @@ -667,7 +667,7 @@ def MailmanLogo(): mmlink = _("Delivered by Mailman") pylink = _("Python Powered") gnulink = _("GNU's Not Unix") - cranslink = _("CRANS") + customlink = _("{{ mailman.custom_logo_alt }}") if mm_cfg.SITE_LINK: sitelink = mm_cfg.SITE_TEXT @@ -678,15 +678,15 @@ def MailmanLogo(): mmlink = logo(DELIVERED_BY, mmlink) pylink = logo(PYTHON_POWERED, pylink) gnulink = logo(GNU_HEAD, gnulink) - cranslink = logo(CRANS_LOGO, cranslink) + customlink = logo(CUSTOM_LOGO, customlink) if mm_cfg.SITE_LINK: sitelink = logo(mm_cfg.SITE_LOGO, sitelink, "") mmlink = Link(MAILMAN_URL, mmlink + _('
version %(version)s')) pylink = Link(PYTHON_URL, pylink) gnulink = Link(GNU_URL, gnulink) - cranslink = Link(CRANS_URL, cranslink) - links = [mmlink, pylink, gnulink, cranslink] + customlink = Link(CUSTOM_URL, customlink) + links = [mmlink, pylink, gnulink, customlink] if mm_cfg.SITE_LINK: if mm_cfg.SITE_URL: sitelink = Link(mm_cfg.SITE_URL, sitelink)