From d766744b1c5ea6bf90a333dfeb62c3048ee9bcf9 Mon Sep 17 00:00:00 2001 From: Alvaro Fuentes Date: Fri, 20 Aug 2021 15:27:36 +0000 Subject: [PATCH] [FIX] base: fix ir_attachment read_group When called with a `srt` as readgroup parameter we get a traceback. Example: `read_group([('partner_id', 'in', self.ids)], 'partner_id', 'partner_id')` TB: ``` Traceback (most recent call last): File "/home/odoo/src/odoo/14.0/odoo/tools/safe_eval.py", line 330, in safe_eval return unsafe_eval(c, globals_dict, locals_dict) File "", line 2, in File "/home/odoo/src/odoo/14.0/odoo/addons/base/models/ir_attachment.py", line 420, in read_group if any('(' in field for field in fields + groupby): TypeError: can only concatenate list (not "str") to list ``` Observed on the upgrade request 22627. closes odoo/odoo#75416 X-original-commit: 8e7990dd5c069f7b0dba9f3d27f620f0fcad5441 Signed-off-by: Christophe Simonis --- odoo/addons/base/models/ir_attachment.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/odoo/addons/base/models/ir_attachment.py b/odoo/addons/base/models/ir_attachment.py index dd7a7c088a5..f87da94153d 100644 --- a/odoo/addons/base/models/ir_attachment.py +++ b/odoo/addons/base/models/ir_attachment.py @@ -431,11 +431,11 @@ class IrAttachment(models.Model): """Override read_group to add res_field=False in domain if not present.""" if not fields: raise AccessError(_("Sorry, you must provide fields to read on attachments")) + groupby = [groupby] if isinstance(groupby, str) else groupby if any('(' in field for field in fields + groupby): raise AccessError(_("Sorry, the syntax 'name:agg(field)' is not available for attachments")) if not any(item[0] in ('id', 'res_field') for item in domain): domain.insert(0, ('res_field', '=', False)) - groupby = [groupby] if isinstance(groupby, str) else groupby allowed_fields = self._read_group_allowed_fields() fields_set = set(field.split(':')[0] for field in fields + groupby) if not self.env.is_system() and (not fields or fields_set.difference(allowed_fields)):