diff --git a/printing_auto_base/models/printing_auto.py b/printing_auto_base/models/printing_auto.py
index 2216fc0..351f80b 100644
--- a/printing_auto_base/models/printing_auto.py
+++ b/printing_auto_base/models/printing_auto.py
@@ -53,6 +53,12 @@ class PrintingAuto(models.Model):
printer_id = fields.Many2one("printing.printer", "Printer")
printer_tray_id = fields.Many2one("printing.tray", "Tray")
nbr_of_copies = fields.Integer("Number of Copies", default=1)
+ action_on_error = fields.Selection(
+ [("log", "Record an error"), ("raise", "Raise an Exception")],
+ "Action on error",
+ default="log",
+ required=True,
+ )
@api.constrains("data_source", "report_id", "attachment_domain")
def _check_data_source(self):
diff --git a/printing_auto_base/models/printing_auto_mixin.py b/printing_auto_base/models/printing_auto_mixin.py
index 036415b..5bb0f85 100644
--- a/printing_auto_base/models/printing_auto_mixin.py
+++ b/printing_auto_base/models/printing_auto_mixin.py
@@ -37,14 +37,21 @@ class PrintingAutoMixin(models.AbstractModel):
def _get_printing_auto(self):
return self.auto_printing_ids
- def _handle_print_auto(self, printing_auto):
+ def _do_print_auto(self, printing_auto):
self.ensure_one()
printing_auto.ensure_one()
+ printer, count = printing_auto.do_print(self)
+ if count:
+ self._on_printing_auto_done(printing_auto, printer, count)
+
+ def _handle_print_auto(self, printing_auto):
+ printing_auto.ensure_one()
+ if printing_auto.action_on_error == "raise":
+ self._do_print_auto(printing_auto)
+ return
try:
with self.env.cr.savepoint():
- printer, count = printing_auto.do_print(self)
- if count:
- self._on_printing_auto_done(printing_auto, printer, count)
+ self._do_print_auto(printing_auto)
except Exception as e:
_logger.exception(
"An error occurred while printing '%s' for record %s.",
diff --git a/printing_auto_base/views/printing_auto.xml b/printing_auto_base/views/printing_auto.xml
index a346bd5..5489e49 100644
--- a/printing_auto_base/views/printing_auto.xml
+++ b/printing_auto_base/views/printing_auto.xml
@@ -24,6 +24,7 @@
domain="[('printer_id', '=', printer_id)]"
/>
+
@@ -44,6 +45,7 @@
+