Skip to content

Commit

Permalink
Make setting return_fullobject_after_creation_default only configurab…
Browse files Browse the repository at this point in the history
…le thru env variable
  • Loading branch information
gbastien committed Oct 26, 2021
1 parent 3492eea commit ba399b6
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 3 deletions.
2 changes: 1 addition & 1 deletion src/imio/restapi/locales/fr/LC_MESSAGES/imio.restapi.po
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ msgstr ""

#: ../settings/interfaces.py:62
msgid "When an element is created, check the box if the full object must be returned by default (default is true)"
msgstr "Lorqu'un élément est créé via les WS REST, si la case est cochée (défaut), une sérialisation complète de l'objet créé sera renvoyée au créateur. Si décoché, la version \"sommaire\" est retournée."
msgstr "Cette information est configurée dans le fichier de configuration de l'instance<br>Lorqu'un élément est créé via les WS REST, si la case est cochée (défaut), une sérialisation complète de l'objet créé sera renvoyée au créateur. Si décoché, la version \"sommaire\" est retournée."

#: ../configure.zcml:28
msgid "imio.restapi"
Expand Down
17 changes: 15 additions & 2 deletions src/imio/restapi/settings/dataprovider.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

from imio.restapi.settings.interfaces import ISettings
from plone import api
from plone.restapi.deserializer import boolean_value
from z3c.form.interfaces import IForm
from z3c.form.interfaces import IFormLayer
from z3c.form.interfaces import IValue
Expand All @@ -19,14 +20,21 @@
class SettingsDataProvider(object):
adapts(Interface, IFormLayer, IForm, IField, IWidget)

_env_keys = ("WS_URL", "CLIENT_ID", "APPLICATION_ID", "APPLICATION_URL")
# env vars with name as key and default value as value
_env_keys = {
"WS_URL": "",
"CLIENT_ID": "",
"APPLICATION_ID": "",
"APPLICATION_URL": "",
"RETURN_FULLOBJECT_AFTER_CREATION_DEFAULT": True}

def __init__(self, context, request, form, field, widget):
self.context = context
self.request = request
self.form = form
self.field = field
self.widget = widget
self._values = {}

def get(self):
key = self.field.__name__
Expand All @@ -38,4 +46,9 @@ def get(self):

@property
def values(self):
return {k.lower(): os.getenv(k) for k in self._env_keys}
if not self._values:
self._values = {
k.lower(): boolean_value(os.getenv(k, default))
if isinstance(default, bool) else os.getenv(k, default)
for k, default in self._env_keys.items()}
return self._values
1 change: 1 addition & 0 deletions src/imio/restapi/settings/interfaces.py
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,7 @@ class ISettings(Interface):
required=False,
)

form.mode(ws_url="return_fullobject_after_creation_default")
return_fullobject_after_creation_default = schema.Bool(
title=_(u"Return full object after creation by default?"),
description=_(
Expand Down

0 comments on commit ba399b6

Please sign in to comment.