| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |\
| |
| |
| | |
Sandesh Kumar Agrawal. (LP: #1095422)
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| |/ |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
styles (by name) via `.../lists/styles`. Create a list in a specific style
by using POST data `style_name=<style>`. (LP: #975692)
* The default list style is renamed to `legacy-default` and a new
`legacy-announce` style is added. This is similar to the `legacy-default`
except set up for announce-only lists.
* The following columns were unused and have been removed:
- `mailinglist.new_member_options`
- `mailinglist.send_reminders`
- `mailinglist.subscribe_policy`
- `mailinglist.unsubscribe_policy`
- `mailinglist.subscribe_auto_approval`
- `mailinglist.private_roster`
- `mailinglist.admin_member_chunksize`
Also:
* List styles no longer have a priority, nor is there any style matching any
more. Now, exactly one named style (either explicitly through the
`create_list()` function, or by default from the configuration file) is
applied to a list at list creation time.
* The huge old DefaultStyle is now decomposed into smaller units. An
announce-like style is added.
* `find_components()` and `scan_module()` moved from `app/finder.py` to
`utilities/modules.py`.
* Lots of doctest rewriting for better documentation. Bad-path tests moved
to unittests.
* `create_list()` now takes an optional `style_name` parameter. If not
given, `[styles]default` is used.
* `create_list()` doesn't set the `personalize` or `display_name` attributes
any more. These are already set in styles.
* Removed an unnecessary `tearDown()`.
* Added some improvements on displaying lists in JSON responses.
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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)
Also:
* Clean up the users.rst REST page so that it reads as better documentation.
Move some tests into the unittests.
* Fix (with a new test), the handling of ExistingAddressError when creating
new users via REST.
* Fix (with a new test), the crashing when .../users/<id>/addresses is
referenced on a non-existing user.
* Add hex_md5 as a deprecated passlib hash scheme for the test suite. This
allows us to test hash migration by creating an initial has as hex_md5
(another crappy hash), and watching verified passwords get migrated to
roundup_plaintext (and even crappier hash ;).
|
| | | |
|
| | |
| |
| |
| |
| |
| | |
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)
|
| | |/
| |
| |
| |
| | |
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)
|