[FIX] correctly apply user's date and time formatting settings
lp bug: https://launchpad.net/bugs/886471 fixed bzr revid: xmo@openerp.com-20111114140007-7nz0pz9zkhqkt3ga
This commit is contained in:
parent
16006b42e3
commit
550436f084
|
@ -1,6 +1,6 @@
|
||||||
|
|
||||||
openerp.web.formats = function(openerp) {
|
openerp.web.formats = function(openerp) {
|
||||||
|
var _t = openerp.web._t;
|
||||||
/**
|
/**
|
||||||
* Formats a single atomic value based on a field descriptor
|
* Formats a single atomic value based on a field descriptor
|
||||||
*
|
*
|
||||||
|
@ -43,29 +43,17 @@ openerp.web.format_value = function (value, descriptor, value_if_empty) {
|
||||||
case 'datetime':
|
case 'datetime':
|
||||||
if (typeof(value) == "string")
|
if (typeof(value) == "string")
|
||||||
value = openerp.web.auto_str_to_date(value);
|
value = openerp.web.auto_str_to_date(value);
|
||||||
try {
|
|
||||||
return value.toString(_.sprintf("%s %s", Date.CultureInfo.formatPatterns.shortDate,
|
return value.format(_t.database.parameters.date_format
|
||||||
Date.CultureInfo.formatPatterns.longTime));
|
+ ' ' + _t.database.parameters.time_format);
|
||||||
} catch (e) {
|
|
||||||
return value.format("%m/%d/%Y %H:%M:%S");
|
|
||||||
}
|
|
||||||
return value;
|
|
||||||
case 'date':
|
case 'date':
|
||||||
if (typeof(value) == "string")
|
if (typeof(value) == "string")
|
||||||
value = openerp.web.auto_str_to_date(value);
|
value = openerp.web.auto_str_to_date(value);
|
||||||
try {
|
return value.format(_t.database.parameters.date_format);
|
||||||
return value.toString(Date.CultureInfo.formatPatterns.shortDate);
|
|
||||||
} catch (e) {
|
|
||||||
return value.format("%m/%d/%Y");
|
|
||||||
}
|
|
||||||
case 'time':
|
case 'time':
|
||||||
if (typeof(value) == "string")
|
if (typeof(value) == "string")
|
||||||
value = openerp.web.auto_str_to_date(value);
|
value = openerp.web.auto_str_to_date(value);
|
||||||
try {
|
return value.format(_t.database.parameters.time_format);
|
||||||
return value.toString(Date.CultureInfo.formatPatterns.longTime);
|
|
||||||
} catch (e) {
|
|
||||||
return value.format("%H:%M:%S");
|
|
||||||
}
|
|
||||||
case 'selection':
|
case 'selection':
|
||||||
// Each choice is [value, label]
|
// Each choice is [value, label]
|
||||||
var result = _(descriptor.selection).detect(function (choice) {
|
var result = _(descriptor.selection).detect(function (choice) {
|
||||||
|
@ -79,6 +67,8 @@ openerp.web.format_value = function (value, descriptor, value_if_empty) {
|
||||||
};
|
};
|
||||||
|
|
||||||
openerp.web.parse_value = function (value, descriptor, value_if_empty) {
|
openerp.web.parse_value = function (value, descriptor, value_if_empty) {
|
||||||
|
var date_pattern = Date.normalizeFormat(_t.database.parameters.date_format),
|
||||||
|
time_pattern = Date.normalizeFormat(_t.database.parameters.time_format);
|
||||||
switch (value) {
|
switch (value) {
|
||||||
case false:
|
case false:
|
||||||
case "":
|
case "":
|
||||||
|
@ -119,8 +109,8 @@ openerp.web.parse_value = function (value, descriptor, value_if_empty) {
|
||||||
case 'progressbar':
|
case 'progressbar':
|
||||||
return openerp.web.parse_value(value, {type: "float"});
|
return openerp.web.parse_value(value, {type: "float"});
|
||||||
case 'datetime':
|
case 'datetime':
|
||||||
var datetime = Date.parseExact(value, _.sprintf("%s %s", Date.CultureInfo.formatPatterns.shortDate,
|
var datetime = Date.parseExact(
|
||||||
Date.CultureInfo.formatPatterns.longTime));
|
value, (date_pattern + ' ' + time_pattern));
|
||||||
if (datetime !== null)
|
if (datetime !== null)
|
||||||
return openerp.web.datetime_to_str(datetime);
|
return openerp.web.datetime_to_str(datetime);
|
||||||
datetime = Date.parse(value);
|
datetime = Date.parse(value);
|
||||||
|
@ -128,7 +118,7 @@ openerp.web.parse_value = function (value, descriptor, value_if_empty) {
|
||||||
return openerp.web.datetime_to_str(datetime);
|
return openerp.web.datetime_to_str(datetime);
|
||||||
throw new Error(value + " is not a valid datetime");
|
throw new Error(value + " is not a valid datetime");
|
||||||
case 'date':
|
case 'date':
|
||||||
var date = Date.parseExact(value, Date.CultureInfo.formatPatterns.shortDate);
|
var date = Date.parseExact(value, date_pattern);
|
||||||
if (date !== null)
|
if (date !== null)
|
||||||
return openerp.web.date_to_str(date);
|
return openerp.web.date_to_str(date);
|
||||||
date = Date.parse(value);
|
date = Date.parse(value);
|
||||||
|
@ -136,7 +126,7 @@ openerp.web.parse_value = function (value, descriptor, value_if_empty) {
|
||||||
return openerp.web.date_to_str(date);
|
return openerp.web.date_to_str(date);
|
||||||
throw new Error(value + " is not a valid date");
|
throw new Error(value + " is not a valid date");
|
||||||
case 'time':
|
case 'time':
|
||||||
var time = Date.parseExact(value, Date.CultureInfo.formatPatterns.longTime);
|
var time = Date.parseExact(value, time_pattern);
|
||||||
if (time !== null)
|
if (time !== null)
|
||||||
return openerp.web.time_to_str(time);
|
return openerp.web.time_to_str(time);
|
||||||
time = Date.parse(value);
|
time = Date.parse(value);
|
||||||
|
|
Loading…
Reference in New Issue