Abhilash Raj pushed to branch master at GNU Mailman / Mailman Core
Commits:
92d84b81 by Abhilash Raj at 2019-02-26T16:52:41Z
Expose preferred_language of a MailingList through API.
- - - - -
dbaef5f6 by Abhilash Raj at 2019-02-26T16:52:41Z
Merge branch 'language' into 'master'
Expose preferred_language of a MailingList through API.
See merge request mailman/mailman!461
- - - - -
4 changed files:
- src/mailman/docs/NEWS.rst
- src/mailman/rest/docs/listconf.rst
- src/mailman/rest/listconf.py
- src/mailman/rest/tests/test_listconf.py
Changes:
=====================================
src/mailman/docs/NEWS.rst
=====================================
@@ -20,6 +20,7 @@ REST
----
* Failed validation to new Mailing List creation and Domain creation no longer
returns 500 errors.
+* Expose ``preferred_language`` for MailingList through REST API.
3.2.1
=====================================
src/mailman/rest/docs/listconf.rst
=====================================
@@ -72,6 +72,7 @@ All readable attributes for a list are available on a
sub-resource.
post_id: 1
posting_address: [email protected]
posting_pipeline: default-posting-pipeline
+ preferred_language: en
reply_goes_to_list: no_munging
reply_to_address:
request_address: [email protected]
@@ -123,6 +124,7 @@ When using ``PUT``, all writable attributes must be
included.
... dmarc_mitigate_unconditionally=False,
... dmarc_moderation_notice='Some moderation notice',
... dmarc_wrapped_message_text='some message text',
+ ... preferred_language='ja',
... posting_pipeline='virgin',
... filter_content=True,
... first_strip_reply_to=True,
@@ -195,6 +197,7 @@ These values are changed permanently.
moderator_password: {plaintext}password
...
posting_pipeline: virgin
+ preferred_language: ja
reply_goes_to_list: point_to_list
reply_to_address: [email protected]
...
=====================================
src/mailman/rest/listconf.py
=====================================
@@ -33,7 +33,7 @@ from mailman.rest.helpers import (
from mailman.rest.validator import (
PatchValidator, ReadOnlyPATCHRequestError, UnknownPATCHRequestError,
Validator, enum_validator, integer_ge_zero_validator,
- list_of_strings_validator
+ language_validator, list_of_strings_validator
)
from public import public
from zope.component import getUtility
@@ -64,6 +64,24 @@ class AcceptableAliases(GetterSetter):
alias_set.add(alias)
+class LanguageGetterSetter(GetterSetter):
+
+ def get(self, mlist, attribute):
+ """Return the language code of the preferred language."""
+ assert attribute == 'preferred_language', (
+ 'Unexpected attribute: {}'.format(attribute)) # pragma: nocover
+ return mlist.preferred_language.code
+
+ def put(self, mlist, attribute, value):
+ """Set the preferred language of the MailingList."""
+ assert attribute == 'preferred_language', (
+ 'Unexpected attribute: {}'.format(attribute)) # pragma: nocover
+
+ # We can just set the language code as value since the setter takes
+ # cares of converting the language code to Language model.
+ mlist.preferred_language = value
+
+
TEMPLATE_ATTRIBUTES = dict(
digest_footer_uri='list:digest:footer',
digest_header_uri='list:digest:header',
@@ -179,6 +197,7 @@ ATTRIBUTES = dict(
post_id=GetterSetter(None),
posting_address=GetterSetter(None),
posting_pipeline=GetterSetter(pipeline_validator),
+ preferred_language=LanguageGetterSetter(language_validator),
reply_goes_to_list=GetterSetter(enum_validator(ReplyToMunging)),
reply_to_address=GetterSetter(str),
request_address=GetterSetter(None),
=====================================
src/mailman/rest/tests/test_listconf.py
=====================================
@@ -74,6 +74,7 @@ RESOURCE = dict(
moderator_password='password',
max_message_size='150',
posting_pipeline='virgin',
+ preferred_language='en',
reply_goes_to_list='point_to_list',
reply_to_address='[email protected]',
require_explicit_destination=True,
View it on GitLab:
https://gitlab.com/mailman/mailman/compare/cc313c14fdaf883b9a89a8b95c93fb32f9c225b2...dbaef5f673477c26684f448093193326614c468a
--
View it on GitLab:
https://gitlab.com/mailman/mailman/compare/cc313c14fdaf883b9a89a8b95c93fb32f9c225b2...dbaef5f673477c26684f448093193326614c468a
You're receiving this email because of your account on gitlab.com.
_______________________________________________
Mailman-checkins mailing list
[email protected]
Unsubscribe:
https://mail.python.org/mailman/options/mailman-checkins/archive%40jab.org