diff --git a/__manifest__.py b/__manifest__.py
index 260d55a887ba5f5558502c068ea972b88e51ae3f..f40cf05d17dbb6994252a55c1808bb29ff29411b 100644
--- a/__manifest__.py
+++ b/__manifest__.py
@@ -8,6 +8,7 @@
     "depends": ["oacc", "api_enedis_acc", "queue_job"],
     "data": [
         "security/ir.model.access.csv",
+        "security/security.xml",
         # datas
         # wizard
         "wizard/acc_repartition_keys_file_wizard_views.xml",
diff --git a/models/acc_operation.py b/models/acc_operation.py
index 1b699411cd5b8c1b3dacdc219f6e906fe65c6bab..6c372a849d6b097c5fe121f4acf57ecc212afb53 100644
--- a/models/acc_operation.py
+++ b/models/acc_operation.py
@@ -12,6 +12,19 @@ from odoo.exceptions import UserError, ValidationError
 from odoo.addons.api_connector.tools.date_utils import utc_to_local
 
 
+def get_algo_description(algo):
+    desc = {
+        "prorata": "La clé de répartition est calculée automatiquement chaque mois,"
+                   " au prorata de la consommation de chacun des consommateurs.",
+        "static": "La clé de répartition est calculée automatiquement chaque mois, "
+                  "en fonction des coefficients de répartition communiqués "
+                  "initialement à Enedis.",
+        "dyn_perso_send": "",
+        "dyn_perso_compute": "",
+    }
+
+    return desc.get(algo, f"Pas de descritpion associée a {algo}")
+
 class AccOperation(models.Model):
     _inherit = ["acc.operation"]
 
@@ -23,7 +36,7 @@ class AccOperation(models.Model):
         inverse_name="operation_id",
         string="keys files repartition",
         required=False,
-        groups="oacc.group_operation_superadmin",
+        groups="oacc.group_operation_admin",
     )
 
     repartition_keys_id = fields.One2many(
@@ -31,7 +44,7 @@ class AccOperation(models.Model):
         inverse_name="operation_id",
         string="Repartition key",
         required=False,
-        groups="oacc.group_operation_superadmin",
+        groups="oacc.group_operation_admin",
     )
 
     acc_priority_group_ids = fields.One2many(
@@ -55,8 +68,7 @@ class AccOperation(models.Model):
 
     algo_description = fields.Text(
         string="Description de l algorithme",
-        default="La clé de répartition est calculée automatiquement chaque mois, "
-        "au prorata de la consommation de chacun des consommateurs",
+        default="",
     )
 
     # ------------------------------------------------------
@@ -156,22 +168,18 @@ class AccOperation(models.Model):
 
     @api.onchange("type_algo")
     def on_change_algo(self):
-        desc = {
-            "prorata": "La clé de répartition est calculée automatiquement chaque mois,"
-            " au prorata de la consommation de chacun des consommateurs.",
-            "static": "La clé de répartition est calculée automatiquement chaque mois, "
-            "en fonction des coefficients de répartition communiqués "
-            "initialement à Enedis.",
-            "dyn_perso_send": "",
-            "dyn_perso_compute": "",
-        }
 
-        self.algo_description = desc.get(self.type_algo)
+        self.algo_description = get_algo_description(self.type_algo)
 
     # ------------------------------------------------------
     # CRUD methods (ORM overrides)
     # ------------------------------------------------------
+    def write(self, vals):
 
+        if vals.get("type_algo"):
+            vals.update({'algo_description': get_algo_description(vals.get("type_algo"))})
+        res = super().write(vals)
+        return res
     # ------------------------------------------------------
     # Actions
     # ------------------------------------------------------
@@ -331,3 +339,4 @@ class AccOperation(models.Model):
                 "date_send": datetime.now(),
             }
         )
+
diff --git a/models/acc_priority_group.py b/models/acc_priority_group.py
index 7f8b139761e7dd3ef363072207abca982006c6eb..2e62f7ba62371d6227d006b79459219ece9cc3e7 100644
--- a/models/acc_priority_group.py
+++ b/models/acc_priority_group.py
@@ -27,7 +27,7 @@ class AccPriorityGroup(models.Model):
     acc_priority_group_counter_ids = fields.One2many(
         comodel_name="acc.priority.group.counter",
         inverse_name="acc_priority_group_id",
-        string="Affectation de compteur par groupe de priorité",
+        string="Affectation de compteur par groupes de priorité",
         required=True,
     )
 
@@ -49,6 +49,7 @@ class AccPriorityGroup(models.Model):
         for prio_group in self:
             prio_group.display_name = f"Priorité {str(prio_group.sequence)}"
 
+
     def _compute_counter_datas(self):
         for priority in self:
             priority.counter_datas = (
@@ -64,13 +65,19 @@ class AccPriorityGroup(models.Model):
     # ------------------------------------------------------
     # Onchange / Constraints
     # ------------------------------------------------------
-    @api.onchange("sequence")
-    def on_change_algo(self):
-        self._compute_display_name()
 
     # ------------------------------------------------------
     # CRUD methods (ORM overrides)
     # ------------------------------------------------------
+    def write(self, vals):
+        seq = vals.get("sequence")
+        if seq is not None:
+            vals["sequence"] = seq + 1
+        res = super().write(vals)
+
+        return res
+
+
     @api.model
     def unlink(self, _id):
         self = self.env["acc.priority.group"].browse(_id)
@@ -78,7 +85,7 @@ class AccPriorityGroup(models.Model):
         existing_groups = self.env["acc.priority.group"].search(
             [("acc_operation_id", "=", current_operation_id), ("id", "!=", _id)]
         )
-        seq = 1
+        seq = 0
         for group in existing_groups:
             group.sequence = seq
             seq += 1
@@ -101,7 +108,7 @@ class AccPriorityGroup(models.Model):
         res = super().create(vals_list)
 
         if existing_groups:
-            res.sequence = max(existing_groups.mapped("sequence")) + 1
+            res.sequence = max(existing_groups.mapped("sequence"))
             return res
 
         counters_to_affect = self.env["acc.counter"].search(
@@ -120,6 +127,7 @@ class AccPriorityGroup(models.Model):
                     "counter_owner": counter.partner_id.name,
                 }
             )
+
         return res
 
     # ------------------------------------------------------
diff --git a/models/acc_priority_group_counter.py b/models/acc_priority_group_counter.py
index a7575036357d4d0a49c73639578e4737f3ace0a7..c278219f7eef758bb1480bdc801c562b6dc54a70 100644
--- a/models/acc_priority_group_counter.py
+++ b/models/acc_priority_group_counter.py
@@ -4,7 +4,7 @@ from odoo.osv import expression
 
 class AccPriorityGroupCounter(models.Model):
     _name = "acc.priority.group.counter"
-    _description = "Clé de répartition par groupe de priorité"
+    _description = "Clé de répartition par groupes de priorité"
     _rec_name = "acc_counter_id"
 
     # ------------------------------------------------------
diff --git a/models/acc_repartition_keys_file.py b/models/acc_repartition_keys_file.py
index 8cc99ef602552d5b6b548a3a7ecb8cb17d289708..3ed261ab73094ff4d0112884949c8ff4801e495d 100644
--- a/models/acc_repartition_keys_file.py
+++ b/models/acc_repartition_keys_file.py
@@ -3,7 +3,7 @@ from odoo import fields, models
 
 class AccRepartitionKeysFile(models.Model):
     _name = "acc.repartition.keys.file"
-    _description = "clés de repartition"
+    _description = "Fichier de clés de repartition"
     _order = "date_send DESC, id DESC"
 
     # ------------------------------------------------------
diff --git a/security/ir.model.access.csv b/security/ir.model.access.csv
index 01de11f6c621533d85fc6fa0b821c0f03c799a9c..e054e7bd0f07485ad86f887f647bac9ac3d0269d 100644
--- a/security/ir.model.access.csv
+++ b/security/ir.model.access.csv
@@ -5,7 +5,7 @@ id,name,model_id/id,group_id/id,perm_read,perm_write,perm_create,perm_unlink
 "access_acc_priority_group_counter_operation_superadmin","acc_priority_group_counter group_operation_superadmin","model_acc_priority_group_counter","oacc.group_operation_superadmin",1,1,1,1
 "access_acc_priority_group_operation_superadmin","acc_priority_group group_operation_superadmin","model_acc_priority_group","oacc.group_operation_superadmin",1,1,1,1
 "access_acc_repartition_counter_group_operation_superadmin","acc_repartition_counter group_operation_superadmin","model_acc_repartition_counter","oacc.group_operation_superadmin",1,1,1,1
-"access_acc_repartition_keys_compute_wizard_group_operation_superadmin","acc_repartition_keys_compute_wizard group_operation_superadmin","model_acc_repartition_keys_compute_wizard","oacc.group_operation_admin",1,1,1,1
+"access_acc_repartition_keys_compute_wizard_group_operation_superadmin","acc_repartition_keys_compute_wizard group_operation_superadmin","model_acc_repartition_keys_compute_wizard","oacc.group_operation_superadmin",1,1,1,1
 
 "access_acc_priority_group_counter_operation_admin","acc_priority_group_counter group_operation_admin","model_acc_priority_group_counter","oacc.group_operation_admin",1,1,1,1
 "access_acc_priority_group_operation_admin","acc_priority_group group_operation_admin","model_acc_priority_group","oacc.group_operation_admin",1,1,1,1
diff --git a/security/security.xml b/security/security.xml
new file mode 100644
index 0000000000000000000000000000000000000000..57a539b5b3ed4d03485f0f35a15b47519d060fb6
--- /dev/null
+++ b/security/security.xml
@@ -0,0 +1,87 @@
+<?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_priority_group_admin_rule" model="ir.rule">
+        <field name="name">Groupes de priorité</field>
+        <field ref="model_acc_priority_group" name="model_id" />
+        <field
+            name="domain_force"
+        >[('acc_operation_id', 'in', list(user.commercial_partner_id.acc_operation_admin_ids.ids))]</field>
+        <field name="groups" eval="[(4, ref('oacc.group_operation_admin'))]" />
+    </record>
+
+    <record id="acc_priority_group_superadmin_rule" model="ir.rule">
+        <field name="name">Groupes de priorité</field>
+        <field ref="model_acc_priority_group" name="model_id" />
+        <field name="domain_force">[(1, '=', 1)]</field>
+        <field name="groups" eval="[(4, ref('oacc.group_operation_superadmin'))]" />
+    </record>
+
+    <record id="acc_priority_group_counter_admin_rule" model="ir.rule">
+        <field name="name">Compteur pour repartition</field>
+        <field ref="model_acc_priority_group_counter" name="model_id" />
+        <field
+            name="domain_force"
+        >[('acc_operation_id', 'in', list(user.commercial_partner_id.acc_operation_admin_ids.ids))]</field>
+        <field name="groups" eval="[(4, ref('oacc.group_operation_admin'))]" />
+    </record>
+
+    <record id="acc_priority_group_counter_superadmin_rule" model="ir.rule">
+        <field name="name">Compteur pour repartition</field>
+        <field ref="model_acc_priority_group_counter" name="model_id" />
+        <field name="domain_force">[(1, '=', 1)]</field>
+        <field name="groups" eval="[(4, ref('oacc.group_operation_superadmin'))]" />
+    </record>
+
+    <record id="acc_repartition_counter_admin_rule" model="ir.rule">
+        <field name="name">Clés de repartition par compteur</field>
+        <field ref="model_acc_repartition_counter" name="model_id" />
+        <field
+            name="domain_force"
+        >[('acc_operation_id', 'in', list(user.commercial_partner_id.acc_operation_admin_ids.ids))]</field>
+        <field name="groups" eval="[(4, ref('oacc.group_operation_admin'))]" />
+    </record>
+
+    <record id="acc_repartition_counter_superadmin_rule" model="ir.rule">
+        <field name="name">Clés de repartition par compteur</field>
+        <field ref="model_acc_repartition_counter" name="model_id" />
+        <field name="domain_force">[(1, '=', 1)]</field>
+        <field name="groups" eval="[(4, ref('oacc.group_operation_superadmin'))]" />
+    </record>
+
+    <record id="acc_repartition_keys_admin_rule" model="ir.rule">
+        <field name="name">Ensemble des clés par operation</field>
+        <field ref="model_acc_repartition_keys" name="model_id" />
+        <field
+            name="domain_force"
+        >[('operation_id', 'in', list(user.commercial_partner_id.acc_operation_admin_ids.ids))]</field>
+        <field name="groups" eval="[(4, ref('oacc.group_operation_admin'))]" />
+    </record>
+
+    <record id="acc_repartition_keys_superadmin_rule" model="ir.rule">
+        <field name="name">Ensemble des clés par operation</field>
+        <field ref="model_acc_repartition_keys" name="model_id" />
+        <field name="domain_force">[(1, '=', 1)]</field>
+        <field name="groups" eval="[(4, ref('oacc.group_operation_superadmin'))]" />
+    </record>
+
+    <record id="acc_repartition_keys_file_admin_rule" model="ir.rule">
+        <field name="name">Fichier de clés de repartition</field>
+        <field ref="model_acc_repartition_keys_file" name="model_id" />
+        <field
+            name="domain_force"
+        >[('operation_id', 'in', list(user.commercial_partner_id.acc_operation_admin_ids.ids))]</field>
+        <field name="groups" eval="[(4, ref('oacc.group_operation_admin'))]" />
+    </record>
+
+    <record id="acc_repartition_keys_file_superadmin_rule" model="ir.rule">
+        <field name="name">Fichier de clés de repartition</field>
+        <field ref="model_acc_repartition_keys_file" name="model_id" />
+        <field name="domain_force">[(1, '=', 1)]</field>
+        <field name="groups" eval="[(4, ref('oacc.group_operation_superadmin'))]" />
+    </record>
+
+
+</odoo>
diff --git a/static/src/js/kanban_button.js b/static/src/js/kanban_button.js
index b1f668a77b60d7b896e94a1d423f497d5a61f8d0..4de64cee5b89baecae9ed6fd663a0d185a1f3dbe 100644
--- a/static/src/js/kanban_button.js
+++ b/static/src/js/kanban_button.js
@@ -7,7 +7,6 @@ export class PriorityGroupKanbanController extends KanbanController {
     super.setup();
   }
   CreatePriorityGroupClick() {
-    console.log(this.props.context);
     this.actionService.doAction({
       type: "ir.actions.act_window",
       res_model: "acc.priority.group",
@@ -18,9 +17,15 @@ export class PriorityGroupKanbanController extends KanbanController {
       target: "new",
       res_id: false,
       context: this.props.context || {},
+    },
+    {
+        onClose: function () {
+                location.reload()
+                }
     });
   }
 }
+
 registry.category("views").add("button_in_kanban", {
   ...kanbanView,
   Controller: PriorityGroupKanbanController,
diff --git a/views/acc_operation_views.xml b/views/acc_operation_views.xml
index a9f6e52a9683621cc621957b6554b1725b0bdce1..16f635bda41485adaacd2c9eef5c23befe1d044f 100644
--- a/views/acc_operation_views.xml
+++ b/views/acc_operation_views.xml
@@ -22,7 +22,7 @@
             type="action"
             name="%(oacc_repartition_keys.acc_repartition_keys_compute_wizard_action)d"
             class="btn-primary"
-            attrs="{'invisible': [('type_algo', 'in', ['prorata', 'static'])]}"
+            attrs="{'invisible': [('type_algo', 'in', ['prorata', 'static', 'dyn_perso_send'])]}"
             groups="oacc.group_operation_superadmin"
           />
 
@@ -40,7 +40,7 @@
             string="Importer un fichier de clés"
             type="action"
             name="%(oacc_repartition_keys.acc_repartition_keys_file_wizard_action)d"
-            class="btn-primary"
+            class="btn-primary mb-3"
             attrs="{'invisible': [('type_algo', 'not in', ['dyn_perso_send'])]}"
             groups="oacc.group_operation_admin"
           />
@@ -54,6 +54,7 @@
                 filename="filename"
                 readonly="1"
                 string="Fichier chargé"
+                groups="oacc.group_operation_admin"
               />
                         </tree>
                     </field>
diff --git a/views/acc_priority_group_counter_views.xml b/views/acc_priority_group_counter_views.xml
index 246eec47dda447148edf9feab05e96c53b44a13d..5bf60f294bc1d5bc358a6bf4668d1e2f251a4e74 100644
--- a/views/acc_priority_group_counter_views.xml
+++ b/views/acc_priority_group_counter_views.xml
@@ -1,9 +1,11 @@
 <?xml version="1.0" encoding="utf-8" ?>
 <odoo>
     <record id="acc_priority_group_counter_act_window" model="ir.actions.act_window">
-        <field name="name">Clé de répartition par groupe de priorité</field>
+        <field name="name">Clé de répartition par groupes de priorité</field>
         <field name="res_model">acc.priority.group.counter</field>
         <field name="view_mode">kanban</field>
+        <field name="domain">[("acc_operation_id", "=", active_id)]</field>
+        <field name="context">{"default_acc_operation_id": active_id}</field>
     </record>
 
     <record id="acc_operation_priority_group_counter_form" model="ir.ui.view">
diff --git a/views/menu_views.xml b/views/menu_views.xml
index 3bc4ea9f143543817d847b1a23be57c1d2e3cda2..a6d202a9bbc839830ab2604945071b3bc0be9413 100644
--- a/views/menu_views.xml
+++ b/views/menu_views.xml
@@ -9,13 +9,7 @@
     sequence="15"
     groups="oacc.group_operation_superadmin"
   />
-<!--    <menuitem-->
-<!--    id="menu_send_key"-->
-<!--    parent="menu_repartition_principal"-->
-<!--    name="Clés envoyées"-->
-<!--    sequence="30"-->
-<!--    action="oacc_repartition_keys.acc_keys_repartition_file_action"-->
-<!--  />-->
+
   <menuitem
     id="menu_computed_key"
     parent="menu_repartition_principal"