summaryrefslogtreecommitdiff
path: root/src/mailman/handlers
Commit message (Collapse)AuthorAgeFilesLines
...
* Add tests for archive_url in message footerAbhilash Raj2015-08-302-8/+95
|
* Add some documentation for archiver links in footerAbhilash Raj2015-08-301-0/+9
|
* vars for templates are now per archiverAbhilash Raj2015-08-301-1/+2
| | | | | | So you cannot pass a dictionary as variable in templates. Create a variable for each active archiver for the list. The variable is of the form of <archiver_name>_url i.e. 'hyperkitty_url'
* don't add None values for archiver_urlAbhilash Raj2015-08-301-2/+0
|
* Choose which archiver to use in footerAbhilash Raj2015-08-301-3/+4
|
* Remove unused importAbhilash Raj2015-08-301-1/+0
|
* Add link to archiver from ListArchiverSetAbhilash Raj2015-08-301-5/+9
| | | | | | | 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
* Add link to archives in the message footer.Abhilash Raj2015-08-301-0/+7
| | | | | Add a list of links to archives in the message footer defined in the footer-generic.txt
* A couple of clean ups.Barry Warsaw2015-07-051-0/+2
|
* Some fixes caught by Barry during the reviewAurélien Bompard2015-07-052-11/+10
|
* According to RFC 2369, the URL should be between bracketsAurélien Bompard2015-06-302-2/+2
|
* The prototype archiver is not web-accessibleAurélien Bompard2015-06-303-49/+128
| | | | The URL headers (Archived-At and List-Archives) should not be added.
* Disable the member topics feature for nowAurélien Bompard2015-06-171-1/+2
| | | | | | It is non-functional (calls non-existant methods on the MailingList object), and a proper fix would require a schema change, so let's postpone it.
* Merge branch 'issue-109' into 'release-3.0'Barry Warsaw2015-06-023-49/+102
| | | | | | | | | | | Closes: #109 * Fix the traceback that occurred when trying to convert a `text/html` subpart to plaintext via the `mimedel` handler. Now, a configuration variable `[mailman]html_to_plain_text_command` in the `mailman.cfg` file defines the command to use. It defaults to `lynx`. (Closes: #109) See merge request !14
* We don't need the 'six' package any more.Barry Warsaw2015-01-041-1/+1
|
* Bump copyright years.Barry Warsaw2015-01-0426-26/+26
|
* Remove huge amounts of now unnecessary file boilerplate.Barry Warsaw2014-12-2226-124/+27
|
* Trunk merge.Barry Warsaw2014-12-221-0/+55
|\
| * LP: #1130696 - AttributeError on .senderBarry Warsaw2014-12-101-0/+55
| |\
| | * Make the MIMEDigester generate a subclass of MIMEMultipart with our additionsAurélien Bompard2014-12-092-12/+12
| | | | | | | | | | | | Fixes bug #1130696 (differently)
| | * Handle the MIMEMultipart created by the DigestRunner properlyAurélien Bompard2014-11-302-1/+55
| |/ | | | | | | Fixes: bug #1130696
* | Refactor subject-prefix handler out of cook-headers handler and make all testsBarry Warsaw2014-12-214-170/+348
| | | | | | | | pass.
* | Fix the digest.rst doctest.Barry Warsaw2014-12-181-2/+4
| |
* | Fix subject-munging.rstBarry Warsaw2014-12-171-14/+12
| |
* | Pass all command tests.Barry Warsaw2014-12-151-2/+1
| |
* | Core tests pass.Barry Warsaw2014-12-151-2/+2
| |
* | Better, but not perfect handler test passing.Barry Warsaw2014-12-1514-70/+179
| |
* | Fix pipelines tests.Barry Warsaw2014-12-151-1/+1
| |
* | Use listid instead of (fqdn) listname in the metadata pickle.Barry Warsaw2014-12-153-5/+3
| | | | | | | | | | | | load_external() now always opens in utf-8 mode. More test repair.
* | * Read the .cfg files not as bytes any more, but as UTF-8 encoding files.Barry Warsaw2014-12-152-19/+10
| | | | | | | | | | | | | | | | | | * Revert LP: #1170347 to not .as_string() the message being added the mailbox, because Python 3.4 handles this properly by default. Fix up some lmtp code, though I don't thinkk it's quite right yet. Fix handler tests.
* | Checkpointing.Barry Warsaw2014-11-304-18/+14
|/ | | | | | | | | | By using `six` I think I have most of the imports squared away. There's probably still uses of `unicode` built-ins that need fixing. The idea is to first get the test suite running (which it doesn't yet), and then to fix tests. There's a bug in lazr.config which requires us to patch it for now.
* * Fix Unicode errors when a message being added to the digest has non-asciiBarry Warsaw2014-11-292-1/+63
|\ | | | | | | | | characters in its payload, but no Content-Type header defining a charset. Given by Aurélien Bompard. (LP: #1170347)
| * Fix digest handler crashAurélien Bompard2014-11-252-1/+64
| | | | | | | | | | | | | | | | | | | | | | Fixes: #1170347 ------------- This line and the following will be ignored -------------- added: src/mailman/handlers/tests/test_to_digest.py modified: src/mailman/handlers/to_digest.py
* | * Fixed Unicode errors in the digest runner and when sending messages to theBarry Warsaw2014-11-292-1/+27
|\ \ | |/ |/| | | | | | | | | | | | | | | | | site owner as a fallback. Given by Aurélien Bompard. (LP: #1130957). Also: * Convert some uses of the unicode() built-in to bytes.decode() in preparation for Python 3 and to eliminate some pyflakes errors. * Added LogFileMark.read() as a convenience method.
| * Fix some unicode issuesAurélien Bompard2014-11-272-1/+18
|/ | | | Fixes: 1130957
* Fix a few issues with `python2 -3` compatibility.Barry Warsaw2014-11-191-3/+3
|
* tox-ify the test suite. First, this makes it easier to run since you don'tBarry Warsaw2014-11-082-16/+23
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | have to manually set up the virtualenv. Second, it allows us to later create a python3 environment for porting purposes. Other change: * The `mailman conf` command no longer takes the `-t/--sort` option; the output is always sorted. * The ``[database]migrations_path`` setting is removed. * You no longer have to create a virtual environment separately when running the test suite. Just use `tox`. * The RFC 2369 headers added to outgoing messages are now added in sorted order. * The JSON representation `http_etag` key uses an algorithm that is insensitive to Python's dictionary sort order.
| * Tox-ify the test suite. Now you don't have to create a virtualenv separately.Barry Warsaw2014-11-071-2/+3
|/ | | | | | | | | | | To do this, we have to handle random test ordering, since tox explicitly sets PYTHONHASHSEED. That's a good thing for the future Python 3 port. Removed `mailman conf -t/--sort`; now the output is always sorted. RFC 2369 headers are now sorted before being added. etag repr dicts are sorted using pprint.pformat().
* Use print() to smooth over the SA return of Python longs in PostgreSQL.Barry Warsaw2014-10-131-2/+2
|
* Use print functions consistently through, and update all __future__ imports toBarry Warsaw2014-04-2817-114/+114
| | | | | | | | reflect this. Also, mock out sys.stderr on some tests so that their nose2 output is quieter. A few other minor coding style consistencies.
* Trunk mergeBarry Warsaw2014-04-1421-24/+28
|\
| * Several internal improvements:Barry Warsaw2014-01-061-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * New events: - ConfirmationNeededEvent is triggered when a pendable requiring confirmation is created. This allows us to define an event handler for this event which sends the user notification. - SubscriptionEvent is triggered when a member is added to a mailing list. This lets us define an event handler which sends the welcome message. * send_welcome_message() now takes a member parameter instead of an address, which lets us directly access the member's delivery mode and user display name (if the member has a user, which it might not in some cases). * Use the list id in the pendable record instead of the list name for robustness (the latter can change but the former is permanent). * Test more registration conditions. * In the bin/runner command line switch handling, default `verbose` to None instead of False. This makes it work better with nose's -E switch (log to stderr). * In call_api(), if a POST, PUT, or PATCH method is used and data is None, encode the empty dictionary; seems like the behavior of urlencode() has changed, so this is safer. * Fix style and pyflakes warnings.
| * Bump copyright years.Barry Warsaw2014-01-0120-20/+20
| |
| * Merge branch contributed by Joanna Skrzeszewska.Barry Warsaw2013-11-271-4/+7
| |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Mailing lists can now individually enable or disable any archiver available site-wide. Contributed by Joanna Skrzeszewska. (LP: #1158040) Also: - IArchivers (i.e. system-wide archivers) now have an is_enabled attribute. - config.archivers now returns *all* archivers, including those that are disabled site-wide. This way, iterating over the list-specific archivers returns everything. - In the ini-file schema, make the default archiver class empty, otherwise the Prototype archiver is always enabled. - Added a `listarchiver` table to support list-specific archivers.
| | * Archived-At header calculation must observe list archivers.Barry Warsaw2013-11-271-3/+7
| |/
* | Aurélien Bompard's import-from-2.1 branch, with cleanup and fixes.Barry Warsaw2014-04-141-3/+11
|\ \ | |/ |/|
| * Import most list parameters from the 2.1 pickleAurélien Bompard2013-09-301-2/+7
|/
* Add enough __init__.py files to make these docs directories discoverable.Barry Warsaw2013-08-261-0/+0
|
* * `bin/runner` command has been simplified and its command line optionsBarry Warsaw2013-06-171-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | reduced. Now, only one `-r/--runner` option may be provided and the round-robin feature has been removed. * Fixed REST server crash on `reopen` command. Identification and test provided by Aurélien Bompard. (LP: #1184376) Also: * bin/runner now uses standard argparse instead of ScriptOptions. * The entire bin/runner machinery has bee reorganized and simplified. There * is no more Loop class. Signal setting is moved directly into the base Runner class and overrided in specific subclasses (e.g. RESTRunner which must cleanly shutdown its TCPServer). The runner exit status is now set directly on the Runner instance. * Fixed a few minor style issues. * In order to cleanly shutdown the RESTRunner's WSGI server, we must start a subthread which only watches for an Event and then calls the server's shutdown() method. It has to be this way because the WSGI server itself (due to interactions with SQLite), and the signal handlers (due to Python's signal handling semantics) must both run in the main thread. However, the shutdown() must be invoked from a subthread in order to prevent deadlock. * Refactor the RESTLayer to eliminate duplication of code.
* Bump copyright years.Barry Warsaw2013-01-0120-20/+20
|