diff --git a/addons/web/static/src/js/views/list/list_renderer.js b/addons/web/static/src/js/views/list/list_renderer.js
index 8437881a771..21028b99e02 100644
--- a/addons/web/static/src/js/views/list/list_renderer.js
+++ b/addons/web/static/src/js/views/list/list_renderer.js
@@ -246,10 +246,12 @@ var ListRenderer = BasicRenderer.extend({
if (node.tag === 'button') {
tdClassName += ' o_list_button';
} else {
- if (node.attrs.widget){
+ var typeClass = FIELD_CLASSES[this.state.fields[node.attrs.name].type];
+ if (typeClass) {
+ tdClassName += (' ' + typeClass);
+ }
+ if (node.attrs.widget) {
tdClassName += (' o_' + node.attrs.widget + '_cell');
- } else {
- tdClassName += (' ' + FIELD_CLASSES[this.state.fields[node.attrs.name].type]);
}
}
var $td = $('
', {class: tdClassName});
diff --git a/addons/web/static/src/less/fields.less b/addons/web/static/src/less/fields.less
index 329b4f62fbd..a4685d19dd4 100644
--- a/addons/web/static/src/less/fields.less
+++ b/addons/web/static/src/less/fields.less
@@ -26,7 +26,11 @@
//------------------------------------------------------------------------------
.o_field_widget {
- display: inline-block;
+ // Default display and alignment of widget and internal
+ &, input.o_input {
+ display: inline-block;
+ text-align: inherit;
+ }
// Block fields
&.note-editor, &.oe_form_field_html, &.oe_form_field_html_text, &.oe_form_field_text, &.o_view_manager_content, &.o_field_domain {
@@ -64,11 +68,6 @@
}
}
- // Input in field
- input[type="text"] {
- display: inline-block;
- }
-
// Text
&.o_field_text, &.oe_form_field_text .oe_form_text_content {
width: 100%;
diff --git a/addons/web/static/src/less/list_view.less b/addons/web/static/src/less/list_view.less
index 0caa775add3..eaf0f1bfba8 100644
--- a/addons/web/static/src/less/list_view.less
+++ b/addons/web/static/src/less/list_view.less
@@ -92,11 +92,11 @@
// Values styling
.o_data_cell {
- &.o_list_number, &.o_field_integer, &.o_field_float, &.o_field_monetary {
+ &.o_list_number {
text-align: right;
white-space: nowrap;
}
- &.o_list_text, &.o_field_text {
+ &.o_list_text {
white-space: pre-wrap;
}
&.o_invisible_modifier {
@@ -174,9 +174,6 @@
.o_field_boolean {
width: auto!important; // Override the width computed in JS (needed for Chrome)
}
- .o_field_number {
- text-align: right;
- }
}
}
diff --git a/addons/web/static/tests/views/list_tests.js b/addons/web/static/tests/views/list_tests.js
index 79666c949c3..93b4d41a0b5 100644
--- a/addons/web/static/tests/views/list_tests.js
+++ b/addons/web/static/tests/views/list_tests.js
@@ -2065,6 +2065,48 @@ QUnit.module('Views', {
list.destroy();
});
+
+ QUnit.test('numbers in list are right-aligned', function (assert) {
+ assert.expect(2);
+
+ var currencies = {};
+ _.each(this.data.res_currency.records, function (currency) {
+ currencies[currency.id] = currency;
+ });
+ var list = createView({
+ View: ListView,
+ model: 'foo',
+ data: this.data,
+ arch:
+ '' +
+ '' +
+ '' +
+ '' +
+ '' +
+ '',
+ session: {
+ currencies: currencies,
+ },
+ });
+
+ var nbCellRight = _.filter(list.$('.o_data_row:first > .o_data_cell'), function (el) {
+ var style = window.getComputedStyle(el);
+ return style.textAlign === 'right';
+ }).length;
+ assert.strictEqual(nbCellRight, 2,
+ "there should be two right-aligned cells");
+
+ list.$('.o_data_cell:first').click();
+
+ var nbInputRight = _.filter(list.$('.o_data_row:first > .o_data_cell input'), function (el) {
+ var style = window.getComputedStyle(el);
+ return style.textAlign === 'right';
+ }).length;
+ assert.strictEqual(nbInputRight, 2,
+ "there should be two right-aligned input");
+
+ list.destroy();
+ });
});
});
|