diff --git a/sign_oca/models/sign_oca_request.py b/sign_oca/models/sign_oca_request.py index 26c3c875..e7dba9fd 100644 --- a/sign_oca/models/sign_oca_request.py +++ b/sign_oca/models/sign_oca_request.py @@ -235,6 +235,10 @@ def cancel(self): self.write({"state": "3_cancel"}) self._set_action_log("cancel") + def action_reset_to_draft(self): + self.write({"state": "1_draft"}) + self._set_action_log("to_draft") + @api.depends("signer_ids") def _compute_signer_count(self): for record in self: @@ -250,7 +254,7 @@ def open_template(self): def action_send(self, sign_now=False, message=""): self.ensure_one() - if self.state != "1_draft": + if self.state not in ["1_draft", "0_sent"]: return self._set_action_log("validate") self.state = "0_sent" @@ -264,14 +268,16 @@ def action_send(self, sign_now=False, message=""): 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", - ) + # send the message to partners who didn't sign only + if not signer.signed_on: + 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", + ) def action_send_signed_request(self): self.ensure_one() @@ -700,6 +706,7 @@ class SignRequestLog(models.Model): ("delete_field", "Delete field"), ("cancel", "Cancel"), ("configure", "Configure"), + ("to_draft", "Reset to Draft"), ], required=True, readonly=True, diff --git a/sign_oca/views/sign_oca_request.xml b/sign_oca/views/sign_oca_request.xml index 65833c82..83eed92a 100644 --- a/sign_oca/views/sign_oca_request.xml +++ b/sign_oca/views/sign_oca_request.xml @@ -32,6 +32,14 @@ confirm="You will cancel the request and all the accesses. Are you sure about it?" groups="sign_oca.sign_oca_group_user" /> +