From e479e7aeda0abed6c7ab73686e9b1461567785cd Mon Sep 17 00:00:00 2001
From: Remi <remi@le-filament.com>
Date: Tue, 29 Oct 2019 13:05:47 +0100
Subject: [PATCH] =?UTF-8?q?Ajout=20groupes=20sur=20p=C3=A9riodes?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 __manifest__.py                   |  1 +
 security/ir.model.access.csv      | 76 ++++++++++++++++---------------
 security/security_rules.xml       | 12 +++--
 views/res_partner_cooperative.xml |  4 +-
 4 files changed, 51 insertions(+), 42 deletions(-)

diff --git a/__manifest__.py b/__manifest__.py
index e83e3ef..22196e4 100644
--- a/__manifest__.py
+++ b/__manifest__.py
@@ -28,6 +28,7 @@
         "views/res_partner_cooperative.xml",
         "views/scop_config_views.xml",
         "views/scop_config_lists_views.xml",
+        "views/scop_period_views.xml",
         "datas/res.country.csv",
         "datas/union.regionale.csv",
         "datas/res.partner.certification.csv",
diff --git a/security/ir.model.access.csv b/security/ir.model.access.csv
index 095af38..00d5e5e 100644
--- a/security/ir.model.access.csv
+++ b/security/ir.model.access.csv
@@ -1,61 +1,65 @@
 id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
-access_liasse_fiscale_group_user,access_liasse_fiscale_group_user,model_scop_liasse_fiscale,base.group_user,1,0,0,0
 access_contribution_group_user,access_contribution_group_user,model_scop_contribution,base.group_user,1,0,0,0
-access_revision_group_user,access_revision_group_user,model_scop_revision,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,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_organization_type,access_res_partner_organization_type,model_res_partner_organization_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_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_creation_origin,access_res_partner_creation_origin,model_res_partner_creation_origin,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_subscription,access_res_partner_newsletter_subscription,model_res_partner_newsletter_subscription,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_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,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_type,access_scop_membership_type,model_scop_membership_type,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_revision_format,access_scop_revision_format,model_scop_revision_format,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_union_regionale,access_union_regionale,model_union_regionale,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_scop_liasse_fiscale_type,access_scop_liasse_fiscale_type,model_scop_liasse_fiscale_type,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_liasse_fiscale_source,access_scop_liasse_fiscale_source,model_scop_liasse_fiscale_source,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_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
-admin_liasse_fiscale_group_user,access_liasse_fiscale_group_user,model_scop_liasse_fiscale,group_cg_administrator,1,1,1,1
+access_scop_revision_format,access_scop_revision_format,model_scop_revision_format,base.group_user,1,0,0,0
+access_union_regionale,access_union_regionale,model_union_regionale,base.group_user,1,0,0,0
+add_scop_membership_period,add_scop_membership_period,model_scop_membership_period,group_add_period,1,1,1,0 
+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_revision_group_user,access_revision_group_user,model_scop_revision,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_questionnaire_group_user,access_questionnaire_group_user,model_scop_questionnaire,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_organization_type,admin_res_partner_organization_type,model_res_partner_organization_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_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_creation_origin,admin_res_partner_creation_origin,model_res_partner_creation_origin,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_subscription,admin_res_partner_newsletter_subscription,model_res_partner_newsletter_subscription,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_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_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_type,admin_scop_membership_type,model_scop_membership_type,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_revision_format,admin_scop_revision_format,model_scop_revision_format,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_union_regionale,admin_union_regionale,model_union_regionale,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_scop_liasse_fiscale_type,admin_scop_liasse_fiscale_type,model_scop_liasse_fiscale_type,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_liasse_fiscale_source,admin_scop_liasse_fiscale_source,model_scop_liasse_fiscale_source,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_segment1,admin_res_partner_segment1,model_res_partner_segment1,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_res_partner_segment1,admin_ur_res_partner_segment1,model_res_partner_segment1,group_ur_list_modif,1,1,1,1
-admin_res_partner_segment2,admin_res_partner_segment2,model_res_partner_segment2,group_cg_administrator,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_res_partner_segment3,admin_res_partner_segment3,model_res_partner_segment3,group_cg_administrator,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
-admin_res_partner_segment4,admin_res_partner_segment4,model_res_partner_segment4,group_cg_administrator,1,1,1,1
 admin_ur_res_partner_segment4,admin_ur_res_partner_segment4,model_res_partner_segment4,group_ur_list_modif,1,1,1,1
+edit_scop_membership_period,edit_scop_membership_period,model_scop_membership_period,group_edit_period,1,1,0,0 
+edit_scop_period,edit_scop_period,model_scop_period,group_edit_period,1,1,0,0
diff --git a/security/security_rules.xml b/security/security_rules.xml
index 748b73d..997e78b 100644
--- a/security/security_rules.xml
+++ b/security/security_rules.xml
@@ -8,13 +8,17 @@
             <field name="name">Modifier les listes spécifiques de mon UR</field>
         </record>
 
-        <record id="group_cg_administrative" model="res.groups">
-            <field name="name">Administratif CG (modification périodes)</field>
+        <record id="group_add_period" model="res.groups">
+            <field name="name">Ajout nouvelle période</field>
+        </record>
+
+        <record id="group_edit_period" model="res.groups">
+            <field name="name">Modification période</field>
         </record>
 
         <record id="group_cg_administrator" model="res.groups">
-            <field name="name">Administrateur CG (modification listes)</field>
-            <field name="implied_ids" eval="[(4, ref('cgscop_partner.group_cg_administrative')), (4, ref('group_ur_list_modif'))]"/>
+            <field name="name">Administrateur CG</field>
+            <field name="implied_ids" eval="[(4, ref('cgscop_partner.group_add_period')), (4, ref('cgscop_partner.group_edit_period')),(4, ref('group_ur_list_modif'))]"/>
         </record>
 
         <record id="base.res_users_rule" model="ir.rule">
diff --git a/views/res_partner_cooperative.xml b/views/res_partner_cooperative.xml
index 161bb47..99f2e86 100644
--- a/views/res_partner_cooperative.xml
+++ b/views/res_partner_cooperative.xml
@@ -117,8 +117,8 @@
             <field name="arch" type="xml">
                 <form string="Cooperatives" attrs="{'readonly': [('project_status', '=', '5_cg')]}">
                     <header>
-                        <button string="Nouvelle période" type="action" name="%(cgscop_partner.scop_period_wizard_create_action)d" class="oe_highlight" attrs="{'invisible': ['|', ('write_date', '=', False), ('project_status', '!=', '6_suivi')]}" groups="cgscop_partner.group_cg_administrative"/>
-                        <button string="Décés/Mise en sommeil" type="action" name="%(cgscop_partner.scop_deces_wizard_create_action)d" attrs="{'invisible': ['|', ('dissolution_reason_id', '!=', False), '|', ('write_date', '=', False), ('project_status', '!=', '6_suivi')]}" groups="cgscop_partner.group_cg_administrative"/>
+                        <button string="Nouvelle période" type="action" name="%(cgscop_partner.scop_period_wizard_create_action)d" class="oe_highlight" attrs="{'invisible': ['|', ('write_date', '=', False), ('project_status', '!=', '6_suivi')]}" groups="cgscop_partner.group_add_period"/>
+                        <button string="Décés/Mise en sommeil" type="action" name="%(cgscop_partner.scop_deces_wizard_create_action)d" attrs="{'invisible': ['|', ('dissolution_reason_id', '!=', False), '|', ('write_date', '=', False), ('project_status', '!=', '6_suivi')]}" groups="cgscop_partner.group_add_period"/>
                         <button string="Envoyer Dossier CG" type="object" name="scop_send_to_cg" class="btn-primary" attrs="{'invisible': ['|', ('write_date', '=', False), ('project_status', '!=', '4_adhesion')]}"/>
                         <button string="Dossier créé CG (temp)" type="object" name="scop_valid_cg" class="btn-primary" attrs="{'invisible': ['|', ('write_date', '=', False), ('project_status', '!=', '5_cg')]}"/>
                         <button string="Prospect Abandonne" type="object" name="scop_abandonne" attrs="{'invisible':[('project_status','in',('5_cg', '6_suivi', '7_abandonne'))]}"/>
-- 
GitLab