diff options
Diffstat (limited to 'Mailman/Gui/Digest.py')
| -rw-r--r-- | Mailman/Gui/Digest.py | 161 |
1 files changed, 0 insertions, 161 deletions
diff --git a/Mailman/Gui/Digest.py b/Mailman/Gui/Digest.py deleted file mode 100644 index b496a3745..000000000 --- a/Mailman/Gui/Digest.py +++ /dev/null @@ -1,161 +0,0 @@ -# Copyright (C) 1998-2008 by the Free Software Foundation, Inc. -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License -# as published by the Free Software Foundation; either version 2 -# of the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, -# USA. - -"""Administrative GUI for digest deliveries.""" - -from Mailman import Utils -from Mailman.configuration import config -from Mailman.i18n import _ - -# Intra-package import -from Mailman.Gui.GUIBase import GUIBase - -# Common b/w nondigest and digest headers & footers. Personalizations may add -# to this. -ALLOWEDS = ('real_name', 'list_name', 'host_name', 'web_page_url', - 'description', 'info', 'cgiext', '_internal_name', - ) - - - -class Digest(GUIBase): - def GetConfigCategory(self): - return 'digest', _('Digest options') - - def GetConfigInfo(self, mlist, category, subcat=None): - if category <> 'digest': - return None - WIDTH = config.TEXTFIELDWIDTH - - info = [ - _("Batched-delivery digest characteristics."), - - ('digestable', config.Toggle, (_('No'), _('Yes')), 1, - _('Can list members choose to receive list traffic ' - 'bunched in digests?')), - - ('digest_is_default', config.Radio, - (_('Regular'), _('Digest')), 0, - _('Which delivery mode is the default for new users?')), - - ('mime_is_default_digest', config.Radio, - (_('Plain'), _('MIME')), 0, - _('When receiving digests, which format is default?')), - - ('digest_size_threshhold', config.Number, 3, 0, - _('How big in Kb should a digest be before it gets sent out?')), - # Should offer a 'set to 0' for no size threshhold. - - ('digest_send_periodic', config.Radio, (_('No'), _('Yes')), 1, - _('Should a digest be dispatched daily when the size threshold ' - "isn't reached?")), - - ('digest_header', config.Text, (4, WIDTH), 0, - _('Header added to every digest'), - _("Text attached (as an initial message, before the table" - " of contents) to the top of digests. ") - + Utils.maketext('headfoot.html', raw=1, mlist=mlist)), - - ('digest_footer', config.Text, (4, WIDTH), 0, - _('Footer added to every digest'), - _("Text attached (as a final message) to the bottom of digests. ") - + Utils.maketext('headfoot.html', raw=1, mlist=mlist)), - - ('digest_volume_frequency', config.Radio, - (_('Yearly'), _('Monthly'), _('Quarterly'), - _('Weekly'), _('Daily')), 0, - _('How often should a new digest volume be started?'), - _('''When a new digest volume is started, the volume number is - incremented and the issue number is reset to 1.''')), - - ('_new_volume', config.Toggle, (_('No'), _('Yes')), 0, - _('Should Mailman start a new digest volume?'), - _('''Setting this option instructs Mailman to start a new volume - with the next digest sent out.''')), - - ('_send_digest_now', config.Toggle, (_('No'), _('Yes')), 0, - _('''Should Mailman send the next digest right now, if it is not - empty?''')), - ] - -## if config.OWNERS_CAN_ENABLE_PERSONALIZATION: -## info.extend([ -## ('digest_personalize', config.Toggle, (_('No'), _('Yes')), 1, - -## _('''Should Mailman personalize each digest delivery? -## This is often useful for announce-only lists, but <a -## href="?VARHELP=digest/digest_personalize">read the details</a> -## section for a discussion of important performance -## issues.'''), - -## _("""Normally, Mailman sends the digest messages to -## the mail server in batches. This is much more efficent -## because it reduces the amount of traffic between Mailman and -## the mail server. - -## <p>However, some lists can benefit from a more personalized -## approach. In this case, Mailman crafts a new message for -## each member on the digest delivery list. Turning this on -## adds a few more expansion variables that can be included in -## the <a href="?VARHELP=digest/digest_header">message header</a> -## and <a href="?VARHELP=digest/digest_footer">message footer</a> -## but it may degrade the performance of your site as -## a whole. - -## <p>You need to carefully consider whether the trade-off is -## worth it, or whether there are other ways to accomplish what -## you want. You should also carefully monitor your system load -## to make sure it is acceptable. - -## <p>These additional substitution variables will be available -## for your headers and footers, when this feature is enabled: - -## <ul><li><b>user_address</b> - The address of the user, -## coerced to lower case. -## <li><b>user_delivered_to</b> - The case-preserved address -## that the user is subscribed with. -## <li><b>user_password</b> - The user's password. -## <li><b>user_name</b> - The user's full name. -## <li><b>user_optionsurl</b> - The url to the user's option -## page. -## """)) -## ]) - - return info - - def _setValue(self, mlist, property, val, doc): - # Watch for the special, immediate action attributes - if property == '_new_volume' and val: - mlist.bump_digest_volume() - volume = mlist.volume - number = mlist.next_digest_number - doc.AddItem(_("""The next digest will be sent as volume - %(volume)s, number %(number)s""")) - elif property == '_send_digest_now' and val: - status = mlist.send_digest_now() - if status: - doc.AddItem(_("""A digest has been sent.""")) - else: - doc.AddItem(_("""There was no digest to send.""")) - else: - # Everything else... - if property in ('digest_header', 'digest_footer'): - val = self._convertString(mlist, property, ALLOWEDS, val, doc) - if val is None: - # There was a problem, so don't set it - return - GUIBase._setValue(self, mlist, property, val, doc) |
