From 5d6aa47a4c45f10866e9fda8771c1fc7c515f288 Mon Sep 17 00:00:00 2001 From: "Quentin (OpenERP)" Date: Fri, 20 Dec 2013 13:45:47 +0100 Subject: [PATCH] [IMP] stock: improved the algorithm of automatic color selection for picking types... Err.. 'usability improvement', i guess... bzr revid: qdp-launchpad@openerp.com-20131220124547-vegxd06ydiawe3hw --- addons/stock/stock.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/addons/stock/stock.py b/addons/stock/stock.py index de04788..1de8302 100644 --- a/addons/stock/stock.py +++ b/addons/stock/stock.py @@ -2673,11 +2673,15 @@ class stock_warehouse(osv.osv): output_loc = wh_stock_loc #choose the next available color for the picking types of this warehouse - all_used_colors = self.pool.get('stock.picking.type').search_read(cr, uid, [('warehouse_id', '!=', False), ('color', '!=', False)], ['color'], order='color') - not_used_colors = list(set(range(0, 9)) - set([x['color'] for x in all_used_colors])) color = 0 - if not_used_colors: - color = not_used_colors[0] + available_colors = [c%9 for c in range(3, 12)] # put flashy colors first + all_used_colors = self.pool.get('stock.picking.type').search_read(cr, uid, [('warehouse_id', '!=', False), ('color', '!=', False)], ['color'], order='color') + #don't use sets to preserve the list order + for x in all_used_colors: + if x['color'] in available_colors: + available_colors.remove(x['color']) + if available_colors: + color = available_colors[0] in_type_id = picking_type_obj.create(cr, uid, vals={ 'name': _('Receptions'), -- 1.7.10.4