diff options
| author | Barry Warsaw | 2016-04-01 11:39:25 -0400 |
|---|---|---|
| committer | Barry Warsaw | 2016-04-01 11:39:25 -0400 |
| commit | afdd3b6deb32cd8cfdad291aba173a63064514f8 (patch) | |
| tree | ce040849bcc0d0feb27b312685f5f4afbbaa4f80 /src | |
| parent | 1ac8bf8b92c92256ee9e6ec9d028ddfbd28a5982 (diff) | |
| download | mailman-afdd3b6deb32cd8cfdad291aba173a63064514f8.tar.gz mailman-afdd3b6deb32cd8cfdad291aba173a63064514f8.tar.zst mailman-afdd3b6deb32cd8cfdad291aba173a63064514f8.zip | |
Diffstat (limited to 'src')
| -rw-r--r-- | src/mailman/database/alembic/versions/7b254d88f122_members_and_list_moderation_action.py | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/src/mailman/database/alembic/versions/7b254d88f122_members_and_list_moderation_action.py b/src/mailman/database/alembic/versions/7b254d88f122_members_and_list_moderation_action.py index 45d1ee67f..09aedc640 100644 --- a/src/mailman/database/alembic/versions/7b254d88f122_members_and_list_moderation_action.py +++ b/src/mailman/database/alembic/versions/7b254d88f122_members_and_list_moderation_action.py @@ -10,16 +10,20 @@ fallback to the list's default. """ -# revision identifiers, used by Alembic. -revision = '7b254d88f122' -down_revision = 'd4fbb4fd34ca' import sqlalchemy as sa + from alembic import op from mailman.database.types import Enum from mailman.interfaces.action import Action from mailman.interfaces.member import MemberRole + +# revision identifiers, used by Alembic. +revision = '7b254d88f122' +down_revision = 'd4fbb4fd34ca' + + mailinglist_table = sa.sql.table( 'mailinglist', sa.sql.column('id', sa.Integer), @@ -28,6 +32,7 @@ mailinglist_table = sa.sql.table( sa.sql.column('default_nonmember_action', Enum(Action)), ) + member_table = sa.sql.table( 'member', sa.sql.column('id', sa.Integer), @@ -36,14 +41,17 @@ member_table = sa.sql.table( sa.sql.column('moderation_action', Enum(Action)), ) + # This migration only considers members and nonmembers. members_query = member_table.select().where(sa.or_( member_table.c.role == MemberRole.member, member_table.c.role == MemberRole.nonmember, )) + DEFAULT_ACTION_CACHE = {} + def _get_default_action(connection, member): list_id = member['list_id'] propname = 'default_{}_action'.format(member['role'].name) @@ -75,7 +83,7 @@ def upgrade(): def downgrade(): connection = op.get_bind() for member in connection.execute(members_query.where( - member_table.c.moderation_action == None)).fetchall(): + member_table.c.moderation_action == None)).fetchall(): # noqa default_action = _get_default_action(connection, member) # Use the mailing list's default action connection.execute(member_table.update().where( |
