From 1d6fbfc797ec7ea4c008595657166998ffdff70b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Krier?= Date: Wed, 22 May 2013 19:18:43 +0200 Subject: [PATCH] Use root to search on period and search on closed periods products_by_location can be called by users without read access to period. And only closed period has cache. review875002 (transplanted from 09d5333339c1d345dae85e5f3180d8a240bf5848) --- product.py | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/product.py b/product.py index af809f0097..ae63abf164 100644 --- a/product.py +++ b/product.py @@ -356,16 +356,18 @@ class Product(ModelSQL, ModelView): context['stock_date_start'], today, ]) else: - period_ids = period_obj.search([ - ('date', '<', context['stock_date_end']), - ], order=[('date', 'DESC')], limit=1) - if period_ids: - period_id, = period_ids - period = period_obj.browse(period_id) - state_date_clause += (' AND ' - '(COALESCE(effective_date, planned_date) > %s)') - state_date_vals.append(period.date) - period_vals[0] = period.id + with Transaction().set_user(0, set_context=True): + period_ids = period_obj.search([ + ('date', '<', context['stock_date_end']), + ('state', '=', 'closed'), + ], order=[('date', 'DESC')], limit=1) + if period_ids: + period_id, = period_ids + period = period_obj.browse(period_id) + state_date_clause += (' AND ' + '(COALESCE(effective_date, planned_date) > %s)') + state_date_vals.append(period.date) + period_vals[0] = period.id if with_childs: query, args = location_obj.search([