Merge lp:~stylistica/postorius/inline_helptext into lp:postorius

Proposed by Sneha Priscilla
Status: Merged
Merged at revision: 114
Proposed branch: lp:~stylistica/postorius/inline_helptext
Merge into: lp:postorius
Diff against target: 173 lines (+42/-20)
1 file modified
src/postorius/forms.py (+42/-20)
To merge this branch: bzr merge lp:~stylistica/postorius/inline_helptext
Reviewer Review Type Date Requested Status
Terri Approve
Review via email: mp+141710@code.launchpad.net

Description of the change

Added inline help text for the 'more info' mouseover for each option in the list's settings.

To post a comment you must log in.
Revision history for this message
Terri (terriko) wrote :

Sorry it took so long to review, but this (of course!) looks great and we're merging it in today.

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'src/postorius/forms.py'
2--- src/postorius/forms.py 2012-12-31 19:14:28 +0000
3+++ src/postorius/forms.py 2013-01-03 08:08:26 +0000
4@@ -208,7 +208,8 @@
5 choices=((True, _('Yes')), (False, _('No'))),
6 widget=forms.RadioSelect,
7 required=False,
8- label= _('Include RFC2369 headers'))
9+ label= _('Include RFC2369 headers'),
10+ 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).'))
11 autorespond_choices = (
12 ("respond_and_continue", _("Respond and continue processing")),
13 ("respond_and_discard", _("Respond and discard message")),
14@@ -216,29 +217,36 @@
15 autorespond_owner = forms.ChoiceField(
16 choices=autorespond_choices,
17 widget=forms.RadioSelect,
18- label=_('Autorespond to list owner'))
19+ label=_('Autorespond to list owner'),
20+ help_text=('Should Mailman send an auto-response to emails sent to the -owner address?'))
21 autoresponse_owner_text = forms.CharField(
22 label=_('Autoresponse owner text'),
23 widget=forms.Textarea(),
24- required=False)
25+ required=False,
26+ help_text=('Auto-response text to send to -owner emails.'))
27 autorespond_postings = forms.ChoiceField(
28 choices=autorespond_choices,
29 widget=forms.RadioSelect,
30- label=_('Autorespond postings'))
31+ label=_('Autorespond postings'),
32+ help_text=('Should Mailman send an auto-response to mailing list posters?'))
33 autoresponse_postings_text = forms.CharField(
34 label=_('Autoresponse postings text'),
35 widget=forms.Textarea(),
36- required=False)
37+ required=False,
38+ help_text=('Auto-response text to send to mailing list posters.'))
39 autorespond_requests = forms.ChoiceField(
40 choices=autorespond_choices,
41 widget=forms.RadioSelect,
42- label=_('Autorespond requests'))
43+ label=_('Autorespond requests'),
44+ 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.'))
45 autoresponse_request_text = forms.CharField(
46 label=_('Autoresponse request text'),
47 widget=forms.Textarea(),
48- required=False)
49+ required=False,
50+ help_text=('Auto-response text to send to -request emails.'))
51 autoresponse_grace_period = forms.CharField(
52- label=_('Autoresponse grace period'))
53+ label=_('Autoresponse grace period'),
54+ 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).'))
55 bounces_address = forms.EmailField(
56 label=_('Bounces Address'),
57 required=False)
58@@ -253,19 +261,22 @@
59 choices=((True, _('Yes')), (False, _('No'))),
60 widget=forms.RadioSelect,
61 required=False,
62- label=_('Filter content'))
63+ label=_('Filter content'),
64+ help_text=('Should Mailman filter the content of list traffic according to the settings below?'))
65 collapse_alternatives = forms.TypedChoiceField(
66 coerce=lambda x: x == 'True',
67 choices=((True, _('Yes')), (False, _('No'))),
68 widget=forms.RadioSelect,
69 required=False,
70- label=_('Collapse alternatives'))
71+ label=_('Collapse alternatives'),
72+ help_text=('Should Mailman collapse multipart/alternative to its first part content?'))
73 convert_html_to_plaintext = forms.TypedChoiceField(
74 coerce=lambda x: x == 'True',
75 choices=((True, _('Yes')), (False, _('No'))),
76 widget=forms.RadioSelect,
77 required=False,
78- label=_('Convert html to plaintext'))
79+ label=_('Convert html to plaintext'),
80+ help_text=('Should Mailman convert text/html parts to plain text? This conversion happens after MIME attachments have been stripped.'))
81 action_choices = (
82 ("hold", _("Hold for moderator")),
83 ("reject", _("Reject (with notification)")),
84@@ -278,7 +289,8 @@
85 error_messages={
86 'required': _("Please choose a default member action.")},
87 required=True,
88- choices=action_choices)
89+ choices=action_choices,
90+ 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. Defer -- Defers any postings to the list by default. '))
91 default_nonmember_action = forms.ChoiceField(
92 widget=forms.RadioSelect(),
93 label=_('Default action to take when a non-member posts to the'
94@@ -286,13 +298,15 @@
95 error_messages={
96 'required': _("Please choose a default non-member action.")},
97 required=True,
98- choices=action_choices)
99+ choices=action_choices,
100+ 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.'))
101 description = forms.CharField(
102 label=_('Description'),
103 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.'),
104 widget=forms.Textarea())
105 digest_size_threshold = forms.DecimalField(
106 label=_('Digest size threshold'),
107+ help_text=('How big in Kb should a digest be before it gets sent out?')
108 )
109 digest_last_sent_at = forms.IntegerField(
110 label=_('Digest last sent at'),
111@@ -324,6 +338,7 @@
112 )
113 posting_pipeline = forms.CharField(
114 label=_('Pipeline'),
115+ help_text=('Type of pipeline you want to use for this mailing list')
116 )
117 post_id = forms.IntegerField(
118 label=_('Post ID'),
119@@ -347,7 +362,8 @@
120 choices=(
121 ("no_munging", _("No Munging")),
122 ("point_to_list", _("Reply goes to list")),
123- ("explicit_header", _("Explicit Reply-to header set"))))
124+ ("explicit_header", _("Explicit Reply-to header set"))),
125+ help_text=('Where are replies to list messages directed? No Munging is strongly recommended for most mailing lists.This 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. '))
126 request_address = forms.EmailField(
127 label=_('Request address'),
128 required=False)
129@@ -356,32 +372,38 @@
130 choices=((True, _('Yes')), (False, _('No'))),
131 widget=forms.RadioSelect,
132 required=False,
133- label=_('Send welcome message'))
134+ label=_('Send welcome message'),
135+ 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.'))
136 scheme = forms.CharField(
137 label=_('Scheme'),
138 required=False)
139 acceptable_aliases = forms.CharField(
140 widget=forms.Textarea(),
141 label=_("Acceptable aliases"),
142- required=False)
143+ required=False,
144+ 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.'))
145 admin_immed_notify = forms.BooleanField(
146 widget=forms.RadioSelect(choices=choices),
147 required=False,
148- label=_('Admin immed notify'))
149+ label=_('Admin immed notify'),
150+ 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. '))
151 admin_notify_mchanges = forms.BooleanField(
152 widget=forms.RadioSelect(choices=choices),
153 required=False,
154- label=_('Notify admin of membership changes'))
155+ label=_('Notify admin of membership changes'),
156+ help_text=('Should administrator get notices of subscribes and unsubscribes?'))
157 administrivia = forms.BooleanField(
158 widget=forms.RadioSelect(choices=choices),
159 required=False,
160- label=_('Administrivia'))
161+ label=_('Administrivia'),
162+ 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.'))
163 anonymous_list = forms.TypedChoiceField(
164 coerce=lambda x: x == 'True',
165 choices=((True, _('Yes')), (False, _('No'))),
166 widget=forms.RadioSelect,
167 required=False,
168- label=_('Anonymous list'))
169+ label=_('Anonymous list'),
170+ help_text=('Hide the sender of a message, replacing it with the list address (Removes From, Sender and Reply-To fields)'))
171 created_at = forms.IntegerField(
172 label=_('Created at'),
173 widget=forms.HiddenInput(),

Subscribers

People subscribed via source and target branches