diff --git a/sao/src/sao.less b/sao/src/sao.less index f3ea5cbf95..d72f0cdf62 100644 --- a/sao/src/sao.less +++ b/sao/src/sao.less @@ -496,6 +496,9 @@ img.icon { & > label { display: none; } + & > div.value { + white-space: pre; + } } > tbody > tr > td { cursor: pointer; diff --git a/sao/src/view/tree.js b/sao/src/view/tree.js index 9da46d346b..70db0877fc 100644 --- a/sao/src/view/tree.js +++ b/sao/src/view/tree.js @@ -113,11 +113,10 @@ } if (Boolean(parseInt(attributes.sum || '0', 10))) { - var label = attributes.string + Sao.i18n.gettext(': '); var sum = jQuery('', { - 'text': label, + 'text': attributes.string, }); - var aggregate = jQuery('', { + var aggregate = jQuery('
', { 'class': 'value', }); this.view.sum_widgets.set(column, [sum, aggregate]); @@ -1067,11 +1066,11 @@ sum_ = (sum_ || 0).toLocaleString( Sao.i18n.BC47(Sao.i18n.getlang()), options); } - aggregate = selected_sum + ' / ' + sum_; + aggregate = selected_sum + '\n' + sum_; } sum_value.text(aggregate); sum_value.parent().attr( - 'title', sum_label.text() + ' ' + sum_value.text()); + 'title', sum_label.text() + '\n' + sum_value.text()); } }, get selected_records() { diff --git a/tryton/CHANGELOG b/tryton/CHANGELOG index 5aacd9eebe..8a8dc26ac1 100644 --- a/tryton/CHANGELOG +++ b/tryton/CHANGELOG @@ -1,3 +1,4 @@ +* Display sum on column header Version 6.8.0 - 2023-05-01 -------------------------- diff --git a/tryton/tryton/gui/window/view_form/view/list.py b/tryton/tryton/gui/window/view_form/view/list.py index d6e8cd0d99..2451231bbe 100644 --- a/tryton/tryton/gui/window/view_form/view/list.py +++ b/tryton/tryton/gui/window/view_form/view/list.py @@ -337,19 +337,6 @@ class TreeXMLViewParser(XMLViewParser): if 'optional' in attributes: self.view.optionals.append(column) - if bool(int(attributes.get('sum', 0))): - text = attributes['string'] + _(':') - label, sum_ = Gtk.Label(label=text), Gtk.Label() - - hbox = Gtk.HBox() - hbox.pack_start(label, expand=True, fill=False, padding=2) - hbox.pack_start(sum_, expand=True, fill=False, padding=2) - hbox.show_all() - self.view.sum_box.pack_start( - hbox, expand=False, fill=False, padding=0) - - self.view.sum_widgets.append((attributes['name'], sum_)) - def _parse_button(self, node, attributes): button = Button(self.view, attributes) self.view.state_widgets.append(button) @@ -392,7 +379,19 @@ class TreeXMLViewParser(XMLViewParser): hbox.pack_start(arrow_widget, expand=False, fill=False, padding=0) column.set_clickable(True) hbox.show() - column.set_widget(hbox) + if bool(int(attributes.get('sum', 0))): + vbox = Gtk.VBox(homogeneous=False, spacing=0) + vbox.pack_start(hbox, expand=False, fill=True, padding=0) + sum_ = Gtk.Label() + sum_.set_justify(Gtk.Justification.RIGHT) + sum_.show() + vbox.pack_start(sum_, expand=False, fill=True, padding=0) + self.view.sum_widgets.append((attributes['name'], sum_)) + vbox.show() + widget = vbox + else: + widget = hbox + column.set_widget(widget) column.set_alignment(align) def _set_column_width(self, column, attributes): @@ -1205,7 +1204,7 @@ class ViewTree(View): '{}'.format(selected_sum or 0), True) sum_ = locale.localize('{}'.format(sum_ or 0), True) - text = '%s / %s' % (selected_sum, sum_) + text = '%s\n%s' % (selected_sum, sum_) else: text = '-' label.set_text(text)