From d4e5cde1760fa34de3de6a543383692a1df902af Mon Sep 17 00:00:00 2001 From: Bertrand Chenal Date: Mon, 6 Oct 2008 14:03:53 +0200 Subject: [PATCH] Added state on purchase request --- purchase_request.py | 23 +++++++++++++++++++++++ purchase_request.xml | 11 ++++++----- 2 files changed, 29 insertions(+), 5 deletions(-) diff --git a/purchase_request.py b/purchase_request.py index 742efb1fd0..3aada6d293 100644 --- a/purchase_request.py +++ b/purchase_request.py @@ -27,6 +27,17 @@ class PurchaseRequest(OSV): 'purchase.line', 'Purchase Line',readonly=True) company = fields.Many2One( 'company.company', 'Company', required=True, readonly=True) + state = fields.Function( + 'get_state', type='selection', + selection=[("running", "Running"), + ("done", "Done"), + ("draft", "Draft"), + ("cancel", "Cancel")], + string="State", readonly=True) + + def __init__(self): + super(PurchaseRequest, self).__init__() + self._order[0] = ('id', 'DESC') def default_company(self, cursor, user, context=None): company_obj = self.pool.get('company.company') @@ -37,6 +48,18 @@ class PurchaseRequest(OSV): context=context)[0] return False + def get_state(self, cursor, user, ids, name, args, context=None): + res = {}.fromkeys(ids, 'draft') + for request in self.browse(cursor, user, ids, context=context): + if request.purchase_line: + if request.purchase_line.purchase.state == 'cancel': + res[request.id] = 'cancel' + if request.purchase_line.purchase.state == 'done': + res[request.id] = 'done' + else: + res[request.id] = 'running' + return res + def generate_requests(self, cursor, user, context=None): """ For each product compute the purchase request that must be diff --git a/purchase_request.xml b/purchase_request.xml index 8f64ffcc7a..7a50c565a7 100644 --- a/purchase_request.xml +++ b/purchase_request.xml @@ -28,6 +28,8 @@