diff options
| author | Abhilash Raj | 2015-08-06 07:13:01 +0530 |
|---|---|---|
| committer | Barry Warsaw | 2015-08-30 10:35:26 -0400 |
| commit | 91aa5536e49bdd1d374fe6b4da4696fd43ce5923 (patch) | |
| tree | 2cc2214fdbdef39fd02d70effc771f958dfaacd4 | |
| parent | b54227490df7367831e98add9d2f39edf21dd8b5 (diff) | |
| download | mailman-91aa5536e49bdd1d374fe6b4da4696fd43ce5923.tar.gz mailman-91aa5536e49bdd1d374fe6b4da4696fd43ce5923.tar.zst mailman-91aa5536e49bdd1d374fe6b4da4696fd43ce5923.zip | |
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
| -rw-r--r-- | src/mailman/handlers/decorate.py | 14 |
1 files changed, 9 insertions, 5 deletions
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: |
