summaryrefslogtreecommitdiff
path: root/src/mailman/interfaces/subscriptions.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/mailman/interfaces/subscriptions.py')
-rw-r--r--src/mailman/interfaces/subscriptions.py16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/mailman/interfaces/subscriptions.py b/src/mailman/interfaces/subscriptions.py
index c72a902cb..677f591ef 100644
--- a/src/mailman/interfaces/subscriptions.py
+++ b/src/mailman/interfaces/subscriptions.py
@@ -19,9 +19,12 @@
__all__ = [
'ISubscriptionService',
+ 'RequestRecord',
]
+from collections import namedtuple
+
from mailman.interfaces.errors import MailmanError
from mailman.interfaces.member import DeliveryMode, MemberRole
from zope.interface import Interface
@@ -40,6 +43,19 @@ class MissingUserError(MailmanError):
+_RequestRecord = namedtuple(
+ 'RequestRecord',
+ 'email display_name delivery_mode, language')
+def RequestRecord(email, display_name='',
+ delivery_mode=DeliveryMode.regular,
+ language=None):
+ if language is None:
+ from mailman.core.constants import system_preferences
+ language = system_preferences.preferred_language
+ return _RequestRecord(email, display_name, delivery_mode, language)
+
+
+
class ISubscriptionService(Interface):
"""General Subscription services."""