| Commit message (Collapse) | Author | Age | Files | Lines |
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
| |
See !161
|
| |
|
|
|
|
| |
This allows the filtering to be done at the database level. It also
makes list pagination much more efficient, since the slicing is done at
the database level too.
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
| |
* Get rid of explicit __all__ settings and use the @public decorator.
* Get rid of ^L's
* Use expected_count argument for get_queue_messages()
* Various code modernizations.
* Other minor changes to make flake8 happy.
|
| |
|
|
| |
Also add indexes on the Ban fields that are filtered on.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
* Use `yield from` wherever appropriate.
* Use SA's .one_or_none() where appropriate.
- Fix a bug in MailingList.pass_extensions.
- Use ValueError in other places for consistency.
- Remove unreached/nonsense code.
- Simplify the SubscriptionService.find_member() and .find_members()
implementations.
- Boost coverage.
|
| | |
|
| |
|
|
|
|
|
| |
* Sort the .delete()'s
* Remove an unused import.
* Renamed and documented some tests.
* Support tox's new passenv setting.
|
| | |
|
| | |
|
| |
|
|
| |
list is deleted.
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
| |
* Remove an unused import.
* Add skips for all migration unit tests.
* Fix model class attribute typo.
* .values() returns tuples, so adjust for that.
* Add a test.
|
| | |
|
| | |
|
| | |
|
| |
|
|
| |
* update some queries to match SA style
|
| |
|
|
| |
filters. Given by Aurélien Bompard. (LP: #1117174)
|
| | |
|
| |
|
|
| |
(LP: #1117176)
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
now via the RFC 2369 `list_id` instead of the fqdn listname (i.e. posting
address). This is because while the posting address can change if the
mailing list is moved to a new server, the list id is fixed.
(LP: #1024509)
+ IListManager.get_by_list_id() added.
+ IListManager.list_ids added.
+ IMailingList.list_id added.
+ Several internal APIs that accepted fqdn list names now require list ids,
e.g. ISubscriptionService.join() and .find_members().
+ IMember.list_id attribute added; .mailing_list is now an alias that
retrieves and returns the IMailingList.
- list_id added (LP: #1024509)
|
| |
|
|
|
|
|
|
| |
- Add explicit dependency on zope.event in setup.py.
- Use Python 3 compatible syntax for specifying that a class implements an
interface, i.e. the @implementer class decorator.
- print_function futures.
- Whitespace normalization.
|
| |
|
|
| |
- Convert direct use of config.db global to use the @dbconnection decorator.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
------------
* Internally, all datetimes are kept in the UTC timezone, however because of
LP: #280708, they are stored in the database in naive format.
* `received_time` is now added to the message metadata by the LMTP runner
instead of by `Switchboard.enqueue()`. This latter no longer depends on
`received_time` in the metadata.
* The `ArchiveRunner` no longer acquires a lock before it calls the
individual archiver implementations, since not all of them need a lock. If
they do, the implementations must acquire said lock themselves.
Configuration
-------------
* New configuration variables `clobber_date` and `clobber_skew` supported in
every `[archiver.<name>]` section. These are used to determine under what
circumstances a message destined for a specific archiver should have its
`Date:` header clobbered.
|
| | |
|
| |
|
|
| |
every mailing list as (list_name, mail_host).
|
| | |
|
| |
|
|
|
| |
MailingList is loaded from the database. We need to call this explicitly in
the constructor, but at least nothing else will ever need to call it.
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
| |
* Add ListCreatingEvent and ListDeletingEvent. These are sent before the
operation actually occurs, whereas the previously added ListCreatedEvent and
ListDeletedEvent are sent after the operation. Specifically, this is
necessary because request database deletion requires the IMailingList
object, which is only available before the list is deleted.
* Add a handler to clear out the requests database for a mailing list, when
the mailing list is about to be deleted.
|
| | |
|
| | |
|
| |
|
|
|
| |
for consistency. This changes the REST API for mailing list
resources. (LP: #787599)
|
| | |
|
| | |
|
| |
|
|
|
|
| |
stuff around. We no longer need APIValueError or IResolvePathNames. Also,
refactor the creation of the REST server so that it could be used with other
WSGI frameworks.
|
| |
|
|
|
|
| |
RESTful. We have to use httplib2 to get DELETE and PUT.
This is a prototype and could still use much cleanup.
|
| |
|
|
|
| |
* Put the domain name on the BadDomainSpecificationError
* Give the IListManager an __iter__()
|
| | |
|
| |
|
|
|
|
| |
* add_member() now returns the newly created IMember.
* Reorganized several exceptions and exposed them to the REST API.
* Added NoSuchListError.
|
|
|
database support goes in mailman.database. Move stuff out of
mailman/database/__init__.py.
|