From 91aa5536e49bdd1d374fe6b4da4696fd43ce5923 Mon Sep 17 00:00:00 2001 From: Abhilash Raj Date: Thu, 6 Aug 2015 07:13:01 +0530 Subject: Add link to archiver from ListArchiverSet Not all enabled archivers in IArchivers are enabled for lists by default. The correct way is to search for enabled archivers in IListArchiver set and then get the permalink from the enabled ones --- src/mailman/handlers/decorate.py | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/mailman/handlers/decorate.py b/src/mailman/handlers/decorate.py index 0bdce7545..9f3e768ce 100644 --- a/src/mailman/handlers/decorate.py +++ b/src/mailman/handlers/decorate.py @@ -33,7 +33,7 @@ from mailman.core.i18n import _ from mailman.email.message import Message from mailman.interfaces.handler import IHandler from mailman.interfaces.templates import ITemplateLoader -from mailman.interfaces.archiver import IArchiver +from mailman.interfaces.mailinglist import IListArchiverSet from mailman.utilities.string import expand from urllib.error import URLError from zope.component import getUtility @@ -62,10 +62,14 @@ def process(mlist, msg, msgdata): else member.address.original_email) d['user_optionsurl'] = member.options_url - archivers = [archiver for archiver in config.archivers - if archiver.is_enabled] - d['archive_url'] = ("\n").join([archiver.permalink(mlist, msg) - for archiver in archivers]) + archivers = IListArchiverSet(mlist).archivers + archive_urls = [archiver.system_archiver.permalink(mlist, msg) + for archiver in archivers if archiver.is_enabled] + archive_urls = [url for url in archive_urls if url is not None] + if len(archive_urls): + d['archive_url'] = ("\n").join(archive_urls) + else: + d['archive_url'] = None # These strings are descriptive for the log file and shouldn't be i18n'd d.update(msgdata.get('decoration-data', {})) try: -- cgit v1.2.3-70-g09d2