[imp] made parse function and began tests
bzr revid: nicolas.vanhoren@openerp.com-20110822123516-7qf7700v0irc70nd
This commit is contained in:
parent
0f296d6a9c
commit
5199d2bf9e
|
@ -48,7 +48,7 @@ openerp.base.format_value = function (value, descriptor, value_if_empty) {
|
||||||
return value.strftime(_.sprintf("%s %s", openerp.base._t.database.parameters.date_format,
|
return value.strftime(_.sprintf("%s %s", openerp.base._t.database.parameters.date_format,
|
||||||
openerp.base._t.database.parameters.time_format));
|
openerp.base._t.database.parameters.time_format));
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
return openerp.base.datetime_to_str(value);
|
return value.strftime("%m/%d/%Y %H:%M:%S");
|
||||||
}
|
}
|
||||||
return value;
|
return value;
|
||||||
case 'date':
|
case 'date':
|
||||||
|
@ -57,21 +57,75 @@ openerp.base.format_value = function (value, descriptor, value_if_empty) {
|
||||||
try {
|
try {
|
||||||
return value.strftime(openerp.base._t.database.parameters.date_format);
|
return value.strftime(openerp.base._t.database.parameters.date_format);
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
return openerp.base.date_to_str(value);
|
return value.strftime("%m/%d/%Y");
|
||||||
}
|
}
|
||||||
case 'datetime':
|
case 'time':
|
||||||
if (typeof(value) == "string")
|
if (typeof(value) == "string")
|
||||||
value = openerp.base.str_to_time(value);
|
value = openerp.base.str_to_time(value);
|
||||||
try {
|
try {
|
||||||
return value.strftime(openerp.base._t.database.parameters.time_format);
|
return value.strftime(openerp.base._t.database.parameters.time_format);
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
return openerp.base.time_to_str(value);
|
return value.strftime("%H:%M:%S");
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
openerp.base.parse_value = function (value, descriptor, value_if_empty) {
|
||||||
|
switch (value) {
|
||||||
|
case false:
|
||||||
|
case "":
|
||||||
|
return value_if_empty === undefined ? false : value_if_empty;
|
||||||
|
}
|
||||||
|
switch (descriptor.widget || descriptor.type) {
|
||||||
|
case 'integer':
|
||||||
|
var tmp = Number(value);
|
||||||
|
if (isNaN(tmp))
|
||||||
|
throw value + " is not a correct integer";
|
||||||
|
return tmp;
|
||||||
|
case 'float':
|
||||||
|
var tmp = Number(value);
|
||||||
|
if (!isNaN(tmp))
|
||||||
|
return tmp;
|
||||||
|
tmp = tmp.replace(openerp.base._t.database.parameters.decimal_point, ".");
|
||||||
|
var tmp2 = tmp;
|
||||||
|
do {
|
||||||
|
tmp = tmp2;
|
||||||
|
tmp2 = tmp.replace(openerp.base._t.database.parameters.thousands_sep, "");
|
||||||
|
} while(tmp !== tmp2);
|
||||||
|
tmp = Number(value);
|
||||||
|
if (isNaN(tmp))
|
||||||
|
throw value + " is not a correct float";
|
||||||
|
return tmp;
|
||||||
|
case 'float_time':
|
||||||
|
var tmp = value.split(":");
|
||||||
|
if (tmp.length != 2)
|
||||||
|
throw value + " is not a correct float_time";
|
||||||
|
var tmp1 = openerp.base.parse_value(tmp[0], {type: "integer"});
|
||||||
|
var tmp2 = openerp.base.parse_value(tmp[1], {type: "integer"});
|
||||||
|
return tmp1 + (tmp2 / 60);
|
||||||
|
case 'progressbar':
|
||||||
|
return openerp.base.parse_value(value, {type: "float"});
|
||||||
|
case 'datetime':
|
||||||
|
var tmp = Date.parse(value);
|
||||||
|
if (tmp !== null)
|
||||||
|
return tmp;
|
||||||
|
throw value + " is not a valid datetime";
|
||||||
|
case 'date':
|
||||||
|
var tmp = Date.parse(value);
|
||||||
|
if (tmp !== null)
|
||||||
|
return tmp;
|
||||||
|
throw value + " is not a valid date";
|
||||||
|
case 'time':
|
||||||
|
var tmp = Date.parse(value);
|
||||||
|
if (tmp !== null)
|
||||||
|
return tmp;
|
||||||
|
throw value + " is not a valid time";
|
||||||
|
}
|
||||||
|
return value;
|
||||||
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Formats a provided cell based on its field type
|
* Formats a provided cell based on its field type
|
||||||
*
|
*
|
||||||
|
|
|
@ -0,0 +1,16 @@
|
||||||
|
$(document).ready(function () {
|
||||||
|
var openerp;
|
||||||
|
module('base-formats', {
|
||||||
|
setup: function () {
|
||||||
|
openerp = window.openerp.init();
|
||||||
|
window.openerp.base.core(openerp);
|
||||||
|
window.openerp.base.dates(openerp);
|
||||||
|
window.openerp.base.formats(openerp);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
test("format_datetime", function () {
|
||||||
|
var date = openerp.base.str_to_datetime("2009-05-04 12:34:23");
|
||||||
|
var str = openerp.base.format_value(date, {type:"datetime"});
|
||||||
|
console.log(str);
|
||||||
|
});
|
||||||
|
});
|
|
@ -9,15 +9,19 @@
|
||||||
<script src="/base/static/lib/qunit/qunit-2011-23-22.js" type="text/javascript"></script>
|
<script src="/base/static/lib/qunit/qunit-2011-23-22.js" type="text/javascript"></script>
|
||||||
|
|
||||||
<script src="/base/static/lib/underscore/underscore.js" type="text/javascript"></script>
|
<script src="/base/static/lib/underscore/underscore.js" type="text/javascript"></script>
|
||||||
|
<script src="/base/static/lib/underscore/underscore.string.js" type="text/javascript"></script>
|
||||||
|
|
||||||
<!-- jquery -->
|
<!-- jquery -->
|
||||||
<script src="/base/static/lib/jquery/jquery-1.6.2.js"></script>
|
<script src="/base/static/lib/jquery/jquery-1.6.2.js"></script>
|
||||||
<script src="/base/static/lib/jquery.ui/js/jquery-ui-1.8.9.custom.min.js"></script>
|
<script src="/base/static/lib/jquery.ui/js/jquery-ui-1.8.9.custom.min.js"></script>
|
||||||
|
<script src="/base/static/lib/datejs/date-en-US.js"></script>
|
||||||
|
<script src="/base/static/lib/datejs/strftime.js"></script>
|
||||||
|
|
||||||
<script src="/base/static/lib/qweb/qweb.js"></script>
|
<script src="/base/static/lib/qweb/qweb.js"></script>
|
||||||
|
|
||||||
<script src="/base/static/src/js/boot.js"></script>
|
<script src="/base/static/src/js/boot.js"></script>
|
||||||
<script src="/base/static/src/js/core.js"></script>
|
<script src="/base/static/src/js/core.js"></script>
|
||||||
|
<script src="/base/static/src/js/dates.js"></script>
|
||||||
<script src="/base/static/src/js/formats.js"></script>
|
<script src="/base/static/src/js/formats.js"></script>
|
||||||
<script src="/base/static/src/js/chrome.js"></script>
|
<script src="/base/static/src/js/chrome.js"></script>
|
||||||
<script src="/base/static/src/js/data.js"></script>
|
<script src="/base/static/src/js/data.js"></script>
|
||||||
|
@ -40,4 +44,5 @@
|
||||||
<script type="text/javascript" src="/base/static/test/class.js"></script>
|
<script type="text/javascript" src="/base/static/test/class.js"></script>
|
||||||
<script type="text/javascript" src="/base/static/test/registry.js"></script>
|
<script type="text/javascript" src="/base/static/test/registry.js"></script>
|
||||||
<script type="text/javascript" src="/base/static/test/form.js"></script>
|
<script type="text/javascript" src="/base/static/test/form.js"></script>
|
||||||
|
<script type="text/javascript" src="/base/static/test/formats.js"></script>
|
||||||
</html>
|
</html>
|
||||||
|
|
Loading…
Reference in New Issue