diff --git a/src/postorius/auth/decorators.py b/src/postorius/auth/decorators.py
index 0f12b55..16292e0 100644
--- a/src/postorius/auth/decorators.py
+++ b/src/postorius/auth/decorators.py
@@ -24,6 +24,7 @@
from postorius.models import (Domain, List, Member, MailmanUser,
MailmanApiError, Mailman404Error)
+
def basic_auth_login(fn):
def wrapper(*args, **kwargs):
request = args[0]
@@ -31,7 +32,8 @@
print 'already logged in'
if not request.user.is_authenticated():
if request.META.has_key('HTTP_AUTHORIZATION'):
- authmeth, auth = request.META['HTTP_AUTHORIZATION'].split(' ', 1)
+ authmeth, auth = request.META['HTTP_AUTHORIZATION'].split(' ',
+ 1)
if authmeth.lower() == 'basic':
auth = auth.strip().decode('base64')
username, password = auth.split(':', 1)
diff --git a/src/postorius/context_processors.py b/src/postorius/context_processors.py
index ce7bf6c..d7a18f2 100644
--- a/src/postorius/context_processors.py
+++ b/src/postorius/context_processors.py
@@ -23,7 +23,9 @@
def postorius(request):
"""Add template variables to context.
"""
- # Use a template so that the page header/footer is suppressed when requested via AJAX
+ # Use a template so that the page header/footer is suppressed when
+ # requested via AJAX
+
if request.is_ajax():
template_to_extend = "postorius/base_ajax.html"
else:
diff --git a/src/postorius/doc/conf.py b/src/postorius/doc/conf.py
index d308e7c..f49af68 100644
--- a/src/postorius/doc/conf.py
+++ b/src/postorius/doc/conf.py
@@ -3,7 +3,8 @@
# Postorius documentation build configuration file, created by
# sphinx-quickstart on Wed Aug 17 15:43:10 2011.
#
-# This file is execfile()d with the current directory set to its containing dir.
+# This file is execfile()d with the current directory set to its
+# containing dir.
#
# Note that not all possible configuration values are present in this
# autogenerated file.
@@ -11,7 +12,8 @@
# All configuration values have a default; values that are commented out
# serve to show the default.
-import sys, os
+import sys
+import os
# add dummy settings environment variable so sphinx can import from Postorius.
os.environ['DJANGO_SETTINGS_MODULE'] = 'postorius.doc.settings'
@@ -22,17 +24,17 @@
# If extensions (or modules to document with autodoc) are in another directory,
# add these directories to sys.path here. If the directory is relative to the
-# documentation root, use os.path.abspath to make it absolute, like shown here.
+# documentation root, use os.path.abspath to make it absolute, like shown here
#sys.path.insert(0, os.path.abspath('.'))
-# -- General configuration -----------------------------------------------------
-
+# -- General configuration ----------------------------------------------------
# If your documentation needs a minimal Sphinx version, state it here.
#needs_sphinx = '1.0'
-# Add any Sphinx extension module names here, as strings. They can be extensions
-# coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
-extensions = ['sphinx.ext.autodoc', 'sphinx.ext.doctest', 'sphinx.ext.todo', 'sphinx.ext.coverage', 'sphinx.ext.viewcode']
+# Add any Sphinx extension module names here, as strings. They can be
+# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
+# extensions = ['sphinx.ext.autodoc', 'sphinx.ext.doctest', 'sphinx.ext.todo',
+# 'sphinx.ext.coverage', 'sphinx.ext.viewcode']
# Add any paths that contain templates here, relative to this directory.
templates_path = ['_templates']
@@ -73,7 +75,8 @@
# directories to ignore when looking for source files.
exclude_patterns = ['_build']
-# The reST default role (used for this markup: `text`) to use for all documents.
+# The reST default role (used for this markup: `text`) to use for all
+# documents.
#default_role = None
# If true, '()' will be appended to :func: etc. cross-reference text.
@@ -94,7 +97,7 @@
#modindex_common_prefix = []
-# -- Options for HTML output ---------------------------------------------------
+# -- Options for HTML output --------------------------------------------------
# The theme to use for HTML and HTML Help pages. See the documentation for
# a list of builtin themes.
@@ -174,7 +177,7 @@
htmlhelp_basename = 'postoriusdoc'
-# -- Options for LaTeX output --------------------------------------------------
+# -- Options for LaTeX output -------------------------------------------------
# The paper size ('letter' or 'a4').
#latex_paper_size = 'letter'
@@ -183,10 +186,10 @@
#latex_font_size = '10pt'
# Grouping the document tree into LaTeX files. List of tuples
-# (source start file, target name, title, author, documentclass [howto/manual]).
+# (source start file, target name, title, author, documentclass [howto/manual])
latex_documents = [
- ('index', 'postoriusweb.tex', u'Postorius Documentation',
- u'Mailman Coders', 'manual'),
+ ('index', 'postoriusweb.tex', u'Postorius Documentation',
+ u'Mailman Coders', 'manual'),
]
# The name of an image file (relative to this directory) to place at the top of
@@ -213,7 +216,7 @@
#latex_domain_indices = True
-# -- Options for manual page output --------------------------------------------
+# -- Options for manual page output -------------------------------------------
# One entry per manual page. List of tuples
# (source start file, name, description, authors, manual section).
@@ -223,7 +226,7 @@
]
-# -- Options for Epub output ---------------------------------------------------
+# -- Options for Epub output --------------------------------------------------
# Bibliographic Dublin Core info.
epub_title = u'postorius'
diff --git a/src/postorius/doc/settings.py b/src/postorius/doc/settings.py
index a7e4dd1..4809130 100755
--- a/src/postorius/doc/settings.py
+++ b/src/postorius/doc/settings.py
@@ -16,5 +16,5 @@
# You should have received a copy of the GNU General Public License along with
# Postorius. If not, see .
-"""This is just an empty settings file to make Sphinx able to export
+"""This is just an empty settings file to make Sphinx able to export
the DJANGO_SETTINGS_MODULE env variable before building the docs."""
diff --git a/src/postorius/forms.py b/src/postorius/forms.py
index cbff1d8..2abfd18 100644
--- a/src/postorius/forms.py
+++ b/src/postorius/forms.py
@@ -214,26 +214,26 @@
required=False,
label= _('Include RFC2369 headers'),
help_text=_(
- 'Yes is highly recommended. RFC 2369 defines a set of List-* '
- 'headers that are normally added to every message sent to the list '
- 'membership. These greatly aid end-users who are using standards '
- 'compliant mail readers. They should normally always be enabled. '
- 'However, not all mail readers are standards compliant yet, and if '
- 'you have a large number of members who are using non-compliant '
- 'mail readers, they may be annoyed at these headers. You should '
- 'first try to educate your members as to why these headers exist, '
- 'and how to hide them in their mail clients. As a last resort you '
- 'can disable these headers, but this is not recommended '
- '(and in fact, your ability to disable these headers may '
- 'eventually go away).'))
+ 'Yes is highly recommended. RFC 2369 defines a set of List-* '
+ 'headers that are normally added to every message sent to the '
+ 'list membership. These greatly aid end-users who are using '
+ 'standards compliant mail readers. They should normally always '
+ 'be enabled. However, not all mail readers are standards '
+ 'compliant yet, and if you have a large number of members who are '
+ 'using non-compliant mail readers, they may be annoyed at these '
+ 'headers. You should first try to educate your members as to why '
+ 'these headers exist, and how to hide them in their mail clients. '
+ 'As a last resort you can disable these headers, but this is not '
+ 'recommended (and in fact, your ability to disable these headers '
+ 'may eventually go away).'))
allow_list_posts = forms.TypedChoiceField(
choices=choices,
widget=forms.RadioSelect,
label=_("Include the list post header"),
help_text=_(
- "This can be set to no for announce lists that do not wish to "
- "include the List-Post header because posting to the list is "
- "discouraged."),
+ "This can be set to no for announce lists that do not wish to "
+ "include the List-Post header because posting to the list is "
+ "discouraged."),
)
archive_policy_choices = (
("public", _("Public Archives")),
@@ -255,8 +255,8 @@
widget=forms.RadioSelect,
label=_('Autorespond to list owner'),
help_text=(
- 'Should Mailman send an auto-response to emails sent to the '
- '-owner address?'))
+ 'Should Mailman send an auto-response to emails sent to the '
+ '-owner address?'))
autoresponse_owner_text = forms.CharField(
label=_('Autoresponse owner text'),
widget=forms.Textarea(),
@@ -267,7 +267,7 @@
widget=forms.RadioSelect,
label=_('Autorespond postings'),
help_text=(
- 'Should Mailman send an auto-response to mailing list posters?'))
+ 'Should Mailman send an auto-response to mailing list posters?'))
autoresponse_postings_text = forms.CharField(
label=_('Autoresponse postings text'),
widget=forms.Textarea(),
@@ -278,10 +278,10 @@
widget=forms.RadioSelect,
label=_('Autorespond requests'),
help_text=(
- 'Should Mailman send an auto-response to emails sent to the '
- '-request address? If you choose yes, decide whether you want '
- 'Mailman to discard the original email, or forward it on to the '
- 'system as a normal mail command.'))
+ 'Should Mailman send an auto-response to emails sent to the '
+ '-request address? If you choose yes, decide whether you want '
+ 'Mailman to discard the original email, or forward it on to the '
+ 'system as a normal mail command.'))
autoresponse_request_text = forms.CharField(
label=_('Autoresponse request text'),
widget=forms.Textarea(),
@@ -290,10 +290,10 @@
autoresponse_grace_period = forms.CharField(
label=_('Autoresponse grace period'),
help_text=(
- 'Number of days between auto-responses to either the mailing list '
- 'or -request/-owner address from the same poster. Set to zero '
- '(or negative) for no grace period (i.e. auto-respond to every '
- 'message).'))
+ 'Number of days between auto-responses to either the mailing list '
+ 'or -request/-owner address from the same poster. Set to zero '
+ '(or negative) for no grace period (i.e. auto-respond to every '
+ 'message).'))
# This doesn't make sense as a configurable, so we're leaving it out
# bounces_address = forms.EmailField(
# label=_('Bounces Address'),
@@ -304,7 +304,7 @@
widget=forms.RadioSelect,
label=_('Advertise the existance of this list?'),
help_text=(
- 'Choose whether to include this list on the list of all lists'))
+ 'Choose whether to include this list on the list of all lists'))
filter_content = forms.TypedChoiceField(
coerce=lambda x: x == 'True',
choices=((True, _('Yes')), (False, _('No'))),
@@ -312,8 +312,8 @@
required=False,
label=_('Filter content'),
help_text=(
- 'Should Mailman filter the content of list traffic according to '
- 'the settings below?'))
+ 'Should Mailman filter the content of list traffic according to '
+ 'the settings below?'))
collapse_alternatives = forms.TypedChoiceField(
coerce=lambda x: x == 'True',
choices=((True, _('Yes')), (False, _('No'))),
@@ -321,8 +321,8 @@
required=False,
label=_('Collapse alternatives'),
help_text=(
- 'Should Mailman collapse multipart/alternative to its first part '
- 'content?'))
+ 'Should Mailman collapse multipart/alternative to its first part '
+ 'content?'))
convert_html_to_plaintext = forms.TypedChoiceField(
coerce=lambda x: x == 'True',
choices=((True, _('Yes')), (False, _('No'))),
@@ -330,8 +330,8 @@
required=False,
label=_('Convert html to plaintext'),
help_text=(
- 'Should Mailman convert text/html parts to plain text? This '
- 'conversion happens after MIME attachments have been stripped.'))
+ 'Should Mailman convert text/html parts to plain text? This '
+ 'conversion happens after MIME attachments have been stripped.'))
action_choices = (
("hold", _("Hold for moderator")),
("reject", _("Reject (with notification)")),
@@ -346,15 +346,15 @@
required=True,
choices=action_choices,
help_text=(
- 'Default action to take when a member posts to the list. '
- 'Hold -- This holds the message for approval by the list '
- 'moderators.'
- 'Reject -- this automatically rejects the message by sending a '
- 'bounce notice to the post\'s author. The text of the bounce '
- 'notice can be configured by you. '
- 'Discard -- this simply discards the message, with no notice '
- 'sent to the post\'s author. '
- 'Accept --accepts any postings to the list by default. '
+ 'Default action to take when a member posts to the list. '
+ 'Hold -- This holds the message for approval by the list '
+ 'moderators.'
+ 'Reject -- this automatically rejects the message by sending a '
+ 'bounce notice to the post\'s author. The text of the bounce '
+ 'notice can be configured by you. '
+ 'Discard -- this simply discards the message, with no notice '
+ 'sent to the post\'s author. '
+ 'Accept --accepts any postings to the list by default. '
'Defer -- Defers any postings to the list by default. '))
default_nonmember_action = forms.ChoiceField(
widget=forms.RadioSelect(),
@@ -365,17 +365,17 @@
required=True,
choices=action_choices,
help_text=(
- 'When a post from a non-member is received, the message\'s sender '
- 'is matched against the list of explicitly accepted, held, '
- 'rejected (bounced), and discarded addresses. '
- 'If no match is found, then this action is taken.'))
+ 'When a post from a non-member is received, the message\'s sender '
+ 'is matched against the list of explicitly accepted, held, '
+ 'rejected (bounced), and discarded addresses. '
+ 'If no match is found, then this action is taken.'))
description = forms.CharField(
label=_('Description'),
help_text=(
'This description is used when the mailing list is listed with '
- 'other mailing lists, or in headers, and so forth. It should be '
- 'as succinct as you can get it, while still identifying what the '
- 'list is.'),
+ 'other mailing lists, or in headers, and so forth. It should be '
+ 'as succinct as you can get it, while still identifying what the '
+ 'list is.'),
widget=forms.Textarea())
digest_size_threshold = forms.DecimalField(
label=_('Digest size threshold'),
@@ -394,8 +394,8 @@
required=False,
help_text=_(
'Should any existing Reply-To: header found in the original '
- 'message be stripped? If so, this will be done regardless of '
- 'whether an explict Reply-To: header is added by Mailman or not.')
+ 'message be stripped? If so, this will be done regardless of '
+ 'whether an explict Reply-To: header is added by Mailman or not.')
)
generic_nonmember_action = forms.IntegerField(
label=_('Generic nonmember action'),
@@ -409,11 +409,11 @@
'invalid': _('Please enter a valid domain name.')},
required=True,
help_text=(
- "The \"host_name\" is the preferred name for email to "
- "'mailman-related addresses on this host, and generally should be "
- "the mail host's exchanger address, if any. This setting can be "
- "useful for selecting among alternative names of a host that "
- "has multiple addresses."))
+ "The \"host_name\" is the preferred name for email to "
+ "'mailman-related addresses on this host, and generally should be "
+ "the mail host's exchanger address, if any. This setting can be "
+ "useful for selecting among alternative names of a host that "
+ "has multiple addresses."))
# informational, not editable
# next_digest_number = forms.IntegerField(
# label=_('Next digest number'),
@@ -456,35 +456,37 @@
("point_to_list", _("Reply goes to list")),
("explicit_header", _("Explicit Reply-to header set"))),
help_text=(
- 'Where are replies to list messages directed? No Munging is strongly '
- 'recommended for most mailing lists. \nThis option controls what '
- 'Mailman does to the Reply-To: header in messages flowing through '
- 'this mailing list. When set to No Munging, no Reply-To: header is '
- 'added by Mailman, although if one is present in the original '
- 'message, it is not stripped. Setting this value to either Reply to '
- 'List or Explicit Reply causes Mailman to insert a specific Reply-To: '
- 'header in all messages, overriding the header in the original '
- 'message if necessary (Explicit Reply inserts the value of '
- 'reply_to_address). There are many reasons not to introduce or '
- 'override the Reply-To: header. One is that some posters depend on '
- 'their own Reply-To: settings to convey their valid return address. '
- 'Another is that modifying Reply-To: makes it much more difficult to '
- 'send private replies. See `Reply-To\' Munging Considered Harmful for '
- 'a general discussion of this issue. See Reply-To Munging Considered '
- 'Useful for a dissenting opinion.Some mailing lists have restricted '
- 'posting privileges, with a parallel list devoted to discussions. '
- 'Examples are `patches\' or `checkin\' lists, where software changes '
- 'are posted by a revision control system, but discussion about the '
- 'changes occurs on a developers mailing list. To support these types '
- 'of mailing lists, select Explicit Reply and set the Reply-To: '
- 'address option to point to the parallel list. '))
+ 'Where are replies to list messages directed? No Munging is '
+ 'strongly recommended for most mailing lists. \nThis option '
+ 'controls what Mailman does to the Reply-To: header in messages '
+ 'flowing through this mailing list. When set to No Munging, no '
+ 'Reply-To: header is '
+ 'added by Mailman, although if one is present in the original '
+ 'message, it is not stripped. Setting this value to either Reply '
+ 'to List or Explicit Reply causes Mailman to insert a specific '
+ 'Reply-To: header in all messages, overriding the header in the '
+ 'original message if necessary (Explicit Reply inserts the value '
+ 'of reply_to_address). There are many reasons not to introduce or '
+ 'override the Reply-To: header. One is that some posters depend '
+ 'on their own Reply-To: settings to convey their valid return '
+ 'address. Another is that modifying Reply-To: makes it much more '
+ 'difficult to send private replies. See `Reply-To\' Munging '
+ 'Considered Harmful for a general discussion of this issue. '
+ 'See Reply-To Munging Considered Useful for a dissenting opinion. '
+ 'Some mailing lists have restricted '
+ 'posting privileges, with a parallel list devoted to discussions. '
+ 'Examples are `patches\' or `checkin\' lists, where software '
+ 'changes are posted by a revision control system, but discussion '
+ 'about the changes occurs on a developers mailing list. To '
+ 'support these types of mailing lists, select Explicit Reply and '
+ 'set the Reply-To: address option to point to the parallel list.'))
reply_to_address = forms.CharField(
label=_('Explicit reply-to address'),
required=False,
help_text=_(
'This option allows admins to set an explicit Reply-to address. '
- 'It is only used if the reply-to is set to use an explicitly set '
- 'header'),
+ 'It is only used if the reply-to is set to use an explicitly set '
+ 'header'),
)
# informational, not editable
# request_address = forms.EmailField(
@@ -497,16 +499,16 @@
required=False,
label=_('Send welcome message'),
help_text=(
- 'Send welcome message to newly subscribed members? '
- 'Turn this off only if you plan on subscribing people manually '
- 'and don\'t want them to know that you did so. This option is most '
- 'useful for transparently migrating lists from some other mailing '
- 'list manager to Mailman.'))
+ 'Send welcome message to newly subscribed members? '
+ 'Turn this off only if you plan on subscribing people manually '
+ 'and don\'t want them to know that you did so. This option is '
+ 'most useful for transparently migrating lists from some other '
+ 'mailing list manager to Mailman.'))
welcome_message_uri = forms.CharField(
label=_('URI for the welcome message'),
help_text=_(
'If a welcome message is to be sent to subscribers, you can '
- 'specify a URI that gives the text of this message.'),
+ 'specify a URI that gives the text of this message.'),
)
# tko - look this up
# scheme = forms.CharField(
@@ -517,41 +519,42 @@
label=_("Acceptable aliases"),
required=False,
help_text=(
- 'Alias names which qualify as explicit to or cc destination names '
- 'for this list. Alternate addresses that are acceptable when '
- '`require_explicit_destination\' is enabled. This option takes a '
- 'list of regular expressions, one per line, which is matched against '
- 'every recipient address in the message. The matching is performed '
- 'with Python\'s re.match() function, meaning they are anchored to '
- 'the start of the string.'))
+ 'Alias names which qualify as explicit to or cc destination names '
+ 'for this list. Alternate addresses that are acceptable when '
+ '`require_explicit_destination\' is enabled. This option takes a '
+ 'list of regular expressions, one per line, which is matched '
+ 'against every recipient address in the message. The matching is '
+ 'performed with Python\'s re.match() function, meaning they are '
+ 'anchored to the start of the string.'))
admin_immed_notify = forms.BooleanField(
widget=forms.RadioSelect(choices=choices),
required=False,
label=_('Admin immed notify'),
help_text=(
- 'Should the list moderators get immediate notice of new requests, '
- 'as well as daily notices about collected ones? List moderators '
- '(and list administrators) are sent daily reminders of requests '
- 'pending approval, like subscriptions to a moderated list, '
- 'or postings that are being held for one reason or another. '
- 'Setting this option causes notices to be sent immediately on the '
- 'arrival of new requests as well. '))
+ 'Should the list moderators get immediate notice of new requests, '
+ 'as well as daily notices about collected ones? List moderators '
+ '(and list administrators) are sent daily reminders of requests '
+ 'pending approval, like subscriptions to a moderated list, '
+ 'or postings that are being held for one reason or another. '
+ 'Setting this option causes notices to be sent immediately on the '
+ 'arrival of new requests as well. '))
admin_notify_mchanges = forms.BooleanField(
widget=forms.RadioSelect(choices=choices),
required=False,
label=_('Notify admin of membership changes'),
help_text=(
- 'Should administrator get notices of subscribes and unsubscribes?'))
+ 'Should administrator get notices of subscribes and unsubscribes?'
+ ))
administrivia = forms.BooleanField(
widget=forms.RadioSelect(choices=choices),
required=False,
label=_('Administrivia'),
help_text=(
- 'Administrivia tests will check postings to see whether it\'s '
- 'really meant as an administrative request (like subscribe, '
- 'unsubscribe, etc), and will add it to the the administrative '
- 'requests queue, notifying the administrator of the new request, '
- 'in the process.'))
+ 'Administrivia tests will check postings to see whether it\'s '
+ 'really meant as an administrative request (like subscribe, '
+ 'unsubscribe, etc), and will add it to the the administrative '
+ 'requests queue, notifying the administrator of the new request, '
+ 'in the process.'))
anonymous_list = forms.TypedChoiceField(
coerce=lambda x: x == 'True',
choices=((True, _('Yes')), (False, _('No'))),
@@ -559,8 +562,8 @@
required=False,
label=_('Anonymous list'),
help_text=(
- 'Hide the sender of a message, replacing it with the list address '
- '(Removes From, Sender and Reply-To fields)'))
+ 'Hide the sender of a message, replacing it with the list address '
+ '(Removes From, Sender and Reply-To fields)'))
# Informational field, not needed.
# created_at = forms.IntegerField(
# label=_('Created at'),
@@ -717,7 +720,7 @@
class UserPreferences(FieldsetForm):
"""
- Form handling the user's global, address and subscription based preferences.
+ Form handling the user's global, address and subscription based preferences
"""
choices = ((True, _('Yes')), (False, _('No')))
@@ -733,55 +736,58 @@
required=False,
label=_('Delivery status'),
help_text=_(
- 'Set this option to Enabled to receive messages posted to this '
- 'mailing list. Set it to Disabled if you want to stay subscribed, '
- 'but don\'t want mail delivered to you for a while (e.g. you\'re '
- 'going on vacation). If you disable mail delivery, don\'t forget to '
- 're-enable it when you come back; it will not be automatically
- 're-enabled.'))
+ 'Set this option to Enabled to receive messages posted to this '
+ 'mailing list. Set it to Disabled if you want to stay subscribed, '
+ 'but don\'t want mail delivered to you for a while (e.g. you\'re '
+ 'going on vacation). If you disable mail delivery, don\'t forget '
+ 'to re-enable it when you come back; it will not be automatically '
+ 're-enabled.'))
delivery_mode = forms.ChoiceField(
widget=forms.Select(),
choices=delivery_mode_choices,
required=False,
label=_('Delivery mode'),
help_text=_(
- 'If you select summary digests , you\'ll get posts bundled together '
- '(usually one per day but possibly more on busy lists), instead of '
- 'singly when they\'re sent. Your mail reader may or may not support '
- 'MIME digests. In general MIME digests are preferred, but if you '
- 'have a problem reading them, select plain text digests.'))
+ 'If you select summary digests , you\'ll get posts bundled '
+ 'together (usually one per day but possibly more on busy lists), '
+ 'instead of singly when they\'re sent. Your mail reader may or '
+ 'may not support MIME digests. In general MIME digests are '
+ 'preferred, but if you have a problem reading them, select '
+ 'plain text digests.'))
receive_own_postings = forms.BooleanField(
widget=forms.RadioSelect(choices=choices),
required=False,
label=_('Receive own postings'),
help_text=_(
- 'Ordinarily, you will get a copy of every message you post to the '
- 'list. If you don\'t want to receive this copy, set this option to No'
- ))
+ 'Ordinarily, you will get a copy of every message you post to the '
+ 'list. If you don\'t want to receive this copy, set this option '
+ 'to No.'
+ ))
acknowledge_posts = forms.BooleanField(
widget=forms.RadioSelect(choices=choices),
required=False,
label=_('Acknowledge posts'),
help_text=_(
- 'Receive acknowledgement mail when you send mail to the list?'))
+ 'Receive acknowledgement mail when you send mail to the list?'))
hide_address = forms.BooleanField(
widget=forms.RadioSelect(choices=choices),
required=False,
label=_('Hide address'),
help_text=_(
- 'When someone views the list membership, your email address is '
- 'normally shown (in an obscured fashion to thwart spam harvesters). '
- 'If you do not want your email address to show up on this '
- 'membership roster at all, select Yes for this option.'))
+ 'When someone views the list membership, your email address is '
+ 'normally shown (in an obscured fashion to thwart spam '
+ 'harvesters). '
+ 'If you do not want your email address to show up on this '
+ 'membership roster at all, select Yes for this option.'))
receive_list_copy = forms.BooleanField(
widget=forms.RadioSelect(choices=choices),
required=False,
label=_('Receive list copy'),
help_text=_(
- 'When you are listed explicitly in the To: or Cc: headers of a '
- 'list message, you can opt to not receive another copy from the '
- 'mailing list. Select Yes to avoid receiving copies from the '
- 'mailing list; select No to receive copies. '))
+ 'When you are listed explicitly in the To: or Cc: headers of a '
+ 'list message, you can opt to not receive another copy from the '
+ 'mailing list. Select Yes to avoid receiving copies from the '
+ 'mailing list; select No to receive copies. '))
class Meta:
diff --git a/src/postorius/tests/test_auth_decorators.py b/src/postorius/tests/test_auth_decorators.py
index 2017819..0ebf9e6 100644
--- a/src/postorius/tests/test_auth_decorators.py
+++ b/src/postorius/tests/test_auth_decorators.py
@@ -138,7 +138,8 @@
request.user = User.objects.create_superuser('su2', 'su@sodo.org',
'pwd')
return_value = dummy_function_mod_req(request,
- fqdn_listname='foolist@example.org')
+ fqdn_listname=
+ 'foolist@example.org')
self.assertEqual(return_value, True)
@patch.object(Client, 'get_list')
@@ -167,7 +168,8 @@
request.user = User.objects.create_user('les cl3', 'les@primus.org',
'pwd')
return_value = dummy_function_mod_req(request,
- fqdn_listname='foolist@example.org')
+ fqdn_listname=
+ 'foolist@example.org')
self.assertEqual(return_value, True)
@patch.object(Client, 'get_list')
@@ -182,5 +184,6 @@
request.user = User.objects.create_user('les cl4', 'les@primus.org',
'pwd')
return_value = dummy_function_mod_req(request,
- fqdn_listname='foolist@example.org')
+ fqdn_listname=
+ 'foolist@example.org')
self.assertEqual(return_value, True)
diff --git a/src/postorius/urls.py b/src/postorius/urls.py
index 8c147d9..b365ccf 100644
--- a/src/postorius/urls.py
+++ b/src/postorius/urls.py
@@ -44,24 +44,31 @@
ListUnsubscribeView.as_view(
), name='list_unsubscribe'),
url(r'^subscriptions$',
- 'list_subscriptions', name='list_subscriptions'),
+ 'list_subscriptions',
+ name='list_subscriptions'),
url(r'^mass_subscribe/$',
ListMassSubsribeView.as_view(
), name='mass_subscribe'),
url(r'^delete$',
'list_delete', name='list_delete'),
url(r'^held_messages/(?P[^/]+)/'
- 'accept$', 'accept_held_message', name='accept_held_message'),
+ 'accept$', 'accept_held_message',
+ name='accept_held_message'),
url(r'^held_messages/(?P[^/]+)/'
- 'discard$', 'discard_held_message', name='discard_held_message'),
+ 'discard$', 'discard_held_message',
+ name='discard_held_message'),
url(r'^held_messages/(?P[^/]+)/'
- 'defer$', 'defer_held_message', name='defer_held_message'),
+ 'defer$', 'defer_held_message',
+ name='defer_held_message'),
url(r'^held_messages/(?P[^/]+)/'
- 'reject$', 'reject_held_message', name='reject_held_message'),
+ 'reject$', 'reject_held_message',
+ name='reject_held_message'),
url(r'^held_messages$',
- 'list_held_messages', name='list_held_messages'),
+ 'list_held_messages',
+ name='list_held_messages'),
url(r'^settings/(?P[^/]+)?'
- '(?:/(?P.*))?$', 'list_settings',
+ '(?:/(?P.*))?$',
+ 'list_settings',
name='list_settings'),
)
diff --git a/src/postorius/utils.py b/src/postorius/utils.py
index 587f6c4..21fbe35 100644
--- a/src/postorius/utils.py
+++ b/src/postorius/utils.py
@@ -44,5 +44,6 @@
"""
return render_to_response(
'postorius/errors/generic.html',
- {'error': "Mailman REST API not available. Please start Mailman core."},
+ {'error': "Mailman REST API not available. "
+ "Please start Mailman core."},
context_instance=RequestContext(request))