From 13338bf32bd1803ebe994c8ee6022f1666dd56c3 Mon Sep 17 00:00:00 2001 From: kobros-tech Date: Sun, 23 Mar 2025 22:08:12 +0300 Subject: [PATCH] [IMP] sign_oca: add resend feature to partners who did not sign --- sign_oca/models/sign_oca_request.py | 37 +++++++++++++++++------------ sign_oca/views/sign_oca_request.xml | 33 +++++++++++++++++++++++++ 2 files changed, 55 insertions(+), 15 deletions(-) diff --git a/sign_oca/models/sign_oca_request.py b/sign_oca/models/sign_oca_request.py index 26c3c875..0b02703c 100644 --- a/sign_oca/models/sign_oca_request.py +++ b/sign_oca/models/sign_oca_request.py @@ -255,23 +255,9 @@ def action_send(self, sign_now=False, message=""): self._set_action_log("validate") self.state = "0_sent" for signer in self.signer_ids: - signer._portal_ensure_token() if sign_now and signer.partner_id == self.env.user.partner_id: continue - render_result = self.env["ir.qweb"]._render( - "sign_oca.sign_oca_template_mail", - {"record": signer, "body": message, "link": signer.access_url}, - engine="ir.qweb", - minimal_qcontext=True, - ) - self.env["mail.thread"].message_notify( - body=render_result, - partner_ids=signer.partner_id.ids, - subject=_("New document to sign"), - subtype_id=self.env.ref("mail.mt_comment").id, - mail_auto_delete=False, - email_layout_xmlid="mail.mail_notification_light", - ) + signer.action_send(sign_now, message) def action_send_signed_request(self): self.ensure_one() @@ -446,6 +432,27 @@ def sign(self): "url": self.access_url, } + def action_send(self, sign_now=False, message=""): + self.ensure_one() + if self.signed_on or (sign_now and self.partner_id == self.env.user.partner_id): + return + self._portal_ensure_token() + render_result = self.env["ir.qweb"]._render( + "sign_oca.sign_oca_template_mail", + {"record": self, "body": message, "link": self.access_url}, + engine="ir.qweb", + minimal_qcontext=True, + ) + # send the message to partners who didn't sign only + self.env["mail.thread"].message_notify( + body=render_result, + partner_ids=self.partner_id.ids, + subject=_("New document to sign"), + subtype_id=self.env.ref("mail.mt_comment").id, + mail_auto_delete=False, + email_layout_xmlid="mail.mail_notification_light", + ) + def action_sign(self, items, access_token=False, latitude=False, longitude=False): self.ensure_one() if self.signed_on: diff --git a/sign_oca/views/sign_oca_request.xml b/sign_oca/views/sign_oca_request.xml index 65833c82..6f329ae9 100644 --- a/sign_oca/views/sign_oca_request.xml +++ b/sign_oca/views/sign_oca_request.xml @@ -111,6 +111,14 @@ +