From b73e2e95ec04c772f0c304950f40f4f8ccd903c8 Mon Sep 17 00:00:00 2001 From: Gery Debongnie Date: Thu, 8 May 2014 09:27:41 +0200 Subject: [PATCH 1/3] [FIX] add missing claim_count field to stock.picking.out The claim_count field was incorrectly added into addon stock instead of addon claim_from_delivery. The commit adding the claim_count field in stock.py was reverted, but claim_count is still needed in claim_delivery_view.xml. bzr revid: ged@openerp.com-20140508072741-sr3a9ishpqtkczlq --- addons/claim_from_delivery/__init__.py | 1 + addons/claim_from_delivery/stock_picking.py | 26 +++++++++++++++++++++ 2 files changed, 27 insertions(+) create mode 100644 addons/claim_from_delivery/stock_picking.py diff --git a/addons/claim_from_delivery/__init__.py b/addons/claim_from_delivery/__init__.py index 5e947ee409d..c21aa0d3c3a 100644 --- a/addons/claim_from_delivery/__init__.py +++ b/addons/claim_from_delivery/__init__.py @@ -18,6 +18,7 @@ # ############################################################################## +import stock_picking # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/claim_from_delivery/stock_picking.py b/addons/claim_from_delivery/stock_picking.py new file mode 100644 index 00000000000..9c3121d067c --- /dev/null +++ b/addons/claim_from_delivery/stock_picking.py @@ -0,0 +1,26 @@ +from openerp.osv import fields, osv + + +class stock_picking(osv.osv): + _inherit = 'stock.picking' + + def _claim_count(self, cr, uid, ids, field_name, arg, context=None): + Claim = self.pool['crm.claim'] + return { + id: Claim.search_count(cr, uid, [('ref', '=',('stock.picking.out,' + str(ids[0])))], context=context) + for id in ids + } + + _columns = { + 'claim_count': fields.function(_claim_count, string='Claims', type='integer'), + } + +class stock_picking_out(osv.osv): + _inherit = 'stock.picking.out' + + def _claim_count(self, cr, uid, ids, field_name, arg, context=None): + return super(stock_picking_out, self)._claim_count(cr, uid, ids, field_name, arg, context=context) + + _columns = { + 'claim_count': fields.function(_claim_count, string='Claims', type='integer'), + } From 131f91db15ea658df19003a4e37fe22a8655e927 Mon Sep 17 00:00:00 2001 From: Gery Debongnie Date: Thu, 8 May 2014 09:59:57 +0200 Subject: [PATCH 2/3] [IMP] change claim_count in claim_count_out (addon claim_from_delivery) also, simplify the implementation. The empty method _claim_count in stock_picking_out is due to the weird way inheritance works in openerp, and the fact that stock.picking.out only call the method in its parent bzr revid: ged@openerp.com-20140508075957-lyqvng5i155b28cy --- addons/claim_from_delivery/claim_delivery_view.xml | 2 +- addons/claim_from_delivery/stock_picking.py | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/addons/claim_from_delivery/claim_delivery_view.xml b/addons/claim_from_delivery/claim_delivery_view.xml index 852d602c269..6f9ca5e4a66 100644 --- a/addons/claim_from_delivery/claim_delivery_view.xml +++ b/addons/claim_from_delivery/claim_delivery_view.xml @@ -18,7 +18,7 @@
diff --git a/addons/claim_from_delivery/stock_picking.py b/addons/claim_from_delivery/stock_picking.py index 9c3121d067c..3a3404bfa93 100644 --- a/addons/claim_from_delivery/stock_picking.py +++ b/addons/claim_from_delivery/stock_picking.py @@ -12,15 +12,15 @@ class stock_picking(osv.osv): } _columns = { - 'claim_count': fields.function(_claim_count, string='Claims', type='integer'), + 'claim_count_out': fields.function(_claim_count, string='Claims', type='integer'), } class stock_picking_out(osv.osv): _inherit = 'stock.picking.out' def _claim_count(self, cr, uid, ids, field_name, arg, context=None): - return super(stock_picking_out, self)._claim_count(cr, uid, ids, field_name, arg, context=context) + pass _columns = { - 'claim_count': fields.function(_claim_count, string='Claims', type='integer'), + 'claim_count_out': fields.function(_claim_count, string='Claims', type='integer'), } From 8e16385aec5954dcb181f85da36b0fd88d6d9438 Mon Sep 17 00:00:00 2001 From: Gery Debongnie Date: Thu, 8 May 2014 10:31:49 +0200 Subject: [PATCH 3/3] [IMP] change the method name _claim_count into _claim_count_out also, add a comment to explain why it is necessary to add a _claim_count_out method in stock_picking_out even though it will not be called. bzr revid: ged@openerp.com-20140508083149-rdophw2iihzntfpr --- addons/claim_from_delivery/stock_picking.py | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/addons/claim_from_delivery/stock_picking.py b/addons/claim_from_delivery/stock_picking.py index 3a3404bfa93..6929809bfe2 100644 --- a/addons/claim_from_delivery/stock_picking.py +++ b/addons/claim_from_delivery/stock_picking.py @@ -4,7 +4,7 @@ from openerp.osv import fields, osv class stock_picking(osv.osv): _inherit = 'stock.picking' - def _claim_count(self, cr, uid, ids, field_name, arg, context=None): + def _claim_count_out(self, cr, uid, ids, field_name, arg, context=None): Claim = self.pool['crm.claim'] return { id: Claim.search_count(cr, uid, [('ref', '=',('stock.picking.out,' + str(ids[0])))], context=context) @@ -12,15 +12,19 @@ class stock_picking(osv.osv): } _columns = { - 'claim_count_out': fields.function(_claim_count, string='Claims', type='integer'), + 'claim_count_out': fields.function(_claim_count_out, string='Claims', type='integer'), } +# Because of the way inheritance works in the ORM (bug), and the way stock.picking.out +# is defined (inherit from stock.picking, dispatch read to stock.picking), it is necessary +# to add the field claim_count_out to this class, even though the _claim_count_out method +# in stock_picking_out will not be called (but its existence will be checked). class stock_picking_out(osv.osv): _inherit = 'stock.picking.out' - def _claim_count(self, cr, uid, ids, field_name, arg, context=None): - pass + def _claim_count_out(self, cr, uid, ids, field_name, arg, context=None): + return super(stock_picking_out, self)._claim_count_out(cr, uid, ids, field_name, arg, context=context) _columns = { - 'claim_count_out': fields.function(_claim_count, string='Claims', type='integer'), + 'claim_count_out': fields.function(_claim_count_out, string='Claims', type='integer'), }