# -*- coding: utf-8 -*- ############################################################################## # # OpenERP, Open Source Management Solution # Copyright (C) 2004-2010 Tiny SPRL (). # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as # published by the Free Software Foundation, either version 3 of the # License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # ############################################################################## import time from openerp.osv import fields, osv from openerp.tools.translate import _ class product_margin(osv.osv_memory): _name = 'product.margin' _description = 'Product Margin' _columns = { 'from_date': fields.date('From'), 'to_date': fields.date('To'), 'invoice_state': fields.selection([ ('paid', 'Paid'), ('open_paid', 'Open and Paid'), ('draft_open_paid', 'Draft, Open and Paid'), ], 'Invoice State', select=True, required=True), } _defaults = { 'from_date': time.strftime('%Y-01-01'), 'to_date': time.strftime('%Y-12-31'), 'invoice_state': "open_paid", } def action_open_window(self, cr, uid, ids, context=None): """ @param cr: the current row, from the database cursor, @param uid: the current user’s ID for security checks, @param ids: the ID or list of IDs if we want more than one @return: """ context = dict(context or {}) def ref(module, xml_id): proxy = self.pool.get('ir.model.data') return proxy.get_object_reference(cr, uid, module, xml_id) model, search_view_id = ref('product', 'product_search_form_view') model, graph_view_id = ref('product_margin', 'view_product_margin_graph') model, form_view_id = ref('product_margin', 'view_product_margin_form') model, tree_view_id = ref('product_margin', 'view_product_margin_tree') #get the current product.margin object to obtain the values from it records = self.browse(cr, uid, ids, context=context) record = records[0] context.update(invoice_state=record.invoice_state) if record.from_date: context.update(date_from=record.from_date) if record.to_date: context.update(date_to=record.to_date) views = [ (tree_view_id, 'tree'), (form_view_id, 'form'), (graph_view_id, 'graph') ] return { 'name': _('Product Margins'), 'context': context, 'view_type': 'form', "view_mode": 'tree,form,graph', 'res_model': 'product.product', 'type': 'ir.actions.act_window', 'views': views, 'view_id': False, 'search_view_id': search_view_id, } # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: