diff options
author | Aleksey Lim <alsroot@sugarlabs.org> | 2012-09-16 10:47:11 (GMT) |
---|---|---|
committer | Aleksey Lim <alsroot@sugarlabs.org> | 2012-09-16 10:47:11 (GMT) |
commit | 1f5fe92f9a56e7f68a36a943a653184410ccdf1d (patch) | |
tree | 55af625724127ee77d0f65427ab3f5b596520165 | |
parent | 2e726aa4834310c88286f338fcdebc083cb24437 (diff) |
Use current locale as default lang while getting localized props
-rw-r--r-- | active_document/volume.py | 11 | ||||
-rwxr-xr-x | tests/units/volume.py | 9 |
2 files changed, 7 insertions, 13 deletions
diff --git a/active_document/volume.py b/active_document/volume.py index 6008686..669f32f 100644 --- a/active_document/volume.py +++ b/active_document/volume.py @@ -126,6 +126,7 @@ class VolumeCommands(CommandsProcessor): def __init__(self, volume): CommandsProcessor.__init__(self, volume) self.volume = volume + self._lang = [env.default_lang()] @directory_command(method='POST', permissions=env.ACCESS_AUTH) @@ -168,7 +169,7 @@ class VolumeCommands(CommandsProcessor): documents, total = directory.find(offset=offset, limit=limit, query=query, reply=reply, order_by=order_by, group_by=group_by, **kwargs) - result = [i.properties(reply, request.accept_language) + result = [i.properties(reply, request.accept_language or self._lang) for i in documents] return {'total': total.value, 'result': result} @@ -235,7 +236,7 @@ class VolumeCommands(CommandsProcessor): for i in reply or []: directory.metadata[i].assert_access(env.ACCESS_READ) - return doc.properties(reply, request.accept_language) + return doc.properties(reply, request.accept_language or self._lang) @property_command(method='GET', arguments={'seqno': to_int}) def get_prop(self, document, guid, prop, request, response, seqno=None, @@ -247,7 +248,7 @@ class VolumeCommands(CommandsProcessor): prop.assert_access(env.ACCESS_READ) if not isinstance(prop, BlobProperty): - return doc.get(prop.name, request.accept_language) + return doc.get(prop.name, request.accept_language or self._lang) meta = doc.meta(prop.name) enforce(meta is not None, env.NotFound, 'BLOB does not exist') @@ -284,8 +285,8 @@ class VolumeCommands(CommandsProcessor): props['mtime'] = int(time.time()) def _prepost(self, request, prop, value): - if prop.localized and request.accept_language: - return {request.accept_language[0]: value} + if prop.localized and isinstance(value, basestring): + return {(request.accept_language or self._lang)[0]: value} else: return value diff --git a/tests/units/volume.py b/tests/units/volume.py index 64e39c3..3ee98aa 100755 --- a/tests/units/volume.py +++ b/tests/units/volume.py @@ -291,15 +291,8 @@ class VolumeTest(tests.Test): env.DEFAULT_LANG = 'en' self.assertEqual( - { - 'localized_prop': { - 'ru': 'value_ru', - 'es': 'value_es', - 'en': 'value_en', - }, - }, + {'localized_prop': 'value_en'}, self.call('GET', document='testdocument', guid=guid, reply=['localized_prop'])) - self.assertEqual( {'localized_prop': 'value_ru'}, self.call('GET', document='testdocument', guid=guid, accept_language=['ru'], reply=['localized_prop'])) |