From 46600acbf536e0f3da8d2cf50245988e8795c9ba Mon Sep 17 00:00:00 2001
From: benjamin <benjamin@le-filament.com>
Date: Thu, 9 Nov 2023 20:05:41 +0100
Subject: [PATCH] [REM] remove email field and functions

---
 models/scop_instance.py      | 159 +----------------------------------
 security/ir.model.access.csv |   4 +-
 views/scop_instance.xml      |  12 ---
 3 files changed, 2 insertions(+), 173 deletions(-)

diff --git a/models/scop_instance.py b/models/scop_instance.py
index 8ad0920..7441cc7 100644
--- a/models/scop_instance.py
+++ b/models/scop_instance.py
@@ -28,7 +28,6 @@ class ScopInstance(models.Model):
         string="Nombre d'adhésions",
         compute="_compute_partners_count",
     )
-    email_count = fields.Integer(string="Nombre de mails", compute="_compute_emails")
 
     # ------------------------------------------------------
     # Computed fields / Search Fields
@@ -37,27 +36,6 @@ class ScopInstance(models.Model):
         for r in self:
             r.partners_count = len(r.instance_partner_ids)
 
-    def _compute_emails(self):
-        for r in self:
-            partners = r._get_partners()
-            email_ids = self.env["mail.mail"].search(
-                [
-                    (
-                        "mail_message_id",
-                        "in",
-                        partners.mapped("message_ids").ids,
-                    ),
-                    (
-                        "subtype_id",
-                        "=",
-                        self.env.ref(
-                            "cgscop_adhesion.mail_message_subtype_adhesion"
-                        ).id,
-                    ),
-                ],
-            )
-            r.email_count = len(email_ids)
-
     # ------------------------------------------------------
     # Onchange fields
     # ------------------------------------------------------
@@ -69,26 +47,6 @@ class ScopInstance(models.Model):
     # ------------------------------------------------------
     # Business method
     # ------------------------------------------------------
-    def get_report_datas(self):
-        """
-        :return: dict of stats (group by ur and cooperative form)
-        - datas_per_ur_type : list of dict per ur and type
-        - datas_stats_ur : list of dict per ur
-        - datas_stats_global : dict of stats
-        """
-        partner_ids = self._get_partners()
-
-        return {
-            "ur_ids": partner_ids.mapped("ur_id").sorted("id"),
-            "partner_ids": partner_ids,
-        }
-
-    def _get_partners(self):
-        """
-        map o2m on partner_id
-        """
-        return self.instance_partner_ids.mapped("partner_id")
-
     def create_report_adhesion(self, partners):
         """
         Generic function to create report adhésion CG
@@ -117,76 +75,18 @@ class ScopInstance(models.Model):
             "target": "new",
         }
 
-    def create_report_instance_adhesion(self):
-        """
-        Create report for "états préparatoires"
-        :return:
-        """
-        return self.env.ref(
-            "cgscop_adhesion_instance.cgscop_instance_adhesion_report"
-        ).report_action(self)
-
     def create_report_adhesion_all(self):
         """
         Create report adhésion CG ALL
         :return:
         """
-        partners = self._get_partners().filtered(
+        partners = self.instance_partner_ids.mapped("partner_id").filtered(
             lambda p: p.membership_status == "member"
         )
         if len(partners) < 1:
             raise UserError(_('Aucune coopérative n\'est en statut "membre"'))
         return self.create_report_adhesion(partners)
 
-    def create_report_adhesion_per_ur(self):
-        """
-        Create report adhésion CG PER UR
-        :return:
-        """
-        partners = self._get_partners().filtered(
-            lambda i: i.membership_status == "member"
-        )
-        if len(partners) < 1:
-            raise UserError(_('Aucune coopérative n\'est en statut "membre"'))
-        urs = partners.mapped("ur_id")
-        wizard = self.env["scop.instance.report.wizard"].create(
-            {
-                "partner_ids": [(6, 0, partners.ids)],
-                "ur_ids": [(6, 0, urs.ids)],
-            }
-        )
-
-        return {
-            "name": "Courriers d'adhésion par UR",
-            "type": "ir.actions.act_window",
-            "view_mode": "form",
-            "res_model": "scop.instance.report.wizard",
-            "res_id": wizard.id,
-            "target": "new",
-            "flags": {"mode": "readonly"},
-        }
-
-    def action_send_mail_adhesion(self):
-        """
-        Open wizard to send mail adhésions
-        """
-        partners = self._get_partners().filtered(
-            lambda i: i.membership_status == "member"
-        )
-        if len(partners) < 1:
-            raise UserError(_('Aucune coopérative n\'est en statut "membre"'))
-        wizard = self.env["scop.instance.mail.wizard"].create({})
-
-        return {
-            "name": "Envoyer les mails d'adhésion",
-            "type": "ir.actions.act_window",
-            "view_mode": "form",
-            "res_model": "scop.instance.mail.wizard",
-            "res_id": wizard.id,
-            "target": "new",
-            "domain": [("partner_ids", "in", partners.ids)],
-        }
-
     def action_show_coop(self):
         """
         Display tree view of coop linked to instance
@@ -207,27 +107,6 @@ class ScopInstance(models.Model):
             "domain": [["id", "in", partner_ids]],
         }
 
-    def action_show_emails(self):
-        """
-        Open email related to partners in instance and subtype adhésion
-        """
-        partners = self._get_partners()
-        return {
-            "name": "Etat des mails envoyés",
-            "type": "ir.actions.act_window",
-            "view_mode": "form",
-            "views": [(False, "tree"), (False, "form")],
-            "res_model": "mail.mail",
-            "domain": [
-                ("mail_message_id", "in", partners.mapped("message_ids").ids),
-                (
-                    "subtype_id",
-                    "=",
-                    self.env.ref("cgscop_adhesion.mail_message_subtype_adhesion").id,
-                ),
-            ],
-        }
-
     # ------------------------------------------------------
     # Validation
     # ------------------------------------------------------
@@ -285,42 +164,6 @@ class ScopInstance(models.Model):
                 self.env["res.partner"].browse(validated_partners)
             )
 
-    def send_mass_mail_adhesion(self, partners):
-        """
-        Open wizard to send mail adhésion to partners of instance
-        """
-        self.ensure_one()
-        template_id = self.env.ref("cgscop_adhesion.email_template_adhesion")
-        ir_model_data = self.env["ir.model.data"]
-        try:
-            compose_form_id = ir_model_data.get_object_reference(
-                "mail", "email_compose_message_wizard_form"
-            )[1]
-        except ValueError:
-            compose_form_id = False
-        ctx = {
-            "default_model": "res.partner",
-            "default_res_id": partners.ids[0],
-            "default_use_template": True,
-            "default_template_id": template_id.id,
-            "default_subtype_id": self.env.ref(
-                "cgscop_adhesion.mail_message_subtype_adhesion"
-            ).id,
-            "default_composition_mode": "mass_mail"
-            if len(partners.ids) > 1
-            else "comment",
-            "active_ids": partners.ids,
-        }
-        return {
-            "type": "ir.actions.act_window",
-            "view_mode": "form",
-            "res_model": "mail.compose.message",
-            "views": [(compose_form_id, "form")],
-            "view_id": compose_form_id,
-            "target": "new",
-            "context": ctx,
-        }
-
     def update_membership_date(self):
         for partner in self.instance_partner_ids:
             partner.update({"statistic_membership_date": self.date_membership})
diff --git a/security/ir.model.access.csv b/security/ir.model.access.csv
index 0368279..3681ea5 100644
--- a/security/ir.model.access.csv
+++ b/security/ir.model.access.csv
@@ -1,6 +1,4 @@
 id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
 admin_scop_instance_partner,admin_scop_instance_partner,model_scop_instance_partner,cgscop_partner.group_cg_administrative,1,1,1,1
 user_scop_instance_partner,user_scop_instance_partner,model_scop_instance_partner,base.group_user,1,0,0,0
-cg_scop_instance_wizard,cg_scop_instance_wizard,model_scop_instance_wizard,cgscop_partner.group_cg_administrative,1,1,1,1
-cg_scop_instance_mail_wizard,cg_scop_instance_mail_wizard,model_scop_instance_mail_wizard,cgscop_partner.group_cg_administrative,1,1,1,1
-cg_scop_instance_report_wizard,cg_scop_instance_report_wizard,model_scop_instance_report_wizard,cgscop_partner.group_cg_administrative,1,1,1,1
+cg_scop_instance_wizard,cg_scop_instance_wizard,model_scop_instance_wizard,cgscop_partner.group_cg_administrative,1,1,1,1
\ No newline at end of file
diff --git a/views/scop_instance.xml b/views/scop_instance.xml
index 0bd0c4f..a4e8c46 100644
--- a/views/scop_instance.xml
+++ b/views/scop_instance.xml
@@ -53,18 +53,6 @@
                                     widget="statinfo"
                                 />
                             </button>
-                            <button
-                                name="action_show_emails"
-                                type="object"
-                                class="oe_stat_button"
-                                icon="fa-envelope-o"
-                            >
-                                <field
-                                    name="email_count"
-                                    widget="statinfo"
-                                    string="Mails"
-                                />
-                            </button>
                         </div>
                         <group>
                             <field name="date_membership" required="1" />
-- 
GitLab