From 1242f230b6d539aa304c776f42fc5ab73a1ffb40 Mon Sep 17 00:00:00 2001
From: Benjamin <benjamin@le-filament.com>
Date: Tue, 25 Feb 2020 19:47:45 +0100
Subject: [PATCH] =?UTF-8?q?[cgscop=20#123]=20"Format=20de=20R=C3=A9vision"?=
 =?UTF-8?q?=20param=C3=A9trable=20par=20UR?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 models/scop_revision.py           | 10 +++++++
 security/ir.model.access.csv      | 45 ++++++++++++++++---------------
 security/security_rules.xml       | 16 +++++++++++
 views/res_partner.xml             |  2 +-
 views/scop_config_lists_views.xml | 11 +++++---
 5 files changed, 57 insertions(+), 27 deletions(-)

diff --git a/models/scop_revision.py b/models/scop_revision.py
index 062ac0e..3147286 100644
--- a/models/scop_revision.py
+++ b/models/scop_revision.py
@@ -40,5 +40,15 @@ class ScopRevision(models.Model):
 class ScopRevisionFormat(models.Model):
     _name = "scop.revision.format"
     _description = "Revision Format"
+    _order = 'ur_id, name'
+
+    def _default_ur(self):
+        return self.env['res.company']._ur_default_get()
 
     name = fields.Char('Revision Format')
+    ur_id = fields.Many2one(
+        'union.regionale',
+        string='Union Régionale',
+        index=True,
+        on_delete='restrict',
+        default=_default_ur)
diff --git a/security/ir.model.access.csv b/security/ir.model.access.csv
index b68fedd..58b8158 100644
--- a/security/ir.model.access.csv
+++ b/security/ir.model.access.csv
@@ -2,27 +2,27 @@ id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
 access_contribution_group_user,access_contribution_group_user,model_scop_contribution,base.group_user,1,0,0,0
 access_liasse_fiscale_group_user,access_liasse_fiscale_group_user,model_scop_liasse_fiscale,base.group_user,1,0,0,0
 access_questionnaire_group_user,access_questionnaire_group_user,model_scop_questionnaire,base.group_user,1,1,1,1
-access_res_partner_certification,access_res_partner_certification,model_res_partner_certification,base.group_user,1,0,0,0 
+access_res_partner_certification,access_res_partner_certification,model_res_partner_certification,base.group_user,1,0,0,0
 access_res_partner_company_type,access_res_partner_company_type,model_res_partner_company_type,base.group_user,1,0,0,0
-access_res_partner_cooperative_form,access_res_partner_cooperative_form,model_res_partner_cooperative_form,base.group_user,1,0,0,0 
+access_res_partner_cooperative_form,access_res_partner_cooperative_form,model_res_partner_cooperative_form,base.group_user,1,0,0,0
 access_res_partner_creation_origin,access_res_partner_creation_origin,model_res_partner_creation_origin,base.group_user,1,0,0,0
-access_res_partner_dissolution_reason,access_res_partner_dissolution_reason,model_res_partner_dissolution_reason,base.group_user,1,0,0,0 
+access_res_partner_dissolution_reason,access_res_partner_dissolution_reason,model_res_partner_dissolution_reason,base.group_user,1,0,0,0
 access_res_partner_mandate,access_res_partner_mandate,model_res_partner_mandate,base.group_user,1,0,0,0
-access_res_partner_newsletter,access_res_partner_newsletter,model_res_partner_newsletter,base.group_user,1,0,0,0 
-access_res_partner_newsletter_subscription,access_res_partner_newsletter_subscription,model_res_partner_newsletter_subscription,base.group_user,1,0,0,0 
-access_res_partner_organization_type,access_res_partner_organization_type,model_res_partner_organization_type,base.group_user,1,0,0,0 
-access_res_partner_rgpd_origin,access_res_partner_rgpd_origin,model_res_partner_rgpd_origin,base.group_user,1,0,0,0 
+access_res_partner_newsletter,access_res_partner_newsletter,model_res_partner_newsletter,base.group_user,1,0,0,0
+access_res_partner_newsletter_subscription,access_res_partner_newsletter_subscription,model_res_partner_newsletter_subscription,base.group_user,1,0,0,0
+access_res_partner_organization_type,access_res_partner_organization_type,model_res_partner_organization_type,base.group_user,1,0,0,0
+access_res_partner_rgpd_origin,access_res_partner_rgpd_origin,model_res_partner_rgpd_origin,base.group_user,1,0,0,0
 access_res_partner_segment1,access_res_partner_segment1,model_res_partner_segment1,base.group_user,1,0,0,0
 access_res_partner_segment2,access_res_partner_segment2,model_res_partner_segment2,base.group_user,1,0,0,0
 access_res_partner_segment3,access_res_partner_segment3,model_res_partner_segment3,base.group_user,1,0,0,0
 access_res_partner_segment4,access_res_partner_segment4,model_res_partner_segment4,base.group_user,1,0,0,0
 access_revision_group_user,access_revision_group_user,model_scop_revision,base.group_user,1,1,1,0
-access_scop_contribution_type,access_scop_contribution_type,model_scop_contribution_type,base.group_user,1,0,0,0 
+access_scop_contribution_type,access_scop_contribution_type,model_scop_contribution_type,base.group_user,1,0,0,0
 access_scop_liasse_fiscale_source,access_scop_liasse_fiscale_source,model_scop_liasse_fiscale_source,base.group_user,1,0,0,0
 access_scop_liasse_fiscale_type,access_scop_liasse_fiscale_type,model_scop_liasse_fiscale_type,base.group_user,1,0,0,0
-access_scop_membership_period,access_scop_membership_period,model_scop_membership_period,base.group_user,1,0,0,0 
-access_scop_membership_reason_end,access_scop_membership_reason_end,model_scop_membership_reason_end,base.group_user,1,0,0,0 
-access_scop_membership_type,access_scop_membership_type,model_scop_membership_type,base.group_user,1,0,0,0 
+access_scop_membership_period,access_scop_membership_period,model_scop_membership_period,base.group_user,1,0,0,0
+access_scop_membership_reason_end,access_scop_membership_reason_end,model_scop_membership_reason_end,base.group_user,1,0,0,0
+access_scop_membership_type,access_scop_membership_type,model_scop_membership_type,base.group_user,1,0,0,0
 access_scop_period,access_scop_period,model_scop_period,base.group_user,1,0,0,0
 access_scop_questionnaire_type,access_scop_questionnaire_type,model_scop_questionnaire_type,base.group_user,1,0,0,0
 access_scop_revision_format,access_scop_revision_format,model_scop_revision_format,base.group_user,1,0,0,0
@@ -31,31 +31,32 @@ add_scop_membership_period,add_scop_membership_period,model_scop_membership_peri
 add_scop_period,add_scop_period,model_scop_period,group_add_period,1,1,1,0
 admin_contribution_group_user,access_contribution_group_user,model_scop_contribution,group_cg_administrator,1,1,1,1
 admin_liasse_fiscale_group_user,access_liasse_fiscale_group_user,model_scop_liasse_fiscale,group_cg_administrator,1,1,1,1
-admin_res_partner_certification,admin_res_partner_certification,model_res_partner_certification,group_cg_administrator,1,1,1,1 
+admin_res_partner_certification,admin_res_partner_certification,model_res_partner_certification,group_cg_administrator,1,1,1,1
 admin_res_partner_company_type,admin_res_partner_company_type,model_res_partner_company_type,group_cg_administrator,1,1,1,1
-admin_res_partner_cooperative_form,admin_res_partner_cooperative_form,model_res_partner_cooperative_form,group_cg_administrator,1,1,1,1 
+admin_res_partner_cooperative_form,admin_res_partner_cooperative_form,model_res_partner_cooperative_form,group_cg_administrator,1,1,1,1
 admin_res_partner_creation_origin,admin_res_partner_creation_origin,model_res_partner_creation_origin,group_cg_administrator,1,1,1,1
-admin_res_partner_dissolution_reason,admin_res_partner_dissolution_reason,model_res_partner_dissolution_reason,group_cg_administrator,1,1,1,1 
+admin_res_partner_dissolution_reason,admin_res_partner_dissolution_reason,model_res_partner_dissolution_reason,group_cg_administrator,1,1,1,1
 admin_res_partner_mandate,admin_res_partner_mandate,model_res_partner_mandate,group_cg_administrator,1,1,1,1
-admin_res_partner_newsletter,admin_res_partner_newsletter,model_res_partner_newsletter,group_cg_administrator,1,1,1,1 
-admin_res_partner_newsletter_subscription,admin_res_partner_newsletter_subscription,model_res_partner_newsletter_subscription,group_cg_administrator,1,1,1,1 
-admin_res_partner_organization_type,admin_res_partner_organization_type,model_res_partner_organization_type,group_cg_administrator,1,1,1,1 
-admin_res_partner_rgpd_origin,admin_res_partner_rgpd_origin,model_res_partner_rgpd_origin,group_cg_administrator,1,1,1,1 
+admin_res_partner_newsletter,admin_res_partner_newsletter,model_res_partner_newsletter,group_cg_administrator,1,1,1,1
+admin_res_partner_newsletter_subscription,admin_res_partner_newsletter_subscription,model_res_partner_newsletter_subscription,group_cg_administrator,1,1,1,1
+admin_res_partner_organization_type,admin_res_partner_organization_type,model_res_partner_organization_type,group_cg_administrator,1,1,1,1
+admin_res_partner_rgpd_origin,admin_res_partner_rgpd_origin,model_res_partner_rgpd_origin,group_cg_administrator,1,1,1,1
 admin_res_partner_segment1,admin_res_partner_segment1,model_res_partner_segment1,group_cg_administrator,1,1,1,1
 admin_res_partner_segment2,admin_res_partner_segment2,model_res_partner_segment2,group_cg_administrator,1,1,1,1
 admin_res_partner_segment3,admin_res_partner_segment3,model_res_partner_segment3,group_cg_administrator,1,1,1,1
 admin_res_partner_segment4,admin_res_partner_segment4,model_res_partner_segment4,group_cg_administrator,1,1,1,1
 admin_revision_group_user,access_revision_group_user,model_scop_revision,group_cg_administrator,1,1,1,1
-admin_scop_contribution_type,admin_scop_contribution_type,model_scop_contribution_type,group_cg_administrator,1,1,1,1 
+admin_scop_contribution_type,admin_scop_contribution_type,model_scop_contribution_type,group_cg_administrator,1,1,1,1
 admin_scop_liasse_fiscale_source,admin_scop_liasse_fiscale_source,model_scop_liasse_fiscale_source,group_cg_administrator,1,1,1,1
 admin_scop_liasse_fiscale_type,admin_scop_liasse_fiscale_type,model_scop_liasse_fiscale_type,group_cg_administrator,1,1,1,1
-admin_scop_membership_period,admin_scop_membership_period,model_scop_membership_period,group_cg_administrator,1,1,1,1 
-admin_scop_membership_reason_end,admin_scop_membership_reason_end,model_scop_membership_reason_end,group_cg_administrator,1,1,1,1 
-admin_scop_membership_type,admin_scop_membership_type,model_scop_membership_type,group_cg_administrator,1,1,1,1 
+admin_scop_membership_period,admin_scop_membership_period,model_scop_membership_period,group_cg_administrator,1,1,1,1
+admin_scop_membership_reason_end,admin_scop_membership_reason_end,model_scop_membership_reason_end,group_cg_administrator,1,1,1,1
+admin_scop_membership_type,admin_scop_membership_type,model_scop_membership_type,group_cg_administrator,1,1,1,1
 admin_scop_period,admin_scop_period,model_scop_period,group_cg_administrator,1,1,1,1
 admin_scop_questionnaire_type,admin_scop_questionnaire_type,model_scop_questionnaire_type,group_cg_administrator,1,1,1,1
 admin_scop_revision_format,admin_scop_revision_format,model_scop_revision_format,group_cg_administrator,1,1,1,1
 admin_union_regionale,admin_union_regionale,model_union_regionale,group_cg_administrator,1,1,1,1
+admin_ur_scop_revision_format,admin_ur_scop_revision_format,model_scop_revision_format,group_ur_list_modif,1,1,1,1
 admin_ur_res_partner_segment1,admin_ur_res_partner_segment1,model_res_partner_segment1,group_ur_list_modif,1,1,1,1
 admin_ur_res_partner_segment2,admin_ur_res_partner_segment2,model_res_partner_segment2,group_ur_list_modif,1,1,1,1
 admin_ur_res_partner_segment3,admin_ur_res_partner_segment3,model_res_partner_segment3,group_ur_list_modif,1,1,1,1
diff --git a/security/security_rules.xml b/security/security_rules.xml
index 72a3308..24f7d16 100644
--- a/security/security_rules.xml
+++ b/security/security_rules.xml
@@ -123,6 +123,22 @@
             <field eval="True" name="global"/>
         </record>
 
+        <record id="scop_revision_format_rule_ur" model="ir.rule">
+            <field name="name">revision format rule per ur</field>
+            <field name="model_id" ref="model_scop_revision_format"/>
+            <field name="domain_force">[('ur_id','=',user.company_id.ur_id.id)]</field>
+            <field name="groups" eval="[(6, 0, [ref('base.group_user')])]"/>
+            <field eval="True" name="global"/>
+        </record>
+
+        <record id="scop_revision_format_rule_admin" model="ir.rule">
+            <field name="name">revision format rule administrator</field>
+            <field name="model_id" ref="model_scop_revision_format"/>
+            <field name="domain_force">[(1,'=',1)]</field>
+            <field name="groups" eval="[(6, 0, [ref('cgscop_partner.group_cg_administrator')])]"/>
+            <field eval="True" name="global"/>
+        </record>
+
         <record id="mail_activity_type_rule_ur_readall" model="ir.rule">
             <field name="name">read all mail activity type rule per ur</field>
             <field name="model_id" ref="mail.model_mail_activity_type"/>
diff --git a/views/res_partner.xml b/views/res_partner.xml
index e58555f..45f1922 100644
--- a/views/res_partner.xml
+++ b/views/res_partner.xml
@@ -654,7 +654,7 @@
                                     <group>
                                         <field name="revision_type"/>
                                         <field name="revision_next_date"/>
-                                        <field name="revision_format_id" options="{'no_open': True, 'no_create': True}"/>
+                                        <field name="revision_format_id" options="{'no_open': True, 'no_create': True}"  domain="[('ur_id', '=', ur_id)]"/>
                                     </group>
                                 </group>
                                 <field name="revision_ids" widget="one2many">
diff --git a/views/scop_config_lists_views.xml b/views/scop_config_lists_views.xml
index 417a8c9..3ae1f40 100644
--- a/views/scop_config_lists_views.xml
+++ b/views/scop_config_lists_views.xml
@@ -106,6 +106,7 @@
             <field name="arch" type="xml">
                 <tree string="Revision Formats" editable="top">
                     <field name="name"/>
+                    <field name="ur_id" options="{'no_open': True, 'no_create': True}"/>
                 </tree>
             </field>
         </record>
@@ -136,6 +137,12 @@
         </record>
 
         <!-- MENUS -->
+        <menuitem id="menu_scop_revision_format"
+            parent="contacts.res_partner_menu_config"
+            action="action_view_scop_revision_format_tree"
+            groups="group_cg_administrator,group_ur_list_modif"
+            sequence="10"/>
+
         <menuitem id="menu_scop_lists" name="SCOP Lists"
             parent="contacts.res_partner_menu_config" sequence="30" groups="group_cg_administrator"/>
 
@@ -143,10 +150,6 @@
             parent="menu_scop_lists"
             action="action_view_scop_membership_reason_end_tree"
             sequence="10"/>
-        <menuitem id="menu_scop_revision_format"
-            parent="menu_scop_lists"
-            action="action_view_scop_revision_format_tree"
-            sequence="20"/>
         <menuitem id="menu_scop_liasse_fiscale_source"
             parent="menu_scop_lists"
             action="action_view_scop_liasse_fiscale_source_tree"
-- 
GitLab