| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| |/ |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
| |
styles (by name) via `.../lists/styles`. Create a list in a specific style
by using POST data `style_name=<style>`. (LP: #975692)
Also:
* Rewrite list.rst and some of configuration.rst to be more readable as
documentation. Bad-path tests are moved to unittests.
* Some improvements to printing lists as part of REST responses. This
eliminates the ugly u''-prefixes on strings.
|
| |
|
|
|
|
|
|
| |
`legacy-announce` style is added. This is similar to the `legacy-default`
except set up for announce-only lists.
Also, major refactoring of the default style into (hopefully) smaller
composable units.
|
| | |
|
| | |
|
| |
|
|
| |
mailinglist.unsubscribe_policy, mailinglist.subscribe_auto_approval.
|
| | |
|
| |
|
|
| |
removed.
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
IMailingList.style_name attribute. The problem is, there's nothing to
guarantee that only one style will get run, and there's no sense in keeping
track of the last style applied.
Also:
* Remove ListManager.create()'s setting of .personalize and .display_name.
These should be left to the styles. (There's no reason why only these two
would be set here.)
* Fix some typos.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Rework list style management. No more style priorities or matching.. Now,
you name a style explicitly to apply and that's it.
* create_list() now takes a `style` argument.
* config file now names both a default style to use, and a set of paths to
scan for IStyle instances. (This could be a model for other plugins.)
* added IMailingList.style_name to record the last style applied, but this is
going to be removed in subsequent revisions.
Also:
* Move find_components() and scan_module() from app/finder.py to
utilities/modules.py
* Cleaned up lifecycle.rst for better documentation. Some tests moved to
test_lifecycle.py.
* Remove some unnecessary test tearDown() code.
|
| | |
|
| |
|
|
|
|
| |
data must contain a single parameter `cleartext_password` and if this
matches, a 204 (No Content) will be returned, otherwise a 403 (Forbidden)
is returned. (LP: #1065447)
|
| |
|
|
|
|
|
| |
* Migrate non-doctests to the test_users.py unittest.
* Add more corner cases to the unittest.
* Be sure to return a 404 when trying to get the address records of a
non-existant user.
|
| | |
|
| |\ |
|
| | |
| |
| |
| | |
subcommands. (LP: #1035033)
|
| | |
| |
| |
| |
| | |
when a new member joins a mailing list, and an `UnsubscriptionEvent` when a
member leaves a mailing list. (LP: #1047286)
|
| |/ |
|
| | |
|
| | |
|
| |\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
moderation. (LP: #1090753)
* Fixed `send_goodbye_message()`. (LP: #1091321)
Also:
* Rewrite and refactor request.rst into better documentation, moving
non-good-path tests into unittests. This doctest now only describes the
IRequests API, while the bulk of the moderation documentation now lives in
moderator.rst.
* When a subscription request is pended, the `delivery_mode` key is now just
the enum item's name, instead of the str() of the enum (which would include
the class name). We know it's always going to be a DeliveryMode enum.
* Refactor out the welcome_message calculation from the welcome_message_uri,
since the same algorithm can apply to goodbye_message_uri.
* When a _Request is retrieved, include the RequestType enum name in the data
dictionary (if there is one) under the `_request_type` key. Some APIs find
this useful, but it's not directly returned otherwise.
* For held messages via the REST API, flatten the `data` key into the
top-level JSON representation, exposing some of the _mod_* keys under their
non-_mod_* equivalent. Ignore _mod_* keys we don't care about. This is an
API change.
|
| | |
| |
| |
| | |
* Fix LP: 1091321; typo in send_goodbye_message().
|
| | | |
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
documentation. Move non-documentation tests into a separate unittest file.
* Separate out the doctests for IRequest from the doctests for
app/moderator.py and place the latter in a separate file.
* Fix typo in app/membership.py (s/send_goodbye_msg/send_goodbye_message), but
LP: #1091321 tracks more needed fixes in this area.
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
a clean up pass and thorough unit testing).
* Insert the RequestType enum name into the data dictionary returned by
get_request(). Otherwise, there's really no good way to get that
information, which several APIs need.
* Flatten the data dictionary returned by held message JSON representations,
into the JSON dictionary itself. Do a filtering and rename pass on the
keys.
- rename 'id' to 'request_id'
- remove the redundant 'key'
* Refactor some common stuff into _ModerationBase, although more refactoring
is coming.
|
| | |
| |
| |
| |
| |
| | |
* hold_subscription(): Don't str(mode) to get a string representation, just
mode.name since we know it is a DeliveryMode. This means we don't need to
split the value later in handle_subscription().
|
| |\ \
| |/
|/|
| | |
(given by Terri Oda). (LP: #1062893)
|
| |/ |
|
| |
|
|
|
|
| |
addresses and memberships. (LP: #1074374)
Also: Clean up pyflakes warning by removing an obsolete __all__ entry.
|
| |\
| |
| |
| |
| | |
into their own configuration files. Reworked by Barry to use the new external
configuration file support, and to make test suite succeed.
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
There's a new "configure" entry in the archiver's section, which can
point to an ini-compatible configuration file (ConfigParser is used) for
additional archiver-specific configuration.
The existing archiver config have been split off schema.cfg to their own
configuration files. These shipped files can be overridden by a conf
file of the same name in $ext_dir.
The ini-file loading method should be rather generic, in case we want
the same feature somewhere else.
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
-------------
* `[passlib]path` configuration variable renamed to `[passlib]configuration`.
* Postfix-specific configurations in the `[mta]` section are moved to a
separate file, named by the `[mta]configuration` variable.
* In the new `postfix.cfg` file, `postfix_map_cmd` is renamed to
`postmap_command`.
Also:
* More Python 2.7-isms, use assertMultiLineEqual() directly.
* Added external_configuration() and load_external() to mailman.config.config
* ConfigLayer does a blanket set of [postfix]postmap_command so subtests
generally won't have to.
|
| | | |
|
| |\ \ |
|
| | | | |
|
| |\ \ \
| |/ /
|/| | |
|