From 8d2093b2710cd8fdc616e6362c39ca033b9c9704 Mon Sep 17 00:00:00 2001 From: Jordi Ballester Alomar Date: Tue, 2 Oct 2018 17:48:59 +0200 Subject: [PATCH] Fixes --- .../data/stock_request_sequence_data.xml | 8 +++++ .../models/stock_inventory_kanban.py | 29 ++++++++++++++++--- .../views/stock_inventory_kanban_views.xml | 2 ++ 3 files changed, 35 insertions(+), 4 deletions(-) diff --git a/stock_request_kanban/data/stock_request_sequence_data.xml b/stock_request_kanban/data/stock_request_sequence_data.xml index 33931ab67..d3ead8e74 100644 --- a/stock_request_kanban/data/stock_request_sequence_data.xml +++ b/stock_request_kanban/data/stock_request_sequence_data.xml @@ -10,5 +10,13 @@ + + Stock Inventory Kanban + stock.inventory.kanban + IKB + 5 + + + diff --git a/stock_request_kanban/models/stock_inventory_kanban.py b/stock_request_kanban/models/stock_inventory_kanban.py index e73a88b7d..3652af740 100644 --- a/stock_request_kanban/models/stock_inventory_kanban.py +++ b/stock_request_kanban/models/stock_inventory_kanban.py @@ -2,6 +2,7 @@ # License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl.html). from odoo import api, models, fields +from odoo.osv import expression class StockInventoryKanban(models.Model): @@ -35,7 +36,7 @@ class StockInventoryKanban(models.Model): readonly=True, states={'draft': [('readonly', False)]}, ) product_ids = fields.Many2many( - 'product.product', string='Product', + 'product.product', string='Products', domain=[('type', 'in', ['product', 'consu'])], ondelete='cascade', readonly=True, states={'draft': [('readonly', False)]}, @@ -56,21 +57,34 @@ class StockInventoryKanban(models.Model): compute='_compute_missing_kanban' ) + count_missing_kanbans = fields.Integer( + 'Missing Kanbans', + readonly=True, + compute='_compute_missing_kanban', + ) + @api.depends('kanban_ids', 'scanned_kanban_ids') def _compute_missing_kanban(self): for rec in self: rec.missing_kanban_ids = rec.kanban_ids.filtered( lambda r: r.id not in rec.scanned_kanban_ids.ids ) + rec.count_missing_kanbans = len(rec.missing_kanban_ids) def _get_inventory_kanban_domain(self): domain = [] if self.warehouse_ids: - domain.append(('warehouse_id', 'in', self.warehouse_ids.ids)) + expression.AND(( + domain, [('warehouse_id', 'in', self.warehouse_ids.ids)] + )) if self.product_ids: - domain.append(('product_id', 'in', self.product_ids.ids)) + expression.AND(( + domain, [('product_id', 'in', self.product_ids.ids)] + )) if self.location_ids: - domain.append(('location_id', 'in', self.location_ids.ids)) + expression.AND(( + domain, [('location_id', 'in', self.location_ids.ids)] + )) return domain def _start_inventory_values(self): @@ -88,6 +102,13 @@ class StockInventoryKanban(models.Model): 'state': 'closed' } + @api.model + def create(self, vals): + if vals.get('name', '/') == '/': + vals['name'] = self.env['ir.sequence'].next_by_code( + 'stock.inventory.kanban') + return super().create(vals) + @api.multi def calculate_kanbans(self): for rec in self: diff --git a/stock_request_kanban/views/stock_inventory_kanban_views.xml b/stock_request_kanban/views/stock_inventory_kanban_views.xml index 850e5bee4..879134b44 100644 --- a/stock_request_kanban/views/stock_inventory_kanban_views.xml +++ b/stock_request_kanban/views/stock_inventory_kanban_views.xml @@ -7,6 +7,8 @@ + +