summaryrefslogtreecommitdiff
path: root/src/mailman/config/configure.zcml (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Simplify the implementation.Barry Warsaw2016-10-171-8/+0
| | | | | | | | | | | | | | | | | | | | | | This merges the SubscriptionManager and UnsubscriptionManager into a single SubscriptionManager implementation that handles both register() and unregister(). This allows us to use direct class-based adaptation instead of the more clunky getAdapter() API. We can also eliminate the funky _get_workflow() implementation detail. This has a couple of side-effects. .confirm() must lookup the token in the pendings database and pull out the pending type, dispatching to the proper class depending on the type, or raising a LookupError if the token is None or there is no pendable associated with the given token. This feels like an acceptable trade-off. However, this *also* means that IWorkflowStateManager must lose its 'name' argument in its methods. That's because we won't actually know the name until its too late. Honestly, the name wasn't providing much value anyway (it was always the subclass's name), so losing that seems fine too. The complication here is that the name was a primary key in the 'workflowstate' table, so we need to add its removal in the database migration.
* A few more changes.Barry Warsaw2016-09-081-2/+2
|
* Remove workflowmanager.pyBarry Warsaw2016-09-021-2/+2
|
* IWorkflowManager -> ISubscriptionManagerBarry Warsaw2016-09-011-2/+2
|
* CheckpointingBarry Warsaw2016-09-011-5/+5
|
* Intermediate CommitAbhilash Raj2016-09-011-2/+10
|
* New template system. Closes #249Barry Warsaw2016-07-161-2/+12
| | | | | The new template system is introduced for API 3.1. See ``src/mailman/rest/docs/templates.rst`` for details.
* The order of a mailing list's header matches is significantAurélien Bompard2016-02-291-2/+2
| | | | | | | Add a numerical index property to HeaderMatch objects, and change the HeaderMatchSet manager to take the order into account. Items can now be inserted and removed by index.
* Complete the layer violation fixes by moving the SubscriptionService class toBarry Warsaw2016-01-061-1/+1
| | | | the mailman.model package.
* Use and interface for the set of header_matchesAurélien Bompard2015-10-201-0/+6
|
* Checkpointing.Barry Warsaw2015-04-141-5/+6
|
* Refactorings and tests.Barry Warsaw2015-03-291-2/+2
| | | | | | | | * Move the basic Workflow class to a module in mailman.app. * Rename the interface and model modules. * Update the configure.zcml. * Minor style fixes. * Add a test for the workflow model.
* Save the workflow state in the databaseAurélien Bompard2015-03-251-2/+2
|
* Add a table to store workflow statesAurélien Bompard2015-03-251-0/+5
|
* Since we don't have migrations, we don't need the ITemporaryDatabase stuff,Barry Warsaw2014-09-231-20/+0
| | | | | nor do we need the TAG mechanism. We also don't need load_sql() or load_migrations().
* Checkpointing.Barry Warsaw2013-11-251-0/+6
|
* DatabaseBarry Warsaw2012-10-161-5/+12
| | | | | | | | | | | | -------- * The `ban` table now uses list-ids to cross-reference the mailing list, since these cannot change even if the mailing list is moved or renamed. Interfaces ---------- * The `IBanManager` is no longer a global utility. Instead, you adapt an `IMailingList` to an `IBanManager` to manage the bans for a specific mailing list. To manage the global bans, adapt ``None``.
* The final bit of refactoring puts the specifics of making a temporary databaseBarry Warsaw2012-07-251-0/+14
| | | | into the hands of the database modules, by using ZCA adapters.
* Add a temporary database factory so we can remove more cruft from theBarry Warsaw2012-07-251-0/+6
| | | | | | | | | individual database classes themselves. This does mean that the temporary factory must know something special about the sqlite and postgresql databases, but I think that's an acceptable trade-off. This should make the test code cleaner, and allow me to write better support for temporary PostgreSQL databases.
* Refactor to better handling the difference between a testing database and aBarry Warsaw2012-07-251-0/+12
| | | | | | | | | | | | | | | | | | | | | | | | | production database. - Add an IDatabaseFactory interface with two named utility implementations. The initialization subsystem will either ask for the 'testing' or 'production' factory utility depending on whether we're in the test suite or not. The testing factory returns an IDatabase that can be _reset(). - initialize_2() now takes an optional `testing` argument, defaulting to False. The test ConfigLayer will pass in True. - Remove _reset() from the base database class. - The ModelMeta now adds a PRESERVE attribute to database classes. This defaults to False, meaning by default the test framework will reset the table. The Version table is preserved because it records the schema migrations. - Because of the above, we no longer need to support pre_reset() and post_reset() on migrations. Also, bin/mailman should allow the standard configuration file search algorithm to be used except when -C/--config is given.
* * Support downloading templates by URI, including mailman:// URIs. This isBarry Warsaw2012-03-031-13/+18
| | | | | | | | | | | | | used in welcome and goodbye messages, and supports both language and mailing list specifications. E.g. mailman:///test@example.com/it/welc.txt * Schema changes: - welcome_msg -> welcome_message_uri - goodbye_msg -> goodbye_message_uri - send_welcome_msg -> send_welcome_message - send_goodbye_msg -> send_goodbye_message * New `ITemplateLoader` utility.
* * Held messages can now be moderated through the REST API. Mailing listBarry Warsaw2012-01-301-7/+8
| | | | | | | | | | | | | | | resources now accept a `held` path component. GETing this returns all held messages for the mailing list. POSTing to a specific request id under this url can dispose of the message using `Action` enums. * `IRequests` interface is removed. Now just use adaptation from `IListRequests` directly (which takes an `IMailingList` object). * `handle_message()` now allows for `Action.hold` which is synonymous with `Action.defer` (since the message is already being held). * `IListRequests.get_request()` now takes an optional `request_type` argument to narrow the search for the given request. - also, print_function is now a standard __future__ import. The template has been updated, but add this to modules as you edit them.
* * Implement the style manager as a utility instead of an attribute hangingBarry Warsaw2011-10-241-0/+5
| | | | | | off the `mailman.config.config` object. * Fixed bogus use of `bounce_processing` attribute (should have been `process_bounces`, with thanks to Vincent Fretin. (LP: #876774)
* * New REST resource http://.../members/find can be POSTed to in order to findBarry Warsaw2011-08-131-2/+2
| | | | | | member records. Arguments are `subscriber` (email address to search for - required), `fqdn_listname` (optional), and `role` (i.e. MemberRole - optional). (LP: #799612)
* Refactor MTA alias creation.Barry Warsaw2011-06-101-0/+5
| | | | | | | | | | | | | * Create an IMailTransportAgentAliases utility that contains all the logic for generating all the aliases for a mailing list, both the fully-qualified ones and the local-part ones. * Add -f and -s options to `bin/mailman aliases` to facilitate outputing the aliases in other formats than the configured one, and for printing out a simple list of the aliases. * IMailTransportAgentAliases -> IMailTransportAgentLifecycle; also add a new definition for IMailTransportAgentAliases
* Add bounce registration and bounce events.Barry Warsaw2011-05-131-9/+14
|
* Eliminate Utils.get_pattern() and in the process, completely revampBarry Warsaw2011-02-251-0/+5
| | | | | | | | | subscription bans so as not to have to rely on BLOBS or pickles in the database. Also, be sure to include .rst files in both doctests and in the packaged tarballs. With the now awesome reST mode for Emacs, I plan to rename all .txt doctest files to .rst.
* Implement the email address validator as a utility for easier pluggability.Barry Warsaw2011-01-061-3/+8
|
* Remove some files that are not needed for restish implementation.Barry Warsaw2010-02-251-2/+0
|
* Complete the conversion to restish. All the tests pass and we're now actuallyBarry Warsaw2010-02-241-0/+5
| | | | | | RESTful. We have to use httplib2 to get DELETE and PUT. This is a prototype and could still use much cleanup.
* Rip out lazr.restful and replace it with restish. This simpifies a lot of theBarry Warsaw2010-02-231-1/+3
| | | | | REST architecture, at the expense of a few features, and less support. So far so good though.
* IRegistrar is now a utility; it doesn't need to be adapted from an IDomain.Barry Warsaw2009-12-121-6/+5
| | | | | | | This is because registration confirmation messages must come from the mailing list that the subscription request came from. Remove IDomain.confirm_address() since this lives only on the IMailingList now.
* * Refactor the language manager off of the config object and into a utility.Barry Warsaw2009-12-101-0/+5
| | | | | | | | * Fix a few small typos in exception handlers. * Move the initialization of the Zope Component Architecture into the first initialization step. The only reason we couldn't do that previously was because the domain object referenced the config, causing a circularity problem. Refactor the Domain implementation to avoid that.
* * Make IDomainManager a utility, since the config object is global.Barry Warsaw2009-12-081-6/+2
| | | | | | | | * Give IMailingList a .domain attribute which looks up the IDomain for its .host_name. This cleans up a lot of code. * Add a test for the 'confirm' email command. * Suppress blank lines in email command responses. * Make the IDomainCollection a utility.
* database/model reorganization. Model classes go in mailman.model. StockBarry Warsaw2009-10-101-8/+8
| | | | | database support goes in mailman.database. Move stuff out of mailman/database/__init__.py.
* As before, replace config.db.requests and config.db.pendings with utilities.Barry Warsaw2009-08-261-0/+10
|
* Replace the message_store instance on the database with an IMessageStoreBarry Warsaw2009-08-261-0/+5
| | | | utility.
* Remove the user_manager attribute from config.db and expose it as anBarry Warsaw2009-08-261-0/+5
| | | | IUserManager utility.
* Instead of using an adapter, use a utility to get the mailing list manager.Barry Warsaw2009-08-261-6/+6
|
* * Updated NEWS.txt for 3.0a3.Barry Warsaw2009-08-211-0/+6
| | | | | * Use the IListManager() adapter instead of hanging the list manager off of config.db. This makes the code somewhat cleaner.
* Wow. Put domains into the database.Barry Warsaw2009-07-161-0/+6
| | | | | | | | Add an IDomainManager and a global domain manager which can be gotten by adapting the global config object. Add an IDomainCollection interface for exposing the domain manager onto the API.
* More REST server updates.Barry Warsaw2009-06-291-0/+27
* Get rid of in-Python adapter registration in favor of ZCML. Eventually, I'd like to get rid of the ZCML. * Set the view_permission to None, but it's still not right. * Add IDomainSet and an adapter from Configuration to IDomainSet.