diff --git a/controllers/main.py b/controllers/main.py index ed77bd77bc9d25be0844c0b2633c1fa689004327..71e1ab23fd2371a2737972176d1c82e1e36afe83 100644 --- a/controllers/main.py +++ b/controllers/main.py @@ -19,7 +19,10 @@ class ExcelExport(ExcelExport): @serialize_exception def index(self, data, token): params = json.loads(data) - if params.get("model") == "res.partner" and params.get("afac"): + if params.get("model") in [ + "res.partner", + "afac.project.partner", + ] and params.get("afac"): return afac_base(self, data, token) else: return super(ExcelExport, self).index(data, token) @@ -30,7 +33,10 @@ class CSVExport(CSVExport): @serialize_exception def index(self, data, token): params = json.loads(data) - if params.get("model") == "res.partner" and params.get("afac"): + if params.get("model") in [ + "res.partner", + "afac.project.partner", + ] and params.get("afac"): return afac_base(self, data, token) else: return super(CSVExport, self).index(data, token) diff --git a/models/afac_project_partner.py b/models/afac_project_partner.py index 3107f6313cf5f47aef9b90c97d08cc23d3272cd2..fdba40c1c6ba884e687902b25fe3172d84183995 100644 --- a/models/afac_project_partner.py +++ b/models/afac_project_partner.py @@ -52,3 +52,42 @@ class AfacProjectPartner(models.Model): "un participant pour un même projet.", ) ] + + # ------------------------------------------------------ + # ORM overrides + # ------------------------------------------------------ + def export_data(self, fields_to_export, afac=False): + """ + Hérite la fonction de Model pour ajouter les projets et sous projets dans + l'export si la case est cochée + """ + out = super().export_data(fields_to_export) + if afac: + column = [] + datas = out.get("datas", []) + all_projects = self.mapped("project_id") + + if datas: + for afac_project in all_projects: + data_index = 0 + column.append(afac_project.name) + afac_project_category = self.mapped("project_cat_ids") + for project_category in afac_project_category: + column.append(f"{afac_project.name}/{project_category.name}") + + for afac_project_partner in self: + if afac_project_partner.project_id in afac_project: + datas[data_index].append(1) + else: + datas[data_index].append(0) + + for project_category in afac_project_category: + if project_category in afac_project_partner.project_cat_ids: + datas[data_index].append(1) + else: + datas[data_index].append(0) + data_index += 1 + out["datas"] = datas + out["column"] = column + return out + return out diff --git a/static/src/xml/base.xml b/static/src/xml/base.xml index c250e8c8c5d47584cdf5a88fffb6ca9db3fc438a..463b1bed94829e2d59bdea90e5a2a4e49a7808eb 100644 --- a/static/src/xml/base.xml +++ b/static/src/xml/base.xml @@ -2,7 +2,10 @@ <templates id="template" xml:space="preserve"> <t t-name="ExportDialog" t-inherit="web.ExportDialog" t-inherit-mode="extension"> <xpath expr="//div[hasclass('o_import_compat')]" position="after"> - <div t-if="widget.record.model == 'res.partner'" class="mt16 mb16"> + <div + t-if="widget.record.model == 'res.partner' or widget.record.model == 'afac.project.partner'" + class="mt16 mb16" + > <div class="o_boolean_toggle custom-control custom-checkbox"> <input class="custom-control-input"