Rename info and description fields to short and long description.
[mailman-postorious.git] / src / postorius / doc / news.rst
blob877f73b69d50b212c37787854a66179ac9fc1dc3
1 ================
2 News / Changelog
3 ================
5 The Postorius Django app provides a web user interface to
6 access GNU Mailman.
8 Postorius is free software: you can redistribute it and/or
9 modify it under the terms of the GNU Lesser General Public License as
10 published by the Free Software Foundation, version 3 of the License.
12 Postorius is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser
15 General Public License for more details.
17 You should have received a copy of the GNU Lesser General Public License
18 along with Postorius. If not, see <http://www.gnu.org/licenses/>.
21 .. _NEWS-1.3.7:
23 1.3.7
24 =====
26 (2022-XX-XX)
28 * Fix a bug where various form(s) allowed setting empty values for
29   ``delivery_mode`` and ``language``. (Fixes #540, #522)
30 * Rename labels description and info fields as 'Short Description'
31   and 'Long Description' to signify what they mean. (Fixes #510)
34 .. _NEWS-1.3.6:
36 1.3.6
37 =====
39 (2021-09-28)
44 * Add 'Delivery Mode' and 'Moderation Action' columns to List members
45   page. (See #471)
46 * Add support to list and handle pending un-subscription requests. (Closes
47   #332)
48 * Add support to specify a reason when handling (un)subscription requests
49   (Closes #450)
50 * Success messages to mass subscribes now properly distinguish subscription
51   from invitation and indicate possible pending confirmation or approval.
52   (Closes #481)
53 * User profile dropdown no longer is too far right.  (Closes #486)
54 * Expose ``archive_rendering_mode`` in Archiver settings to choose between
55   plaintext and rich text rendering of emails in Hyperkitty. (Closes #487)
56 * Allow choosing ``delivery_mode`` and ``delivery_status`` when subscribing to
57   a List. (Closes #488)
58 * Redirect to ``domain_index`` after ``domain_edit`` succeeds. (Closes
59   #428)
60 * Expose new ``bounce_notify_owner_on_bounce_increment`` list setting on
61   ``Bounce Processing`` settings, and expose the corresponding template.
62 * Expose the ``forward_unrecognized_bounces_to`` setting on
63   ``Bounce Processing`` settings.
64 * Clarified the description of ``Maximum number of recipients``.  (Closes #515)
65 * List summary view will now display a table for all subscriptions with
66   ``delivery_mode`` and ``delivery_status``. (Closes #470)
67 * Add a new user management interface for superusrs. (See #518)
68 * Allow searching for users in list user views. (See #518)
69 * Show both display name and email in user management interface if available,
70   (See #518)
71 * Allow ``list:admin:notice:pending`` template to be set in Postorius. (Closes
72   #526)
74 Other
75 -----
77 * Use mass-subscription API in core for Mass Removal of Members. (Closes #464)
78 * Fix a bug where users with multiple subscriptions to a List couldn't view
79   their Preferences for all addresses. (Closes #472)
80 * Check for pending unsubscription requests and notify user when the request is
81   pending approval. (Closes #473)
82 * Improve the performance of Members' page by skipping an API call. (Closes
83   #483)
84 * Improve the performance of List index page for Superuser. (See !599)
85 * Skip looking up choosable_domains for non-superuser to reduce API calls. (See
86   !600)
87 * Improve the performance of List owner access checks. (See !598)
88 * Add a new ``APICountingMiddleware`` to performance testing purposes. (See
89   !604)
90 * Use ``user_id`` as ``subscriber`` instead of addresses to improve the
91   efficiency of list index page. (Closes #419)
92 * ``AUTOCREATE_MAILMAN_USER`` setting is now removed and a Mailman user is
93   always created when a User object in created in Django. Also remove duplicate
94   implementation of ``get_mailman_user`` from ``MailmanUserManager`` so that we
95   can use a single implementation that uses caching for efficient lookups.
96 * Bump bundled jQuery to 3.6.0.slim version. (See !637)
97 * Use the full jQuery not the slim version. (Closes #523)
98 * Do not show Ownerships and Moderator roles in the 'Subscriptions' page
99   under mange new user interface. (Closes #534)
101 Ascessibility
102 -------------
103 * Move the focus to the textarea in mass subscribe page if there are errors in
104   the form. (Closes #493)
107 .. _news-1.3.5:
109 1.3.5
110 =====
112 (2021-09-05)
114 * ``AUTOCREATE_MAILMAN_USER`` setting is now removed and a Mailman user is
115   always created when a User object in created in Django. Also remove duplicate
116   implementation of ``get_mailman_user`` from ``MailmanUserManager`` so that we
117   can use a single implementation that uses caching for efficient lookups.
119 Security
120 --------
121 * Check that a user owns the email address they are trying to unsubscribe. This
122   fixes a bug in which any logged-in user could unsubscribe any email address
123   from any mailing list, leaking whether that address was subscribed originally.
124   (CVE-2021-40347, Closes #531)
127 .. _news-1.3.4:
129 1.3.4
130 =====
132 (2021-02-02)
134 * Update the default Site when creating a domain to match the domain if it is
135   ``example.com``. (Closes #427)
136 * Add the ability to subscribe via Primary Address instead of specific
137   address. (See !516)
138 * Fix a bug where the user's display name would be ignore when
139   subscribing. (Closes #429)
140 * Display a user's name in the pending subscription request list. (Closes #430)
141 * Set a user's preferrred_address in Core if it isn't already set and the user
142   has a Primary Address that is verified.
143 * Use the new APIs in Core to get the count of held messages and pending
144   subscriptions to improve peroformance of settings page for list
145   owners. (Fixes #417)
146 * Show held message is local time of the User. (Closes #434)
147 * Fix a bug where non-member options page would show an owner's options if the
148   same email was subscribed as owner and non-member in a list. (Closes #436)
149 * Switching subscription from one email address to other or Primary Address now
150   preserves preferences and does not require Moderator approval. (Closes #425)
151 * Make 'Archives' and 'List Options' urls more prominently visible in the
152   list summary page as buttons. (Closes #439)
153 * Added the ability to issue invitations from the mass subscribe view.
154 * Expose ``emergency`` moderation setting for MailingList.
155 * Fixed some minor HTML errors. (Closes #442)
156 * Fix the bug where ListOfStringsField couldn't be unset in Postorius. (Closes
157   #444)
158 * Allow ``list:user:action:invite`` template to be set in Postorius. (Closes
159   #454)
160 * Fix a bug where the Bans form would always use default language instead of
161   current request's language. (Closes #441)
162 * Fix the URL on cancel buttons in template's confirm delete page. (Closes
163   #458)
164 * Use server side filtering for pending subscription requests for moderator
165   approval. (See !559)
166 * Allow setting moderation action for a nonmember from Held Message modal. (
167   Closes #448)
168 * Add a new view to confirm subscriptions or new emails for Users using
169   Postorius. (Fixes #459)
170 * Fix a bug where membership check compared email addresses in different
171   cases. (Closes #457)
172 * Mass removal now accepts address formats with display names and/or angle
173   brackets. (Closes #455)
174 * Add support to override ``send_welcome_message`` when mass subscribing to
175   suppress welcome messages. (Closes #99)
176 * Add support for Django 3.1.x. (See !574)
177 * The list's ``send_goodbye_message`` is now settable on the Automatic
178   Responses view.  (Closes #466)
179 * Support ``HYPERKITTY_ENABLE_GRAVATAR`` setting to control the user gravatar.
180   (Closes #467)
182 .. _news-1.3.3:
184 1.3.3
185 =====
187 (2020-06-01)
189 * Expose additional list settings.  (See !483)
190 * Correct description of Digest Frequency.  (Closes #395)
191 * Added links to Reply-To munging articles.  (Closes #401)
192 * Fix "Show Headers" button to show the held message headers in the
193   held message popup. (Closes #407)
194 * Fix the held message popup structure and increase the max width of the popup
195   to be 800px(modal-lg) for larger screens. (Closes #405)
196 * Fix FILTER_VHOST = True option to try to find the email host corresponding
197   to the requesting web host.  (Closes #394)
198 * Allow specifying a reason when rejecting a held message. (Closes #412)
199 * Allow users to set their preferred language in their preferences. (Closes #413)
200 * Add support to ban addresses for the entire Mailman installation. (Closes #357)
201 * Un-handled ``HTTPError`` exception raised from MailmanClient now results in an
202   error page and proper logging instead of mysterious ``KeyError`` in logs.
203   (Closes #341)
204 * Change List settings navigation to be vertical instead of horizontal. (See
205   !509)
206 * Move bounce processing settings into a new vertical tab for better
207   visibility.
208 * Add URL to edit the Web host for each domain in Domain Index page. Also, show
209   the ``SITE_ID`` for each webhost. (Closes #426)
212 1.3.2
213 =====
215 (2020-01-12)
217 * Do not show pagination, when user is authenticated. (Closes #387)
218 * Drop support for Django 1.11.
219 * Add support to choose options for ``pre_confirm``, ``pre_approve`` and
220   ``pre_verify`` when mass subscribing. (Fixes #203)
222 1.3.1
223 =====
225 (2019-12-08)
227 * Show templates' file names in selection list where admins can pick
228   individual templates for customization. (See !425)
229 * Make template short names more prominent on all email templates related
230   views. (See !425)
231 * Bind object attributes to local variables in {% blocktrans %} (See !439)
232 * Set the initial style in new list form as the default style. (Closes #310)
233 * Fix a bug where logged in users's index page view would cap the total number
234   of lists for a role to 50. (Closes #335)
235 * Fix a bug where handling non-existent held message can raise 500
236   exception. (Closes #349)
237 * Emit appropriate signals when Domain and MailingList is updated. (Closes
238   #385)
239 * Do not strip leading whitespaces in Email Templates. (Closes #301)
240 * Hold date for held messages are now displayed correctly. (Closes #312)
241 * Add support for Python 3.8.
242 * Add support for Django 3.0.
244 1.3.0
245 =====
247 (2019-09-04)
249 * Fix a string substitution bug which would cause un-substituted raw string to
250   be exposed as notification to admin. (Closes #327)
251 * Add support for ``FILTER_VHOST`` option to filter MalingLists based on
252   ``HOST`` header of incoming request. (Closes #330)
253 * List Summary page now renders List info as markdown. (Closes #244)
254 * Moderation action for held message's sender can now be set from held
255   message's view.(Closes #127)
256 * Add a 'Ban' button to list of subscription requests to help administrators
257   against spams. (Closes #339)
258 * Added support for Django 2.2.
259 * ``pytest`` will be used to run tests instead of default Django's test runner.
260 * Remove ``vcrpy`` and use fixtures to start and stop Mailman's REST API to
261   test against, without having to record tapes to be replayed.
262 * Corrected display message in 'recieve_list_copy' option in global mailman
263   preferences of mailman settings. (Closes #351)
264 * Allow setting a MailingList's Preferred Language. (Closes #303)
265 * Allow a empty templates as a workaround for missing settings to skip
266   email decoration. (Closes #331)
267 * Expose ``digest_volume_frequency``, ``digest_send_periodict`` and
268   ``digests_enabled`` settings for MailingLists.
269 * Add a badge with count of held messages and pending subscription requests
270   for moderator approval. (Closes #308)
271 * Add support to add, view and remove domain owners.
272 * Allow setting the visibility options for MailingList's member list.
273 * Make page titles localizable.
276 1.2.4
277 =====
278 (2019-02-09)
280 * Add support for ``explicit_header_only`` in list settings.
281   (See !369)
284 1.2.3
285 =====
286 (2019-01-19)
288 * Expose ``max_num_recipients`` in list settings.  (Closes #297)
289 * Add support for Non-member management in Postorius.  (Closes #265)
290 * ``Members`` tab in Mailing List settings page is now called ``Users``.
291   (Closes #309)
292 * Show pending subscription requests are only pending for Moderator.
293   (Closes #314)
296 1.2.2
297 =====
298 (2018-08-30)
300 * Add support for Python 3.7 with Django 2.0+
301 * Index page only shows related lists for signed-in users with option to
302   filter based on role.
303 * Expose respond_to_post_requests in Postorius. (Closes #223)
306 1.2.1
307 =====
308 (2018-07-11)
310 * A Django migration was missing from version 1.2.0.  This is now added.
314 (2018-07-10)
316 * Postorius now runs only on Python 3.4+ and supports Django 1.8 and 1.11+
317 * Added the ability to set and edit ``alias_domain`` to the ``domains`` forms.
318 * List Create form now allows selecting the ``style``. A ``style`` is how a new
319   mailing list is configured.
320 * Minimum supported Mailman Core version is now 3.2.0. This is because the
321   ``styles`` attribute for MailingList resource is exposed in 3.2, which
322   contains all the default ``styles`` supported by Core and their human readable
323   description.
324 * Account subscription page now lists all the memberships with their respective
325   roles. This avoids repeated API calls for the way data was displayed
326   before.  (Closes #205)
327 * Postorius now supports only Django 1.11+.
328 * Duplicate MailingList names doesn't return a 500 error page and instead adds
329   an error to the New MailingList  form. (Fixes #237)
330 * Pending subscription requests page is now paginated. (See !298)
331 * Add owners/moderators form now allows specifying a Display Name, along with
332   their email. (Fixes #254)
333 * Members views now show total number of members at the top. (See !315)
334 * Fixed a bug where GET on views that only expect a POST would cause 500 server
335   errors instead of 405 method not allowed. (Fixes #185)
336 * Member preferences form can now be saved without having to change all the
337   fields. (Fixes #178)
338 * Fixed a bug where the 'Delete' button to remove list owners didn't work due to
339   wrong URL being rendered in the templates. (Fixes #274)
340 * Require Explicit Destination is added to the Message Acceptance form.
341   (Closes #277)
342 * Delete Domain page now shows some extra warning information about all the
343   mailing lists that would be deleted after deleting the Domain. (See !250)
344 * Superusers can now view Mailman Core's current version and REST API version
345   being used under 'System Information' menu in the top navigation bar. (See !325)
346 * Fixed a bug where 500 error template wouldn't render properly due to missing
347   context variables in views that render that templates (See !334)
348 * Postorius now allows adding and editing templates for email headers, footers
349   and some of the automatic responses sent out by Mailman. (See !327)
351 1.1.2
352 =====
353 (2017-12-27)
355 * Added a new ``reset_passwords`` command that resets _all_ user's passwords
356   inside of Core. This password is different from the one Postorius
357   maintains. The Postorius password is the one used for logging users in.
358 * Postorius now sets the 'Display Name' of the user in Core correctly. This
359   fixes a security vulnerability where user's display_name would be set as their
360   Core's password.
363 1.1.1
364 =====
365 (2017-11-17)
367 * Improved testing and internal bug fixes.
368 * Preserve formatting of Mailing List description in the summary view.
369 * Site's Name isn't capitalized anymore in the navigation bar.
370 * html5shiv and response.js libraries are now included, instead of loading from a CDN.
372 1.1.0 -- "Welcome to This World"
373 ================================
374 (2017-05-26)
376 * Added DMARC mitigation settings
377 * Switch to Allauth auth library
378 * Preference page improvements
379 * Moderation page improvements
380 * Django support up to Django 1.11
381 * Added form to edit header matches
382 * Domain edit form improvements
383 * All pipelines recognized in alter messages form
384 * Use django-mailman3 to share common code with HyperKitty
385 * Various bug fixes, code cleanup, and performance improvements
388 1.0.3
389 =====
390 (2016-02-03)
392 * Fix security issue
395 1.0.2
396 =====
397 (2015-11-14)
399 * Bug fix release
402 1.0.1
403 =====
404 (2015-04-28)
406 * Help texts Small visual alignment fix; removed unnecessary links to
407   separate help pages.
408 * Import fix in fieldset_forms module (Django1.6 only)
411 1.0.0 -- "Frizzle Fry"
412 ======================
413 (2015-04-17)
415 * French translation. Provided by Guillaume Libersat
416 * Addedd an improved test harness using WebTest. Contributed by Aurélien Bompard.
417 * Show error message in login view. Contributed by Aurélien Bompard (LP: 1094829).
418 * Fix adding the a list owner on list creation. Contributed by Aurélien Bompard (LP: 1175967).
419 * Fix untranslatable template strings. Contributed by Sumana Harihareswara (LP: 1157947).
420 * Fix wrong labels in metrics template. Contributed by Sumana Harihareswara (LP: 1409033).
421 * URLs now contain the list-id instead of the fqdn_listname. Contributed by Abhilash Raj (LP: 1201150).
422 * Fix small bug moderator/owner forms on list members page. Contributed by Pranjal Yadav (LP: 1308219).
423 * Fix broken translation string on the login page. Contributed by Pranjal Yadav.
424 * Show held message details in a modal window. Contributed by Abhilash Raj (LP: 1004049).
425 * Rework of internal testing
426 * Mozilla Persona integration: switch from django-social-auto to django-browserid: Contributed by Abhilash Raj.
427 * Fix manage.py mmclient command for non-IPython shells. Contributed by Ankush Sharma (LP: 1428169).
428 * Added archiver options: Site-wide enabled archivers can not be enabled
429   on a per-list basis through the web UI.
430 * Added functionality to choose or switch subscription addresses. Contributed by Abhilash Raj.
431 * Added subscription moderation, pre_verification/_confirmation.
432 * Several style changes.
435 1.0 beta 1 -- "Year of the Parrot"
436 ==================================
437 (2014-04-22)
439 * fixed pip install (missing MANIFEST) (LP: 1307624). Contributed by Aurélien Bompard
440 * list owners: edit member preferences
441 * users: add multiple email addresses
442 * list info: show only subscribe or unsubscribe button. Contributed by Bhargav Golla
443 * remove members/owners/moderator. Contributed by Abhilash Raj
446 1.0 alpha 2 -- "Is It Luck?"
447 ============================
448 (2014-03-15)
450 * dev setup fix for Django 1.4 contributed by Rohan Jain
451 * missing csrf tokens in templates contributed by Richard Wackerbarth (LP: 996658)
452 * moderation: fixed typo in success message call
453 * installation documentation for Apache/mod_wsgi
454 * moved project files to separate branch
455 * show error message if connection to Mailman API fails
456 * added list members view
457 * added developer documentation
458 * added test helper utils
459 * all code now conform to PEP8
460 * themes: removed obsolete MAILMAN_THEME settings from templates, contexts, file structure; contributed by Richard Wackerbarth (LP: 1043258)
461 * added access control for list owners and moderators
462 * added a mailmanclient shell to use as a ``manage.py`` command (``python manage.py mmclient``)
463 * use "url from future" template tag in all templates. Contributed by Richard Wackerbarth.
464 * added "new user" form. Contributed by George Chatzisofroniou.
465 * added user subscription page
466 * added decorator to allow login via http basic auth (to allow non-browser clients to use API views)
467 * added api view for list index
468 * several changes regarding style and navigation structure
469 * updated to jQuery 1.8. Contributed by Richard Wackerbarth.
470 * added a favicon. Contributed by Richard Wackerbarth.
471 * renamed some menu items. Contributed by Richard Wackerbarth.
472 * changed static file inclusion. Contributed by Richard Wackerbarth.
473 * added delete domain feature.
474 * url conf refactoring. Contributed by Richard Wackerbarth.
475 * added user deletion feature. Contributed by Varun Sharma.
479 1.0 alpha 1 -- "Space Farm"
480 ===========================
481 (2012-03-23)
483 Many thanks go out to Anna Senarclens de Grancy and Benedict Stein for
484 developing the initial versions of this Django app during the Google Summer of
485 Code 2010 and 2011.
487 * add/remove/edit mailing lists
488 * edit list settings
489 * show all mailing lists on server
490 * subscribe/unsubscribe/mass subscribe mailing lists
491 * add/remove domains
492 * show basic list info and metrics
493 * login using django user account or using BrowserID
494 * show basic user profile
495 * accept/discard/reject/defer messages
496 * Implementation of Django Messages contributed by Benedict Stein (LP: #920084)
497 * Dependency check in setup.py contributed by Daniel Mizyrycki
498 * Proper processing of acceptable aliases in list settings form contributed by
499   Daniel Mizyrycki