diff --git a/base_cancel_confirm/model/base_cancel_confirm.py b/base_cancel_confirm/model/base_cancel_confirm.py index 7b0278e09b..dc296bda65 100644 --- a/base_cancel_confirm/model/base_cancel_confirm.py +++ b/base_cancel_confirm/model/base_cancel_confirm.py @@ -49,8 +49,11 @@ def open_cancel_confirm_wizard(self): } return action + def _get_value_clear_cancel(self): + return {"cancel_confirm": False, "cancel_reason": False} + def clear_cancel_confirm_data(self): - self.write({"cancel_confirm": False, "cancel_reason": False}) + self.write(self._get_value_clear_cancel()) def get_view(self, view_id=None, view_type="form", **options): res = super().get_view(view_id=view_id, view_type=view_type, **options) diff --git a/base_cancel_confirm/wizard/cancel_confirm.py b/base_cancel_confirm/wizard/cancel_confirm.py index c5c80b27c0..50aee0cfdb 100644 --- a/base_cancel_confirm/wizard/cancel_confirm.py +++ b/base_cancel_confirm/wizard/cancel_confirm.py @@ -18,15 +18,21 @@ class CancelConfirm(models.TransientModel): required=True, ) + def _get_dict_update(self): + """Hooks this method to update value in docs""" + dict_update = {"cancel_confirm": True} + # Cancel Reason + if self.has_cancel_reason in ["optional", "required"]: + dict_update.update({"cancel_reason": self.cancel_reason}) + return dict_update + def confirm_cancel(self): self.ensure_one() res_model = self._context.get("cancel_res_model") res_ids = self._context.get("cancel_res_ids") cancel_method = self._context.get("cancel_method") docs = self.env[res_model].browse(res_ids) - docs.write({"cancel_confirm": True}) - # Cancel Reason - if self.has_cancel_reason in ["optional", "required"]: - docs.write({"cancel_reason": self.cancel_reason}) + dict_update = self._get_dict_update() + docs.write(dict_update) res = getattr(docs, cancel_method)() return res