diff --git a/models/scop_instance.py b/models/scop_instance.py index 8ad09204d761288e705181fe8fe2744c82aae89d..7441cc74d3a4ada71eb961600b1191fe8d164a80 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 03682799a323560d04c9404eadec7a69b093b13a..3681ea5f1eb2ef2a0a58002be813dfef4c69a619 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 0bd0c4f29ab154bfccdfa55bba7e21d7c875a4c5..a4e8c46ad371638e33c82d7e0d97d7be0b599939 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" />