diff options
| author | jbm-odoo <jbm@odoo.com> | 2019-10-09 15:24:45 +0200 |
|---|---|---|
| committer | fw-bot <otis@odoo.com> | 2019-10-16 15:49:49 +0000 |
| commit | e76c65e8b4a75df13e00f2b44e297deafa9e51e4 (patch) | |
| tree | a3a54b0cc58a6080147ab779754f52ad18e01039 /addons/web | |
| parent | e0ba61d9fb6f15c9df5d9cec4b5a6b602dc45899 (diff) | |
[FIX] web: Manage False in groupby title
Before this commit, when we export a list with a groupby on
boolean, the groupby title 'False' is replaced by 'Undefined'
in xls document.
After this commit, with an export and groupby on a boolean, we
will have correct title: True and False.
X-original-commit: 7e2c7bc35f2a5b3bc22e0e6c9d3b38279cda9367
Diffstat (limited to 'addons/web')
| -rw-r--r-- | addons/web/controllers/main.py | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/addons/web/controllers/main.py b/addons/web/controllers/main.py index 7d9f79dcbb9..165baa693b5 100644 --- a/addons/web/controllers/main.py +++ b/addons/web/controllers/main.py @@ -584,10 +584,11 @@ class GroupsTreeNode: build a leaf. The entire tree is built by inserting all leaves. """ - def __init__(self, model, fields, groupby, root=None): + def __init__(self, model, fields, groupby, groupby_type, root=None): self._model = model self._fields = fields self._groupby = groupby + self._groupby_type = groupby_type self.count = 0 # Total number of records in the subtree self.aggregated_values = Counter() # Fields aggregated values {field_name: aggregated value} @@ -605,7 +606,7 @@ class GroupsTreeNode: :return: the child node """ if key not in self.children: - self.children[key] = GroupsTreeNode(self._model, self._fields, self._groupby) + self.children[key] = GroupsTreeNode(self._model, self._fields, self._groupby, self._groupby_type) return self.children[key] def insert_leaf(self, group): @@ -710,7 +711,9 @@ class GroupExportXlsxWriter(ExportXlsxWriter): self.fields = fields def write_group(self, row, column, group_name, group, group_depth=0): - group_name = group_name[1] if isinstance(group_name, tuple) and len(group_name) > 1 else group_name or _("Undefined") + group_name = group_name[1] if isinstance(group_name, tuple) and len(group_name) > 1 else group_name + if group._groupby_type[group_depth] != 'boolean': + group_name = group_name or _("Undefined") row, column = self._write_group_header(row, column, group_name, group, group_depth) # Recursively write sub-groups @@ -1749,12 +1752,13 @@ class ExportFormat(object): Model = request.env[model].with_context(**params.get('context', {})) groupby = params.get('groupby') if not import_compat and groupby: + groupby_type = [Model._fields[x.split(':')[0]].type for x in groupby] domain = [('id', 'in', ids)] if ids else domain groups_data = Model.read_group(domain, field_names, groupby, lazy=False) # read_group(lazy=False) returns a dict only for final groups (with actual data), # not for intermediary groups. The full group tree must be re-constructed. - tree = GroupsTreeNode(Model, field_names, groupby) + tree = GroupsTreeNode(Model, field_names, groupby, groupby_type) for leaf in groups_data: tree.insert_leaf(leaf) |
