summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ishtar_common/locale/fr/LC_MESSAGES/django.po4
-rw-r--r--ishtar_common/models.py5
-rw-r--r--ishtar_common/ooo_replace.py27
3 files changed, 25 insertions, 11 deletions
diff --git a/ishtar_common/locale/fr/LC_MESSAGES/django.po b/ishtar_common/locale/fr/LC_MESSAGES/django.po
index f6da52ee3..26b3ea600 100644
--- a/ishtar_common/locale/fr/LC_MESSAGES/django.po
+++ b/ishtar_common/locale/fr/LC_MESSAGES/django.po
@@ -383,7 +383,7 @@ msgstr "Types d'individu"
#: models.py:658
msgid "Mr"
-msgstr "M"
+msgstr "M."
#: models.py:659
msgid "Miss"
@@ -395,7 +395,7 @@ msgstr "Mme"
#: models.py:661
msgid "Doctor"
-msgstr "Dr"
+msgstr "Dr."
#: models.py:670 models.py:691
msgid "Types"
diff --git a/ishtar_common/models.py b/ishtar_common/models.py
index 8d153f120..7777d7d77 100644
--- a/ishtar_common/models.py
+++ b/ishtar_common/models.py
@@ -743,6 +743,11 @@ class Person(Address, OwnPerms, ValueGetter) :
if getattr(self, attr)]
return u" ".join(values)
+ def get_values(self, prefix=''):
+ values = super(Person, self).get_values(prefix=prefix)
+ values[prefix+'title'] = dict(self.TYPE)[self.title]
+ return values
+
person_types_list_lbl = _(u"Types")
@property
def person_types_list(self):
diff --git a/ishtar_common/ooo_replace.py b/ishtar_common/ooo_replace.py
index 63b983b7b..2158bb473 100644
--- a/ishtar_common/ooo_replace.py
+++ b/ishtar_common/ooo_replace.py
@@ -17,26 +17,28 @@
# See the file COPYING for details.
-
+import locale
from zipfile import ZipFile, ZIP_DEFLATED
from cStringIO import StringIO
from xml.etree.cElementTree import ElementTree, fromstring
+from django.conf import settings
+
OOO_NS = "{urn:oasis:names:tc:opendocument:xmlns:text:1.0}"
-def _set_value_from_formula(value, context):
+def _set_value_from_formula(value, context, default_value):
value = value.strip()
if value.startswith("ooow:") and len(value) >= 5:
value = value[5:]
if value.startswith('"') and value.endswith('"') and len(value) > 1:
value = value[1:-1]
elif value in context:
- value = unicode(context[value])
+ value = _format_value(context[value], default_value)
else:
value = None
return value
-def _parse_condition(condition, context):
+def _parse_condition(condition, context, default_value):
# parse only == and != operator
operator = ""
if "!=" in condition:
@@ -46,17 +48,23 @@ def _parse_condition(condition, context):
else:
return
var1, var2 = condition.split(operator)
- var1 = _set_value_from_formula(var1, context)
- var2 = _set_value_from_formula(var2, context)
+ var1 = _set_value_from_formula(var1, context, default_value)
+ var2 = _set_value_from_formula(var2, context, default_value)
res = var1 == var2
if operator == '!=':
res = not res
return res
def _format_value(value, default_value):
+ if hasattr(value, 'strftime'):
+ c_locale = settings.LANGUAGE_CODE.split('-')
+ if len(c_locale) == 2:
+ c_locale[1] = c_locale[1].upper()
+ c_locale = "_".join(c_locale)
+ if locale.getlocale()[0] != c_locale:
+ locale.setlocale(locale.LC_ALL, c_locale)
+ value = value.strftime('%x')
value = unicode(value) if value else default_value
- #if hasattr(value, 'strftime'):
- # value = value.strftime()
return value
def ooo_replace(infile, outfile, context, default_value=''):
@@ -76,7 +84,8 @@ def ooo_replace(infile, outfile, context, default_value=''):
missing_keys.add(name)
for p in content.findall(".//"+OOO_NS+"conditional-text"):
condition = p.get(OOO_NS+"condition")
- res = 'true' if _parse_condition(condition, context) else 'false'
+ res = 'true' if _parse_condition(condition, context, default_value) \
+ else 'false'
value = p.get(OOO_NS+'string-value-if-' + res)
value = _format_value(value, default_value)
if value.strip() in context: