From 6710a6b96540a63829a1de88383de1edf0c4343e Mon Sep 17 00:00:00 2001
From: Daniil Digtyar Vasilieva <daniildigtyar@gmail.com>
Date: Tue, 31 Oct 2023 13:00:43 +0100
Subject: [PATCH] [IMP] energy_selfconsumption: new contract tree view

---
 energy_selfconsumption/__manifest__.py         |  1 +
 energy_selfconsumption/models/contract.py      |  4 ++++
 .../models/selfconsumption.py                  |  5 ++++-
 .../views/contract_views.xml                   | 18 ++++++++++++++++++
 4 files changed, 27 insertions(+), 1 deletion(-)
 create mode 100644 energy_selfconsumption/views/contract_views.xml

diff --git a/energy_selfconsumption/__manifest__.py b/energy_selfconsumption/__manifest__.py
index d4b932f2d..90dbd0496 100644
--- a/energy_selfconsumption/__manifest__.py
+++ b/energy_selfconsumption/__manifest__.py
@@ -29,6 +29,7 @@
         "data/ir_attactment_data.xml",
         "data/custom_paper_format_views.xml",
         "data/contract_line_qty_formula_data.xml",
+        "views/contract_views.xml",
         "views/selfconsumption_views.xml",
         "views/supply_point_views.xml",
         "views/res_partner_views.xml",
diff --git a/energy_selfconsumption/models/contract.py b/energy_selfconsumption/models/contract.py
index e0fe22407..edf095fda 100644
--- a/energy_selfconsumption/models/contract.py
+++ b/energy_selfconsumption/models/contract.py
@@ -14,3 +14,7 @@ class Contract(models.Model):
         string="Energy Project",
         related="supply_point_assignation_id.distribution_table_id.selfconsumption_project_id.project_id",
     )
+    code = fields.Char(related="supply_point_assignation_id.supply_point_id.code")
+    supply_point_name = fields.Char(
+        related="supply_point_assignation_id.supply_point_id.name"
+    )
diff --git a/energy_selfconsumption/models/selfconsumption.py b/energy_selfconsumption/models/selfconsumption.py
index 19500f87c..94172a327 100644
--- a/energy_selfconsumption/models/selfconsumption.py
+++ b/energy_selfconsumption/models/selfconsumption.py
@@ -125,7 +125,10 @@ class Selfconsumption(models.Model):
         return {
             "type": "ir.actions.act_window",
             "name": "Contracts",
-            "view_mode": "tree,form",
+            "views": [
+                [self.env.ref("energy_selfconsumption.contract_tree_view").id, "tree"],
+                [False, "form"],
+            ],
             "res_model": "contract.contract",
             "domain": [("project_id", "=", self.id)],
             "context": {"create": True, "default_project_id": self.id},
diff --git a/energy_selfconsumption/views/contract_views.xml b/energy_selfconsumption/views/contract_views.xml
new file mode 100644
index 000000000..ec335fd86
--- /dev/null
+++ b/energy_selfconsumption/views/contract_views.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<odoo>
+    <data>
+        <record id="contract_tree_view" model="ir.ui.view">
+            <field name="name">energy_selfconsumption.contract.tree</field>
+            <field name="model">contract.contract</field>
+            <field name="arch" type="xml">
+                <tree string="Contracts">
+                    <field name="partner_id" />
+                    <field name="supply_point_name" />
+                    <field name="code" />
+                    <field name="next_period_date_start" />
+                    <field name="next_period_date_end" />
+                </tree>
+            </field>
+        </record>
+    </data>
+</odoo>
-- 
GitLab