From 00a44d26f9f1a72aec88d0a0cfaa961d67f267f8 Mon Sep 17 00:00:00 2001 From: mreficent Date: Fri, 9 Aug 2019 20:40:47 +0200 Subject: [PATCH] [IMP] Simplify inheritance of states --- stock_request/models/stock_request.py | 23 ++++++++++++++------- stock_request/models/stock_request_order.py | 21 ++++++++++--------- 2 files changed, 26 insertions(+), 18 deletions(-) diff --git a/stock_request/models/stock_request.py b/stock_request/models/stock_request.py index 77f2be79c..279dc22ad 100644 --- a/stock_request/models/stock_request.py +++ b/stock_request/models/stock_request.py @@ -7,10 +7,10 @@ from odoo.addons import decimal_precision as dp from odoo.tools import float_compare REQUEST_STATES = [ - ('draft', 'Draft'), - ('open', 'In progress'), - ('done', 'Done'), - ('cancel', 'Cancelled')] + ('draft', _('Draft')), + ('open', _('In progress')), + ('done', _('Done')), + ('cancel', _('Cancelled'))] class StockRequest(models.Model): @@ -19,6 +19,12 @@ class StockRequest(models.Model): _inherit = 'stock.request.abstract' _order = 'id desc' + def __get_request_states(self): + return REQUEST_STATES + + def _get_request_states(self): + return self.__get_request_states() + def _get_default_requested_by(self): return self.env['res.users'].browse(self.env.uid) @@ -36,10 +42,11 @@ class StockRequest(models.Model): name = fields.Char( states={'draft': [('readonly', False)]} ) - state = fields.Selection(selection=REQUEST_STATES, string='Status', - copy=False, default='draft', index=True, - readonly=True, track_visibility='onchange', - ) + state = fields.Selection( + selection=_get_request_states, string='Status', + copy=False, default='draft', index=True, + readonly=True, track_visibility='onchange', + ) requested_by = fields.Many2one( 'res.users', 'Requested by', required=True, track_visibility='onchange', diff --git a/stock_request/models/stock_request_order.py b/stock_request/models/stock_request_order.py index 84e425825..0b9cef1e3 100644 --- a/stock_request/models/stock_request_order.py +++ b/stock_request/models/stock_request_order.py @@ -4,12 +4,6 @@ from odoo import api, fields, models, _ from odoo.exceptions import UserError, ValidationError, AccessError -REQUEST_STATES = [ - ('draft', 'Draft'), - ('open', 'In progress'), - ('done', 'Done'), - ('cancel', 'Cancelled')] - class StockRequestOrder(models.Model): _name = 'stock.request.order' @@ -29,6 +23,12 @@ class StockRequestOrder(models.Model): res['location_id'] = warehouse.lot_stock_id.id return res + def __get_request_order_states(self): + return self.env['stock.request']._get_request_states() + + def _get_request_order_states(self): + return self.__get_request_order_states() + def _get_default_requested_by(self): return self.env['res.users'].browse(self.env.uid) @@ -36,10 +36,11 @@ class StockRequestOrder(models.Model): 'Name', copy=False, required=True, readonly=True, states={'draft': [('readonly', False)]}, default='/') - state = fields.Selection(selection=REQUEST_STATES, string='Status', - copy=False, default='draft', index=True, - readonly=True, track_visibility='onchange', - ) + state = fields.Selection( + selection=_get_request_order_states, + string='Status', copy=False, default='draft', index=True, + readonly=True, track_visibility='onchange', + ) requested_by = fields.Many2one( 'res.users', 'Requested by', required=True, track_visibility='onchange',