summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAurélien Bompard2016-03-23 15:48:44 +0100
committerBarry Warsaw2016-03-31 18:29:27 -0400
commitac57c6747200078591f291e9f46f257b3d6c5542 (patch)
treedf9bc394c6f20b6e1beb57d5be6988b33e1432b0 /src
parented738199121d728f49960dd4fd89fd9641b01d21 (diff)
downloadmailman-ac57c6747200078591f291e9f46f257b3d6c5542.tar.gz
mailman-ac57c6747200078591f291e9f46f257b3d6c5542.tar.zst
mailman-ac57c6747200078591f291e9f46f257b3d6c5542.zip
Diffstat (limited to 'src')
-rw-r--r--src/mailman/database/alembic/versions/7b254d88f122_members_and_list_moderation_action.py18
1 files changed, 14 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 fb02ccaed..45d1ee67f 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
@@ -1,7 +1,7 @@
"""Members and list moderation action
Revision ID: 7b254d88f122
-Revises: bfda02ab3a9b
+Revises: d4fbb4fd34ca
Create Date: 2016-02-10 11:31:04.233619
This is a data-only migration. If a member has the same moderation action as
@@ -42,11 +42,21 @@ members_query = member_table.select().where(sa.or_(
member_table.c.role == MemberRole.nonmember,
))
+DEFAULT_ACTION_CACHE = {}
def _get_default_action(connection, member):
- mailing_list = connection.execute(mailinglist_table.select().where(
- mailinglist_table.c.list_id == member['list_id'])).fetchone()
- return mailing_list['default_{}_action'.format(member['role'].name)]
+ list_id = member['list_id']
+ propname = 'default_{}_action'.format(member['role'].name)
+ try:
+ action = DEFAULT_ACTION_CACHE[list_id][propname]
+ except KeyError:
+ mailing_list = connection.execute(mailinglist_table.select().where(
+ mailinglist_table.c.list_id == list_id)).fetchone()
+ action = mailing_list[propname]
+ if list_id not in DEFAULT_ACTION_CACHE:
+ DEFAULT_ACTION_CACHE[list_id] = {}
+ DEFAULT_ACTION_CACHE[list_id][propname] = action
+ return action
def upgrade():