Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAleksey Lim <alsroot@sugarlabs.org>2012-09-16 10:47:11 (GMT)
committer Aleksey Lim <alsroot@sugarlabs.org>2012-09-16 10:47:11 (GMT)
commit1f5fe92f9a56e7f68a36a943a653184410ccdf1d (patch)
tree55af625724127ee77d0f65427ab3f5b596520165
parent2e726aa4834310c88286f338fcdebc083cb24437 (diff)
Use current locale as default lang while getting localized props
-rw-r--r--active_document/volume.py11
-rwxr-xr-xtests/units/volume.py9
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']))