From d858634b915ca54359dec6d1c9d38854b472bf08 Mon Sep 17 00:00:00 2001 From: Alexis de Lattre Date: Mon, 26 Apr 2021 11:50:11 +0200 Subject: [PATCH] Add mass cancel procurement wizard --- procurement_usability/__init__.py | 2 ++ procurement_usability/__manifest__.py | 1 + procurement_usability/wizard/__init__.py | 3 ++ .../wizard/procurement_mass_cancel.py | 18 ++++++++++ .../wizard/procurement_mass_cancel_view.xml | 36 +++++++++++++++++++ 5 files changed, 60 insertions(+) create mode 100644 procurement_usability/wizard/__init__.py create mode 100644 procurement_usability/wizard/procurement_mass_cancel.py create mode 100644 procurement_usability/wizard/procurement_mass_cancel_view.xml diff --git a/procurement_usability/__init__.py b/procurement_usability/__init__.py index 40a96af..3b4c3ed 100644 --- a/procurement_usability/__init__.py +++ b/procurement_usability/__init__.py @@ -1 +1,3 @@ # -*- coding: utf-8 -*- + +from . import wizard diff --git a/procurement_usability/__manifest__.py b/procurement_usability/__manifest__.py index a9cbf47..dc4d425 100644 --- a/procurement_usability/__manifest__.py +++ b/procurement_usability/__manifest__.py @@ -23,6 +23,7 @@ This module has been written by Alexis de Lattre from Akretion +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo import models + + +class ProcurementMassCancel(models.TransientModel): + _name = 'procurement.mass.cancel' + _description = 'Procurement Order Mass Cancel' + + def run(self): + assert self.env.context.get('active_model') == 'procurement.order' + active_ids = self.env.context.get('active_ids') + assert active_ids + procs = self.env['procurement.order'].browse(active_ids) + procs.cancel() # they already do the filtered on state != done diff --git a/procurement_usability/wizard/procurement_mass_cancel_view.xml b/procurement_usability/wizard/procurement_mass_cancel_view.xml new file mode 100644 index 0000000..5a9f7a0 --- /dev/null +++ b/procurement_usability/wizard/procurement_mass_cancel_view.xml @@ -0,0 +1,36 @@ + + + + + + + procurement.mass.cancel + +
+ +
This wizard will cancel the selected procurements which are not already in Done state.
+
+
+
+
+
+
+ + + +