summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAbhilash Raj2015-08-06 07:13:01 +0530
committerBarry Warsaw2015-08-30 10:35:26 -0400
commit91aa5536e49bdd1d374fe6b4da4696fd43ce5923 (patch)
tree2cc2214fdbdef39fd02d70effc771f958dfaacd4 /src
parentb54227490df7367831e98add9d2f39edf21dd8b5 (diff)
downloadmailman-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
Diffstat (limited to 'src')
-rw-r--r--src/mailman/handlers/decorate.py14
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: