From 877beb8746fc8c17420fdbb6c7ea11bfc88fafa8 Mon Sep 17 00:00:00 2001 From: Jonatan Cloutier Date: Thu, 2 May 2013 16:44:18 -0400 Subject: [PATCH] show last approved content and aproved by (../7.0pageapproval/ rev 4) --- .../document_page_approval.py | 42 +++++++++++++++++-- document_page_approval/document_page_view.xml | 13 +++++- 2 files changed, 50 insertions(+), 5 deletions(-) diff --git a/document_page_approval/document_page_approval.py b/document_page_approval/document_page_approval.py index 8b5e2d54..e1d0a702 100644 --- a/document_page_approval/document_page_approval.py +++ b/document_page_approval/document_page_approval.py @@ -19,6 +19,7 @@ # ############################################################################## from openerp.osv import fields, orm +from datetime import * class document_page_history_wkfl(orm.Model): _inherit = 'document.page.history' @@ -26,6 +27,8 @@ class document_page_history_wkfl(orm.Model): 'state': fields.selection([ ('draft','Draft'), ('approved','Approved')], 'Status', readonly=True), + 'approved_date': fields.datetime("Approved Date"), + 'approved_uid': fields.many2one('res.users', "Approved By"), } def page_approval_draft(self, cr, uid, ids): @@ -33,7 +36,10 @@ class document_page_history_wkfl(orm.Model): return True def page_approval_approved(self, cr, uid, ids): - self.write(cr, uid, ids, { 'state' : 'approved' }) + self.write(cr, uid, ids, { 'state' : 'approved', + 'approved_date' : datetime.now().strftime('%Y-%m-%d %H:%M:%S'), + 'approved_uid': uid + }) return True @@ -45,11 +51,39 @@ class document_page_approval(orm.Model): if page.type == "category": content = self._get_page_index(cr, uid, page, link=False) else: - content = page.content + history = self.pool.get('document.page.history') + history_ids = history.search(cr, uid,[('page_id', '=', page.id), ('state', '=', 'approved')], limit=1, order='create_date DESC') + for h in history.browse(cr, uid, history_ids): + content = h.content res[page.id] = content return res - + + def _get_approved_date(self, cr, uid, ids, name, args, context=None): + res = {} + for i in ids: + history = self.pool.get('document.page.history') + history_ids = history.search(cr, uid,[('page_id', '=', i), ('state', '=', 'approved')], limit=1, order='create_date DESC') + for h in history.browse(cr, uid, history_ids): + approved_date = h.approved_date + res[i] = approved_date + + return res + + def _get_approved_uid(self, cr, uid, ids, name, args, context=None): + res = {} + for i in ids: + history = self.pool.get('document.page.history') + history_ids = history.search(cr, uid,[('page_id', '=', i), ('state', '=', 'approved')], limit=1, order='create_date DESC') + for h in history.browse(cr, uid, history_ids): + approved_uid = h.approved_uid.id + res[i] = approved_uid + + return res + + _columns = { - 'display_content': fields.function(_get_display_content, string='Displayed Content', type='text') + 'display_content': fields.function(_get_display_content, string='Displayed Content', type='text'), + 'approved_date': fields.function(_get_approved_date, string="Approved Date", type='datetime'), + 'approved_uid': fields.function(_get_approved_uid, string="Approved By", type='many2one', obj='res.users'), } # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/document_page_approval/document_page_view.xml b/document_page_approval/document_page_view.xml index 7f35674f..c1676534 100644 --- a/document_page_approval/document_page_view.xml +++ b/document_page_approval/document_page_view.xml @@ -1,7 +1,6 @@ - document.page.history.form document.page.history @@ -15,6 +14,18 @@ + + + document.page.form + document.page + + + + + + + +