<feed xmlns='http://www.w3.org/2005/Atom'>
<title>mailman.git/src/mailman/model/workflow.py, branch list-style-descriptions</title>
<subtitle>The GNU Mailing List manager.</subtitle>
<id>https://git.neuromancer.sk/mailman.git/atom/src/mailman/model/workflow.py?h=list-style-descriptions</id>
<link rel='self' href='https://git.neuromancer.sk/mailman.git/atom/src/mailman/model/workflow.py?h=list-style-descriptions'/>
<link rel='alternate' type='text/html' href='https://git.neuromancer.sk/mailman.git/'/>
<updated>2017-01-04T15:30:17Z</updated>
<entry>
<title>Bump copyright years.</title>
<updated>2017-01-04T15:30:17Z</updated>
<author>
<name>Barry Warsaw</name>
</author>
<published>2017-01-04T15:30:17Z</published>
<link rel='alternate' type='text/html' href='https://git.neuromancer.sk/mailman.git/commit/?id=8180990a2ed053f6e4880f93a75acd9845631793'/>
<id>urn:sha1:8180990a2ed053f6e4880f93a75acd9845631793</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Use `atpublic` for @public instead of internal copy.</title>
<updated>2016-11-29T23:51:05Z</updated>
<author>
<name>Barry Warsaw</name>
</author>
<published>2016-11-29T23:51:05Z</published>
<link rel='alternate' type='text/html' href='https://git.neuromancer.sk/mailman.git/commit/?id=fe22ebdb98d125db840c980cbd953a8fbc2e5cdf'/>
<id>urn:sha1:fe22ebdb98d125db840c980cbd953a8fbc2e5cdf</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Simplify the implementation.</title>
<updated>2016-10-17T13:13:32Z</updated>
<author>
<name>Barry Warsaw</name>
</author>
<published>2016-10-17T13:13:32Z</published>
<link rel='alternate' type='text/html' href='https://git.neuromancer.sk/mailman.git/commit/?id=d45af03c4f2a560d51631fdfa7c55cd1a98e722c'/>
<id>urn:sha1:d45af03c4f2a560d51631fdfa7c55cd1a98e722c</id>
<content type='text'>
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.
</content>
</entry>
<entry>
<title>MySQL is now an officially supported database.</title>
<updated>2016-07-29T23:28:46Z</updated>
<author>
<name>Barry Warsaw</name>
</author>
<published>2016-07-29T23:28:46Z</published>
<link rel='alternate' type='text/html' href='https://git.neuromancer.sk/mailman.git/commit/?id=febb5289e82c4424cdbcc2297e967bd894cbc8cf'/>
<id>urn:sha1:febb5289e82c4424cdbcc2297e967bd894cbc8cf</id>
<content type='text'>
Given by Abhilash Raj.
</content>
</entry>
<entry>
<title>Clean up the model and languages directories.</title>
<updated>2016-03-25T15:01:46Z</updated>
<author>
<name>Barry Warsaw</name>
</author>
<published>2016-03-25T15:01:46Z</published>
<link rel='alternate' type='text/html' href='https://git.neuromancer.sk/mailman.git/commit/?id=7fd9e5ab09b0da347da0607b47d2d3838bd80f0c'/>
<id>urn:sha1:7fd9e5ab09b0da347da0607b47d2d3838bd80f0c</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Happy New Year.</title>
<updated>2016-01-03T03:43:23Z</updated>
<author>
<name>Barry Warsaw</name>
</author>
<published>2016-01-03T03:43:23Z</published>
<link rel='alternate' type='text/html' href='https://git.neuromancer.sk/mailman.git/commit/?id=f390e08c31477c476e1312d03771b68e22b42675'/>
<id>urn:sha1:f390e08c31477c476e1312d03771b68e22b42675</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Full test suite passes.</title>
<updated>2015-04-14T22:54:05Z</updated>
<author>
<name>Barry Warsaw</name>
</author>
<published>2015-04-14T22:54:05Z</published>
<link rel='alternate' type='text/html' href='https://git.neuromancer.sk/mailman.git/commit/?id=a9a9fd2c778aa8cfde5f244420602a70dab44cfa'/>
<id>urn:sha1:a9a9fd2c778aa8cfde5f244420602a70dab44cfa</id>
<content type='text'>
* Make sure Registrar.discard() removces any workflow state manager state
  associated with the token, and that this is flushed to SA.

* Adjust the email commands to the new IRegistrar API.

* Update the IRegistrar interface.

* Add IWorkflowStateManager.discard() and make `count` an attribute/property.

* Mark two tests as expected failures due to LP: #1444184.
</content>
</entry>
<entry>
<title>* Give the workflow state manager a count method.</title>
<updated>2015-04-13T22:05:26Z</updated>
<author>
<name>Barry Warsaw</name>
</author>
<published>2015-04-13T22:05:26Z</published>
<link rel='alternate' type='text/html' href='https://git.neuromancer.sk/mailman.git/commit/?id=f7a4e76d24898ec942a0f3a9a932916d9d0662bc'/>
<id>urn:sha1:f7a4e76d24898ec942a0f3a9a932916d9d0662bc</id>
<content type='text'>
* The workflow state manager no longer allows updates via .save().
* Restoring a workflow state evicts the record from the database.
</content>
</entry>
<entry>
<title>Handle save/restore of the subscription workflow.</title>
<updated>2015-04-13T14:46:37Z</updated>
<author>
<name>Barry Warsaw</name>
</author>
<published>2015-04-13T14:46:37Z</published>
<link rel='alternate' type='text/html' href='https://git.neuromancer.sk/mailman.git/commit/?id=9806f9c751f85b6ad6e9dea58d9e3dde36c7f2bc'/>
<id>urn:sha1:9806f9c751f85b6ad6e9dea58d9e3dde36c7f2bc</id>
<content type='text'>
To handle the case of restoring a saved workflow, allow the subscriber to be
None in the constructor, but assert that it is not None after the first
workflow step.

Add setters/getters for handling save/restore.

In the base workflow interface, rename key to token.
</content>
</entry>
<entry>
<title>Refactorings and tests.</title>
<updated>2015-03-29T21:14:09Z</updated>
<author>
<name>Barry Warsaw</name>
</author>
<published>2015-03-29T21:14:09Z</published>
<link rel='alternate' type='text/html' href='https://git.neuromancer.sk/mailman.git/commit/?id=9de0ea02dc757e41a5013bb41e68d04f44ed5066'/>
<id>urn:sha1:9de0ea02dc757e41a5013bb41e68d04f44ed5066</id>
<content type='text'>
* 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.
</content>
</entry>
</feed>
