From f9d75649e0ac8bad35e9ad7a62934507594d77f9 Mon Sep 17 00:00:00 2001
From: Julien Ortet <julien@le-filament.com>
Date: Tue, 6 Feb 2024 17:20:41 +0100
Subject: [PATCH] wip

---
 __manifest__.py                      |  1 +
 models/__init__.py                   |  2 ++
 models/acc_operation.py              | 44 ++++++++++++++++++++++++++++
 models/acc_repartition_keys.py       | 41 ++++++++++++++++++++++++++
 security/ir.model.access.csv         |  4 ++-
 views/acc_keys_repartition_views.xml | 10 +++++++
 views/acc_operation_views.xml        | 32 ++++++++++++++++++++
 7 files changed, 133 insertions(+), 1 deletion(-)
 create mode 100644 models/acc_operation.py
 create mode 100644 models/acc_repartition_keys.py
 create mode 100644 views/acc_keys_repartition_views.xml
 create mode 100644 views/acc_operation_views.xml

diff --git a/__manifest__.py b/__manifest__.py
index bc7c5e5..7fe4121 100644
--- a/__manifest__.py
+++ b/__manifest__.py
@@ -10,6 +10,7 @@
         "security/ir.model.access.csv",
         # datas
         # views
+        "views/acc_operation_views.xml",
         # views menu
         # wizard
     ],
diff --git a/models/__init__.py b/models/__init__.py
index e69de29..95d38c2 100644
--- a/models/__init__.py
+++ b/models/__init__.py
@@ -0,0 +1,2 @@
+from . import acc_operation
+from . import acc_repartition_keys
\ No newline at end of file
diff --git a/models/acc_operation.py b/models/acc_operation.py
new file mode 100644
index 0000000..fd774d8
--- /dev/null
+++ b/models/acc_operation.py
@@ -0,0 +1,44 @@
+# Copyright 2021- Le Filament (https://le-filament.com)
+# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html)
+import logging
+from odoo import _, fields, models
+
+
+_logger = logging.getLogger(__name__)
+
+
+class AccOperation(models.Model):
+    _inherit = ["acc.operation"]
+
+    # ------------------------------------------------------
+    # Fields declaration
+    # ------------------------------------------------------
+    keys_repartition_ids = fields.One2many(
+        comodel_name="acc.repartition.keys",
+        inverse_name="operation_id",
+        string="keys repartition",
+        required=False,
+    )
+    # ------------------------------------------------------
+    # SQL Constraints
+    # ------------------------------------------------------
+
+    # ------------------------------------------------------
+    # Default methods
+    # ------------------------------------------------------
+
+    # ------------------------------------------------------
+    # Computed fields / Search Fields
+    # ------------------------------------------------------
+
+    # ------------------------------------------------------
+    # Onchange / Constraints
+    # ------------------------------------------------------
+
+    # ------------------------------------------------------
+    # CRUD methods (ORM overrides)
+    # ------------------------------------------------------
+
+    # ------------------------------------------------------
+    # Actions
+    # ------------------------------------------------------
\ No newline at end of file
diff --git a/models/acc_repartition_keys.py b/models/acc_repartition_keys.py
new file mode 100644
index 0000000..b71474b
--- /dev/null
+++ b/models/acc_repartition_keys.py
@@ -0,0 +1,41 @@
+from odoo import fields, models
+
+
+class AccRepartitionKeys(models.Model):
+    _name = "acc.repartition.keys"
+    _description = "Clefs de repartition"
+    _order = "date_send DESC, id DESC"
+
+    # ------------------------------------------------------
+    # Fields declaration
+    csv_file = fields.Binary("Contenu du fichier CSV")
+    date_send = fields.Date("Date de l'envoi des clefs", default=None)
+    operation_id = fields.Many2one("acc.operation", "Opération")
+
+    # ------------------------------------------------------
+    # SQL Constraints
+    # ------------------------------------------------------
+
+    # ------------------------------------------------------
+    # Default methods
+    # ------------------------------------------------------
+
+    # ------------------------------------------------------
+    # Computed fields / Search Fields
+    # ------------------------------------------------------
+
+    # ------------------------------------------------------
+    # Onchange / Constraints
+    # ------------------------------------------------------
+
+    # ------------------------------------------------------
+    # CRUD methods (ORM overrides)
+    # ------------------------------------------------------
+
+    # ------------------------------------------------------
+    # Actions
+    # ------------------------------------------------------
+
+    # ------------------------------------------------------
+    # Business methods
+    # ------------------------------------------------------
\ No newline at end of file
diff --git a/security/ir.model.access.csv b/security/ir.model.access.csv
index 794b5ad..a07c238 100644
--- a/security/ir.model.access.csv
+++ b/security/ir.model.access.csv
@@ -1 +1,3 @@
-id,name,model_id/id,group_id/id,perm_read,perm_write,perm_create,perm_unlink
\ No newline at end of file
+id,name,model_id/id,group_id/id,perm_read,perm_write,perm_create,perm_unlink
+"access_acc_repartition_keys_group_partner_manager","acc_repartition_keys group_partner_manager","model_acc_repartition_keys","base.group_partner_manager",1,1,1,1
+"access_acc_repartition_keys_group_user","acc_repartition_keys group_user","model_acc_repartition_keys","base.group_user",1,0,0,0
\ No newline at end of file
diff --git a/views/acc_keys_repartition_views.xml b/views/acc_keys_repartition_views.xml
new file mode 100644
index 0000000..8ed462a
--- /dev/null
+++ b/views/acc_keys_repartition_views.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8"?>
+<odoo>
+    <data>
+        <record id="acc_keys_repatition_action" model="ir.actions.act_window">
+            <field name="name">Keys</field>
+            <field name="res_model">acc.repartition.keys</field>
+            <field name="view_mode">tree,form</field>
+        </record>
+    </data>
+</odoo>
\ No newline at end of file
diff --git a/views/acc_operation_views.xml b/views/acc_operation_views.xml
new file mode 100644
index 0000000..f5b2aa5
--- /dev/null
+++ b/views/acc_operation_views.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<!-- Copyright 2021- Le Filament (https://le-filament.com)
+     License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). -->
+<odoo>
+
+    <record id="acc_operation_form_view" model="ir.ui.view">
+        <field name="name">acc_operation_form_view.keys.form</field>
+        <field name="model">acc.operation</field>
+        <field name="inherit_id" ref="oacc.acc_operation_form_view" />
+        <field name="arch" type="xml">
+            <xpath expr="//notebook" position="inside">
+                <page string="Clefs de répartition" name="keys">
+                    <header>
+<!--                        <button-->
+<!--                            string="Test"-->
+<!--                            type="object"-->
+<!--                            class="btn-primary"-->
+<!--                            name="test_file"-->
+<!--                        />-->
+                    </header>
+                    <group>
+                        <field name="keys_repartition_ids" />
+<!--                            <tree>-->
+<!--                                <field name="date_send"/>-->
+<!--                            </tree>-->
+                    </group>
+                </page>
+            </xpath>
+        </field>
+    </record>
+
+</odoo>
\ No newline at end of file
-- 
GitLab