diff --git a/addons/account/account.py b/addons/account/account.py index bd7db3ae571..7113b189a52 100644 --- a/addons/account/account.py +++ b/addons/account/account.py @@ -533,7 +533,7 @@ class account_move(osv.osv): 'name': fields.char('Entry Name', size=64, required=True), 'ref': fields.char('Ref', size=64), 'period_id': fields.many2one('account.period', 'Period', required=True, states={'posted':[('readonly',True)]}), - 'journal_id': fields.many2one('account.journal', 'Journal', required=True, states={'posted':[('readonly',True)]}, relate=True), + 'journal_id': fields.many2one('account.journal', 'Journal', required=True, states={'posted':[('readonly',True)]}), 'state': fields.selection([('draft','Draft'), ('posted','Posted')], 'State', required=True, readonly=True), 'line_id': fields.one2many('account.move.line', 'move_id', 'Entries', states={'posted':[('readonly',True)]}), } diff --git a/addons/account/account_analytic_line.py b/addons/account/account_analytic_line.py index a067a1e3090..14e10548999 100644 --- a/addons/account/account_analytic_line.py +++ b/addons/account/account_analytic_line.py @@ -89,7 +89,7 @@ class timesheet_invoice(osv.osv): _auto = False _columns = { 'name': fields.date('Month', readonly=True), - 'account_id':fields.many2one('account.analytic.account', 'Analytic Account', readonly=True, relate=True, select=True), + 'account_id':fields.many2one('account.analytic.account', 'Analytic Account', readonly=True, select=True), 'journal_id': fields.many2one('account.analytic.journal', 'Journal', readonly=True), 'quantity': fields.float('Quantities', readonly=True), 'cost': fields.float('Credit', readonly=True), diff --git a/addons/account/account_bank_statement.py b/addons/account/account_bank_statement.py index 51ecda00ba4..7b32fbfa987 100644 --- a/addons/account/account_bank_statement.py +++ b/addons/account/account_bank_statement.py @@ -76,7 +76,7 @@ class account_bank_statement(osv.osv): _columns = { 'name': fields.char('Name', size=64, required=True), 'date': fields.date('Date', required=True, states={'confirm':[('readonly',True)]}), - 'journal_id': fields.many2one('account.journal', 'Journal', required=True, states={'confirm':[('readonly',True)]}, domain=[('type','=','cash')], relate=True), + 'journal_id': fields.many2one('account.journal', 'Journal', required=True, states={'confirm':[('readonly',True)]}, domain=[('type','=','cash')]), 'period_id': fields.many2one('account.period', 'Period', required=True, states={'confirm':[('readonly',True)]}), 'balance_start': fields.float('Starting Balance', digits=(16,2), states={'confirm':[('readonly',True)]}), 'balance_end_real': fields.float('Ending Balance', digits=(16,2), states={'confirm':[('readonly',True)]}), diff --git a/addons/account/account_invoice_view.xml b/addons/account/account_invoice_view.xml index 17875fef543..ed4b80f7db6 100644 --- a/addons/account/account_invoice_view.xml +++ b/addons/account/account_invoice_view.xml @@ -525,5 +525,23 @@ + + + + + + diff --git a/addons/account/account_move_line.py b/addons/account/account_move_line.py index 0f75f2203aa..5c5a7f422f9 100644 --- a/addons/account/account_move_line.py +++ b/addons/account/account_move_line.py @@ -171,7 +171,7 @@ class account_move_line(osv.osv): 'currency_id': fields.many2one('res.currency', 'Currency', help="The optionnal other currency if it is a multi-currency entry."), 'period_id': fields.many2one('account.period', 'Period', required=True), - 'journal_id': fields.many2one('account.journal', 'Journal', required=True, relate=True), + 'journal_id': fields.many2one('account.journal', 'Journal', required=True), 'blocked': fields.boolean('Litigation', help="You can check this box to mark the entry line as a litigation with the associated partner"), 'partner_id': fields.many2one('res.partner', 'Partner Ref.', states={'reconciled':[('readonly',True)]}), diff --git a/addons/account/account_view.xml b/addons/account/account_view.xml index 58e7b9b2f94..39b4e536bd2 100644 --- a/addons/account/account_view.xml +++ b/addons/account/account_view.xml @@ -1419,5 +1419,23 @@ + + + + + + diff --git a/addons/account/invoice.py b/addons/account/invoice.py index 4baad2459f6..7c9354e2611 100644 --- a/addons/account/invoice.py +++ b/addons/account/invoice.py @@ -117,7 +117,7 @@ class account_invoice(osv.osv): 'date_invoice': fields.date('Date Invoiced', required=True, states={'open':[('readonly',True)],'close':[('readonly',True)]}), 'date_due': fields.date('Due Date', states={'open':[('readonly',True)],'close':[('readonly',True)]}), - 'partner_id': fields.many2one('res.partner', 'Partner', change_default=True, readonly=True, required=True, states={'draft':[('readonly',False)]}, relate=True), + 'partner_id': fields.many2one('res.partner', 'Partner', change_default=True, readonly=True, required=True, states={'draft':[('readonly',False)]}), 'partner_bank_id': fields.many2one('res.partner.bank', 'Partner bank'), 'address_contact_id': fields.many2one('res.partner.address', 'Contact Address', readonly=True, states={'draft':[('readonly',False)]}), 'address_invoice_id': fields.many2one('res.partner.address', 'Invoice Address', readonly=True, required=True, states={'draft':[('readonly',False)]}), @@ -135,7 +135,7 @@ class account_invoice(osv.osv): 'amount_tax': fields.function(_amount_tax, method=True, string='Tax', store=True), 'amount_total': fields.function(_amount_total, method=True, string='Total', store=True), 'currency_id': fields.many2one('res.currency', 'Currency', required=True, readonly=True, states={'draft':[('readonly',False)]}), - 'journal_id': fields.many2one('account.journal', 'Journal', required=True, relate=True,readonly=True, states={'draft':[('readonly',False)]}), + 'journal_id': fields.many2one('account.journal', 'Journal', required=True,readonly=True, states={'draft':[('readonly',False)]}), 'company_id': fields.many2one('res.company', 'Company', required=True), 'check_total': fields.float('Total', digits=(16,2)), } @@ -620,7 +620,7 @@ class account_invoice_line(osv.osv): 'discount': fields.float('Discount (%)', digits=(16,2)), 'invoice_line_tax_id': fields.many2many('account.tax', 'account_invoice_line_tax', 'invoice_line_id', 'tax_id', 'Taxes', domain=[('parent_id','=',False)]), 'note': fields.text('Notes'), - 'account_analytic_id': fields.many2one('account.analytic.account', 'Analytic Account', relate=True), + 'account_analytic_id': fields.many2one('account.analytic.account', 'Analytic Account'), } _defaults = { 'quantity': lambda *a: 1, diff --git a/addons/account/project/project_view.xml b/addons/account/project/project_view.xml index be5651456af..b864a8dd250 100644 --- a/addons/account/project/project_view.xml +++ b/addons/account/project/project_view.xml @@ -374,5 +374,11 @@ + + diff --git a/addons/airport/custom.py b/addons/airport/custom.py index 8b6ba89c8fc..57dde589b1c 100644 --- a/addons/airport/custom.py +++ b/addons/airport/custom.py @@ -16,7 +16,7 @@ class airport_flight(osv.osv): _table = 'product_product' _columns = { 'date': fields.datetime('Departure Date'), - 'partner_id': fields.many2one('res.partner', 'Customer', relate=True), + 'partner_id': fields.many2one('res.partner', 'Customer'), 'airport_from': fields.many2one('airport.airport', 'Airport Departure'), 'airport_to': fields.many2one('airport.airport', 'Airport Arrival'), } diff --git a/addons/crm/crm.py b/addons/crm/crm.py index bfd353f90ac..56f429238e4 100644 --- a/addons/crm/crm.py +++ b/addons/crm/crm.py @@ -231,22 +231,22 @@ class crm_case(osv.osv): 'active': fields.boolean('Active'), 'description': fields.text('Description'), 'section_id': fields.many2one('crm.case.section', 'Case Section', required=True, select=True), - 'categ_id': fields.many2one('crm.case.categ', 'Category', domain="[('section_id','=',section_id)]", relate=True), + 'categ_id': fields.many2one('crm.case.categ', 'Category', domain="[('section_id','=',section_id)]"), 'planned_revenue': fields.float('Planned Revenue'), 'planned_cost': fields.float('Planned Costs'), 'probability': fields.float('Probability (0.50)'), 'email_from': fields.char('Partner Email', size=128), 'email_cc': fields.char('Watchers Emails', size=252), 'email_last': fields.text('Latest E-Mail'), - 'partner_id': fields.many2one('res.partner', 'Partner', relate=True), + 'partner_id': fields.many2one('res.partner', 'Partner'), 'partner_address_id': fields.many2one('res.partner.address', 'Partner Contact', domain="[('partner_id','=',partner_id)]"), 'som': fields.many2one('res.partner.som', 'State of Mind'), 'date': fields.datetime('Date'), 'create_date': fields.datetime('Date Created'), 'date_deadline': fields.date('Date Deadline'), 'date_closed': fields.datetime('Date Closed', readonly=True), - 'canal_id': fields.many2one('res.partner.canal', 'Channel', relate=True), - 'user_id': fields.many2one('res.users', 'User Responsible', relate=True), + 'canal_id': fields.many2one('res.partner.canal', 'Channel'), + 'user_id': fields.many2one('res.users', 'User Responsible'), 'history_line': fields.one2many('crm.case.history', 'case_id', 'Case History'), 'state': fields.selection(AVAILABLE_STATES, 'State', size=16, readonly=True), 'ref' : fields.reference('Reference', selection=_links_get, size=128), diff --git a/addons/crm/crm_view.xml b/addons/crm/crm_view.xml index d244dc64292..38a4b9a46a7 100644 --- a/addons/crm/crm_view.xml +++ b/addons/crm/crm_view.xml @@ -467,6 +467,46 @@ + + + + + + + + + + diff --git a/addons/hr_contract_available/hr_contract_available.py b/addons/hr_contract_available/hr_contract_available.py index d8e9ec9c16b..42e9ffd8304 100644 --- a/addons/hr_contract_available/hr_contract_available.py +++ b/addons/hr_contract_available/hr_contract_available.py @@ -76,8 +76,8 @@ class hr_allocation(osv.osv): _description = 'Allocations' _columns = { 'name' : fields.char('Allocation Name', size=30, required=True), - 'employee_id' : fields.many2one('hr.employee', 'Employee', required=True, relate=True), - 'department_id' : fields.many2one('res.company', 'Department', required=True, relate=True), + 'employee_id' : fields.many2one('hr.employee', 'Employee', required=True), + 'department_id' : fields.many2one('res.company', 'Department', required=True), 'function' : fields.many2one('res.partner.function', 'Function'), 'date_start' : fields.date('Start Date', required=True), 'date_end' : fields.date('End Date', help="Keep empty for unlimited allocation."), diff --git a/addons/hr_contract_available/hr_contract_available_view.xml b/addons/hr_contract_available/hr_contract_available_view.xml index a49ec6c1355..560ec2e00bd 100644 --- a/addons/hr_contract_available/hr_contract_available_view.xml +++ b/addons/hr_contract_available/hr_contract_available_view.xml @@ -49,6 +49,18 @@ + + + + diff --git a/addons/hr_skill/hr_skill.py b/addons/hr_skill/hr_skill.py index 5665c1a6769..0dcfabffd92 100644 --- a/addons/hr_skill/hr_skill.py +++ b/addons/hr_skill/hr_skill.py @@ -52,7 +52,7 @@ class hr_skill_weight(osv.osv): _columns = { 'name': fields.char('Name', size=64,required=True), 'value': fields.float('Numerical value', required=True), - 'category_id': fields.many2one('hr_skill.weight.category', 'Category', required=True, ondelete='cascade', relate=True), # relate -> click droit dispo + 'category_id': fields.many2one('hr_skill.weight.category', 'Category', required=True, ondelete='cascade'), }# hr_skill.category ne passe pas (cad creation des tables) la premiere fois (hr_skill_category bien) hr_skill_weight() diff --git a/addons/hr_skill/hr_skill_view.xml b/addons/hr_skill/hr_skill_view.xml index af45bf22543..ef4f2d823d6 100644 --- a/addons/hr_skill/hr_skill_view.xml +++ b/addons/hr_skill/hr_skill_view.xml @@ -308,8 +308,11 @@ - - + diff --git a/addons/hr_timesheet_invoice/hr_timesheet_invoice_view.xml b/addons/hr_timesheet_invoice/hr_timesheet_invoice_view.xml index 65c5023e04e..321e0b941d1 100644 --- a/addons/hr_timesheet_invoice/hr_timesheet_invoice_view.xml +++ b/addons/hr_timesheet_invoice/hr_timesheet_invoice_view.xml @@ -133,6 +133,5 @@ id="hr_timesheet_invoice_factor_view" action="action_hr_timesheet_invoice_factor_form" /> - diff --git a/addons/hr_timesheet_invoice/report/account_analytic_to_invoice.py b/addons/hr_timesheet_invoice/report/account_analytic_to_invoice.py deleted file mode 100644 index 73a432da824..00000000000 --- a/addons/hr_timesheet_invoice/report/account_analytic_to_invoice.py +++ /dev/null @@ -1,106 +0,0 @@ -############################################################################## -# -# Copyright (c) 2004-2006 TINY SPRL. (http://tiny.be) All Rights Reserved. -# -# $Id: project.py 1005 2005-07-25 08:41:42Z nicoe $ -# -# WARNING: This program as such is intended to be used by professional -# programmers who take the whole responsability of assessing all potential -# consequences resulting from its eventual inadequacies and bugs -# End users who are looking for a ready-to-use solution with commercial -# garantees and support are strongly adviced to contract a Free Software -# Service Company -# -# This program is Free Software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License -# as published by the Free Software Foundation; either version 2 -# 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 General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -# -############################################################################## - -from osv import fields,osv - -class account_analytic_to_invoice(osv.osv): - _name = "account" - _description = "Cases by user and section" - _auto = False - _columns = { - 'name': fields.date('Month', readonly=True), - 'user_id':fields.many2one('res.users', 'User', readonly=True, relate=True), - 'section_id':fields.many2one('crm.case.section', 'Section', readonly=True, relate=True), - 'amount_revenue': fields.float('Est.Revenue', readonly=True), - 'amount_costs': fields.float('Est.Cost', readonly=True), - 'amount_revenue_prob': fields.float('Est. Rev*Prob.', readonly=True), - 'nbr': fields.integer('# of Cases', readonly=True), - 'probability': fields.float('Avg. Probability', readonly=True), - 'state': fields.selection(AVAILABLE_STATES, 'State', size=16, readonly=True), - 'delay_close': fields.integer('Delay to close', readonly=True), - } - _order = 'name desc, user_id, section_id' - def init(self, cr): - cr.execute(""" - create or replace view report_crm_case_user as ( - select - min(c.id) as id, - substring(c.create_date for 7)||'-01' as name, - c.state, - c.user_id, - c.section_id, - count(*) as nbr, - sum(planned_revenue) as amount_revenue, - sum(planned_cost) as amount_costs, - sum(planned_revenue*probability)::decimal(16,2) as amount_revenue_prob, - avg(probability)::decimal(16,2) as probability, - to_char(avg(date_closed-c.create_date), 'DD"d" HH12:MI:SS') as delay_close - from - crm_case c - group by substring(c.create_date for 7), c.state, c.user_id, c.section_id - )""") -report_crm_case_user() - -class report_crm_case_categ(osv.osv): - _name = "report.crm.case.categ" - _description = "Cases by section and category" - _auto = False - _columns = { - 'name': fields.date('Month', readonly=True), - 'categ_id':fields.many2one('crm.case.categ', 'Category', readonly=True, relate=True), - 'section_id':fields.many2one('crm.case.section', 'Section', readonly=True, relate=True), - 'amount_revenue': fields.float('Est.Revenue', readonly=True), - 'amount_costs': fields.float('Est.Cost', readonly=True), - 'amount_revenue_prob': fields.float('Est. Rev*Prob.', readonly=True), - 'nbr': fields.integer('# of Cases', readonly=True), - 'probability': fields.float('Avg. Probability', readonly=True), - 'state': fields.selection(AVAILABLE_STATES, 'State', size=16, readonly=True), - 'delay_close': fields.integer('Delay Close', readonly=True), - } - _order = 'name desc, categ_id, section_id' - def init(self, cr): - cr.execute(""" - create or replace view report_crm_case_categ as ( - select - min(c.id) as id, - substring(c.create_date for 7)||'-01' as name, - c.state, - c.categ_id, - c.section_id, - count(*) as nbr, - sum(planned_revenue) as amount_revenue, - sum(planned_cost) as amount_costs, - sum(planned_revenue*probability)::decimal(16,2) as amount_revenue_prob, - avg(probability)::decimal(16,2) as probability, - to_char(avg(date_closed-c.create_date), 'DD"d" HH12:MI:SS') as delay_close - from - crm_case c - group by substring(c.create_date for 7), c.state, c.categ_id, c.section_id - )""") -report_crm_case_categ() diff --git a/addons/hr_timesheet_sheet/hr_timesheet_sheet.py b/addons/hr_timesheet_sheet/hr_timesheet_sheet.py index 0c6677de208..fcd32438f0e 100644 --- a/addons/hr_timesheet_sheet/hr_timesheet_sheet.py +++ b/addons/hr_timesheet_sheet/hr_timesheet_sheet.py @@ -297,7 +297,7 @@ class hr_timesheet_line(osv.osv): return True _columns = { - 'sheet_id': fields.many2one('hr_timesheet_sheet.sheet', 'Sheet', ondelete='set null', required=True, relate=True) + 'sheet_id': fields.many2one('hr_timesheet_sheet.sheet', 'Sheet', ondelete='set null', required=True) } _defaults = { 'sheet_id': _get_current_sheet, @@ -341,7 +341,7 @@ class hr_attendance(osv.osv): return True _columns = { - 'sheet_id': fields.many2one('hr_timesheet_sheet.sheet', 'Sheet', ondelete='set null', required=True, relate=True) + 'sheet_id': fields.many2one('hr_timesheet_sheet.sheet', 'Sheet', ondelete='set null', required=True) } _defaults = { 'sheet_id': _get_current_sheet, @@ -442,7 +442,7 @@ class hr_timesheet_sheet_sheet_account(osv.osv): _order='name' _columns = { 'name': fields.many2one('account.analytic.account', 'Analytic Account', readonly=True), - 'sheet_id': fields.many2one('hr_timesheet_sheet.sheet', 'Sheet', readonly=True, relate=True), + 'sheet_id': fields.many2one('hr_timesheet_sheet.sheet', 'Sheet', readonly=True), 'total': fields.float('Total Time', digits=(16,2), readonly=True), 'invoice_rate': fields.many2one('hr_timesheet_invoice.factor', 'Invoice rate', readonly=True), } diff --git a/addons/hr_timesheet_sheet/hr_timesheet_sheet_view.xml b/addons/hr_timesheet_sheet/hr_timesheet_sheet_view.xml index 6d4fea61381..657273eec38 100644 --- a/addons/hr_timesheet_sheet/hr_timesheet_sheet_view.xml +++ b/addons/hr_timesheet_sheet/hr_timesheet_sheet_view.xml @@ -264,5 +264,17 @@ + + + + diff --git a/addons/mrp/mrp.py b/addons/mrp/mrp.py index 8021ceff177..5c1ff04070a 100644 --- a/addons/mrp/mrp.py +++ b/addons/mrp/mrp.py @@ -903,8 +903,8 @@ class stock_warehouse_orderpoint(osv.osv): 'name': fields.char('Name', size=32, required=True), 'active': fields.boolean('Active'), 'logic': fields.selection([('max','Order to Max'),('price','Best price (not yet active!)')], 'Reordering Mode', required=True), - 'warehouse_id': fields.many2one('stock.warehouse', 'Warehouse', required=True, relate=True), - 'product_id': fields.many2one('product.product', 'Product', required=True, domain=[('type','=','product')], relate=True), + 'warehouse_id': fields.many2one('stock.warehouse', 'Warehouse', required=True), + 'product_id': fields.many2one('product.product', 'Product', required=True, domain=[('type','=','product')]), 'product_uom': fields.many2one('product.uom', 'Product UOM', required=True ), 'product_min_qty': fields.float('Min Quantity', required=True), 'product_max_qty': fields.float('Max Quantity', required=True), diff --git a/addons/mrp/mrp_view.xml b/addons/mrp/mrp_view.xml index aec206b2c08..8633e1a0390 100644 --- a/addons/mrp/mrp_view.xml +++ b/addons/mrp/mrp_view.xml @@ -669,6 +669,16 @@ + + diff --git a/addons/product/pricelist.py b/addons/product/pricelist.py index 07ba3ea3f94..9fb928a2bdf 100644 --- a/addons/product/pricelist.py +++ b/addons/product/pricelist.py @@ -185,7 +185,7 @@ class product_pricelist_version(osv.osv): _name = "product.pricelist.version" _description = "Pricelist Version" _columns = { - 'pricelist_id': fields.many2one('product.pricelist', 'Price List', required=True, select=True, relate=True), + 'pricelist_id': fields.many2one('product.pricelist', 'Price List', required=True, select=True), 'name': fields.char('Name', size=64, required=True), 'active': fields.boolean('Active'), 'items_id': fields.one2many('product.pricelist.item', 'price_version_id', 'Price List Items', required=True), diff --git a/addons/product/pricelist_view.xml b/addons/product/pricelist_view.xml index b33823ba80e..a4797a2e0ff 100644 --- a/addons/product/pricelist_view.xml +++ b/addons/product/pricelist_view.xml @@ -20,7 +20,6 @@ - product.pricelist.version.form ir.actions.act_window product.pricelist.version form @@ -106,7 +105,6 @@ - product.pricelist.form ir.actions.act_window product.pricelist form @@ -128,7 +126,6 @@ - product.price.type.form ir.actions.act_window product.price.type form @@ -148,7 +145,6 @@ - product.pricelist.type.form ir.actions.act_window product.pricelist.type form @@ -156,5 +152,11 @@ + + diff --git a/addons/project/project.py b/addons/project/project.py index 8ec5e456328..d62bce846b2 100644 --- a/addons/project/project.py +++ b/addons/project/project.py @@ -87,7 +87,7 @@ class project(osv.osv): 'active': fields.boolean('Active'), 'category_id': fields.many2one('account.analytic.account','Analytic Account'), 'priority': fields.integer('Priority'), - 'manager': fields.many2one('res.users', 'Project manager', relate=True), + 'manager': fields.many2one('res.users', 'Project manager'), 'warn_manager': fields.boolean('Warn manager'), 'members': fields.many2many('res.users', 'project_user_rel', 'project_id', 'uid', 'Project members'), 'tasks': fields.one2many('project.task', 'project_id', "Project tasks"), @@ -178,7 +178,7 @@ class task(osv.osv): 'date_start': fields.datetime('Date Start',readonly=True), 'date_deadline': fields.datetime('Deadline'), 'date_close': fields.datetime('Date Closed', readonly=True), - 'project_id': fields.many2one('project.project', 'Project', ondelete='cascade', relate=True), + 'project_id': fields.many2one('project.project', 'Project', ondelete='cascade'), 'notes': fields.text('Notes'), 'start_sequence': fields.boolean('Wait for previous sequences'), 'planned_hours': fields.float('Planned hours'), @@ -186,7 +186,7 @@ class task(osv.osv): 'progress': fields.integer('Progress (0-100)'), 'billable': fields.boolean('To be invoiced'), 'invoice_id': fields.many2one('account.invoice','Generated Invoice'), - 'user_id': fields.many2one('res.users', 'Assigned to', relate=True), + 'user_id': fields.many2one('res.users', 'Assigned to'), 'partner_id': fields.many2one('res.partner', 'Customer'), 'work_ids': fields.one2many('project.task.work', 'task_id', 'Work done'), 'procurement_id': fields.many2one('mrp.procurement', 'Procurement', ondelete='set null') @@ -289,7 +289,7 @@ class project_work(osv.osv): 'date': fields.datetime('Date'), 'task_id': fields.many2one('project.task', 'Task', ondelete='cascade'), 'hours': fields.float('Hours spent'), - 'user_id': fields.many2one('res.users', 'Done by', required=True, relate=True), + 'user_id': fields.many2one('res.users', 'Done by', required=True), } _defaults = { 'user_id': lambda obj,cr,uid,context: uid, diff --git a/addons/project/project_view.xml b/addons/project/project_view.xml index efd0f91bc8f..a61a1f3238f 100644 --- a/addons/project/project_view.xml +++ b/addons/project/project_view.xml @@ -388,5 +388,38 @@ + + + + + + + + + diff --git a/addons/purchase/purchase.py b/addons/purchase/purchase.py index 9524abf06f7..3a9c9f091f8 100644 --- a/addons/purchase/purchase.py +++ b/addons/purchase/purchase.py @@ -88,11 +88,11 @@ class purchase_order(osv.osv): 'partner_ref': fields.char('Partner Reference', size=64), 'date_order':fields.date('Date Ordered', required=True, states={'confirmed':[('readonly',True)], 'approved':[('readonly',True)]}), 'date_approve':fields.date('Date Approved'), - 'partner_id':fields.many2one('res.partner', 'Partner', required=True, states={'confirmed':[('readonly',True)], 'approved':[('readonly',True)]}, change_default=True, relate=True), + 'partner_id':fields.many2one('res.partner', 'Partner', required=True, states={'confirmed':[('readonly',True)], 'approved':[('readonly',True)]}, change_default=True), 'partner_address_id':fields.many2one('res.partner.address', 'Address', required=True, states={'posted':[('readonly',True)]}), 'dest_address_id':fields.many2one('res.partner.address', 'Destination Address', states={'posted':[('readonly',True)]}), - 'warehouse_id': fields.many2one('stock.warehouse', 'Warehouse', states={'posted':[('readonly',True)]}, relate=True), + 'warehouse_id': fields.many2one('stock.warehouse', 'Warehouse', states={'posted':[('readonly',True)]}), 'location_id': fields.many2one('stock.location', 'Delivery destination', required=True), 'pricelist_id':fields.many2one('product.pricelist', 'Pricelist', required=True, states={'confirmed':[('readonly',True)], 'approved':[('readonly',True)]}), @@ -299,7 +299,7 @@ class purchase_order_line(osv.osv): 'date_planned': fields.date('Date Promised', required=True), 'taxes_id': fields.many2many('account.tax', 'purchase_order_taxe', 'ord_id', 'tax_id', 'Taxes'), 'product_uom': fields.many2one('product.uom', 'Product UOM', required=True), - 'product_id': fields.many2one('product.product', 'Product', domain=[('purchase_ok','=',True)], change_default=True, relate=True), + 'product_id': fields.many2one('product.product', 'Product', domain=[('purchase_ok','=',True)], change_default=True), 'move_id': fields.many2one('stock.move', 'Reservation', ondelete='set null'), 'move_dest_id': fields.many2one('stock.move', 'Reservation Destination', ondelete='set null'), 'price_unit': fields.float('Unit Price', required=True, digits=(16, int(config['price_accuracy']))), diff --git a/addons/purchase/purchase_view.xml b/addons/purchase/purchase_view.xml index 8ed50aaf337..0b17d14aaf8 100644 --- a/addons/purchase/purchase_view.xml +++ b/addons/purchase/purchase_view.xml @@ -161,5 +161,11 @@ + + diff --git a/addons/purchase/stock.py b/addons/purchase/stock.py index a0e616e6e6a..bdd3dca2472 100644 --- a/addons/purchase/stock.py +++ b/addons/purchase/stock.py @@ -44,7 +44,7 @@ stock_move() class stock_picking(osv.osv): _inherit = 'stock.picking' _columns = { - 'purchase_id': fields.many2one('purchase.order', 'Purchase Order', ondelete='set null', relate=True, select=True), + 'purchase_id': fields.many2one('purchase.order', 'Purchase Order', ondelete='set null', select=True), } _defaults = { 'purchase_id': lambda *a: False diff --git a/addons/purchase/stock_view.xml b/addons/purchase/stock_view.xml index f633b2b994b..382966f9fbb 100644 --- a/addons/purchase/stock_view.xml +++ b/addons/purchase/stock_view.xml @@ -13,5 +13,11 @@ + + diff --git a/addons/purchase_journal/purchase_journal_inherit.py b/addons/purchase_journal/purchase_journal_inherit.py index 788faff5233..80a1717cb46 100644 --- a/addons/purchase_journal/purchase_journal_inherit.py +++ b/addons/purchase_journal/purchase_journal_inherit.py @@ -32,7 +32,7 @@ from osv import osv, fields class purchase(osv.osv): _inherit="purchase.order" _columns = { - 'journal_id': fields.many2one('purchase_journal.purchase.journal', 'Journal', relate=True), + 'journal_id': fields.many2one('purchase_journal.purchase.journal', 'Journal'), } def action_picking_create(self, cr, uid, ids, *args): result = super(purchase, self).action_picking_create(cr, uid, ids, *args) @@ -47,6 +47,6 @@ purchase() class picking(osv.osv): _inherit="stock.picking" _columns = { - 'purchase_journal_id': fields.many2one('purchase_journal.purchase.journal', 'Purchase Journal', select=True, relate=True), + 'purchase_journal_id': fields.many2one('purchase_journal.purchase.journal', 'Purchase Journal', select=True), } picking() diff --git a/addons/purchase_journal/purchase_journal_report.py b/addons/purchase_journal/purchase_journal_report.py index ead3cb50081..501d7abc708 100644 --- a/addons/purchase_journal/purchase_journal_report.py +++ b/addons/purchase_journal/purchase_journal_report.py @@ -31,7 +31,7 @@ from osv import fields,osv class report_purchase_journal_purchase(osv.osv): _name = "purchase_journal.purchase.stats" - _description = "purchases Orders by Journal" + _description = "Purchases Orders by Journal" _auto = False _columns = { 'name': fields.date('Month', readonly=True), @@ -44,7 +44,7 @@ class report_purchase_journal_purchase(osv.osv): ('except_invoice', 'Invoice Exception'), ('done', 'Done'), ('cancel', 'Cancelled')], 'Order State', readonly=True, select=True), - 'journal_id':fields.many2one('purchase_journal.purchase.journal', 'Journal', readonly=True, relate=True), + 'journal_id':fields.many2one('purchase_journal.purchase.journal', 'Journal', readonly=True), 'quantity': fields.float('Quantities', readonly=True), 'price_total': fields.float('Total Price', readonly=True), 'price_average': fields.float('Average Price', readonly=True), diff --git a/addons/purchase_journal/purchase_journal_view.xml b/addons/purchase_journal/purchase_journal_view.xml index b3bed7e6bf9..5c83f132583 100644 --- a/addons/purchase_journal/purchase_journal_view.xml +++ b/addons/purchase_journal/purchase_journal_view.xml @@ -209,7 +209,34 @@ action="action_purchase_purchase_stats_open_menu_all" id="menu_purchase_purchase_stats_open_all"/> + + + + + + + diff --git a/addons/report_analytic_line/report_analytic_line.py b/addons/report_analytic_line/report_analytic_line.py index 6cc1232a431..d13665d269b 100644 --- a/addons/report_analytic_line/report_analytic_line.py +++ b/addons/report_analytic_line/report_analytic_line.py @@ -35,8 +35,8 @@ class report_account_analytic_line_to_invoice(osv.osv): _auto = False _columns = { 'name': fields.date('Month', readonly=True), - 'product_id':fields.many2one('product.product', 'Product', readonly=True, relate=True), - 'account_id':fields.many2one('account.analytic.account', 'Analytic account', readonly=True, relate=True), + 'product_id':fields.many2one('product.product', 'Product', readonly=True), + 'account_id':fields.many2one('account.analytic.account', 'Analytic account', readonly=True), 'product_uom_id':fields.many2one('product.uom', 'UoM', readonly=True), 'unit_amount': fields.float('Units', readonly=True), 'sale_price': fields.float('Sale price', readonly=True), diff --git a/addons/report_analytic_line/report_analytic_line_view.xml b/addons/report_analytic_line/report_analytic_line_view.xml index ade7ad8aa9b..dbd2c87d80f 100644 --- a/addons/report_analytic_line/report_analytic_line_view.xml +++ b/addons/report_analytic_line/report_analytic_line_view.xml @@ -58,5 +58,16 @@ + + + diff --git a/addons/report_crm/report_crm.py b/addons/report_crm/report_crm.py index 4c7f81b6bf4..bd8ed828091 100644 --- a/addons/report_crm/report_crm.py +++ b/addons/report_crm/report_crm.py @@ -43,8 +43,8 @@ class report_crm_case_user(osv.osv): _auto = False _columns = { 'name': fields.date('Month', readonly=True), - 'user_id':fields.many2one('res.users', 'User', readonly=True, relate=True), - 'section_id':fields.many2one('crm.case.section', 'Section', readonly=True, relate=True), + 'user_id':fields.many2one('res.users', 'User', readonly=True), + 'section_id':fields.many2one('crm.case.section', 'Section', readonly=True), 'amount_revenue': fields.float('Est.Revenue', readonly=True), 'amount_costs': fields.float('Est.Cost', readonly=True), 'amount_revenue_prob': fields.float('Est. Rev*Prob.', readonly=True), @@ -81,8 +81,8 @@ class report_crm_case_categ(osv.osv): _auto = False _columns = { 'name': fields.date('Month', readonly=True), - 'categ_id':fields.many2one('crm.case.categ', 'Category', readonly=True, relate=True), - 'section_id':fields.many2one('crm.case.section', 'Section', readonly=True, relate=True), + 'categ_id':fields.many2one('crm.case.categ', 'Category', readonly=True), + 'section_id':fields.many2one('crm.case.section', 'Section', readonly=True), 'amount_revenue': fields.float('Est.Revenue', readonly=True), 'amount_costs': fields.float('Est.Cost', readonly=True), 'amount_revenue_prob': fields.float('Est. Rev*Prob.', readonly=True), diff --git a/addons/report_crm/report_crm_view.xml b/addons/report_crm/report_crm_view.xml index 175051bc5e3..0617ede0891 100644 --- a/addons/report_crm/report_crm_view.xml +++ b/addons/report_crm/report_crm_view.xml @@ -140,7 +140,29 @@ + + + + + + diff --git a/addons/report_project/report_project.py b/addons/report_project/report_project.py index 51286cdb814..90819c09cf2 100644 --- a/addons/report_project/report_project.py +++ b/addons/report_project/report_project.py @@ -35,8 +35,8 @@ class report_project_task_user(osv.osv): _auto = False _columns = { 'name': fields.date('Month', readonly=True), - 'user_id':fields.many2one('res.users', 'User', readonly=True, relate=True), - 'project_id':fields.many2one('project.project', 'Project', readonly=True, relate=True), + 'user_id':fields.many2one('res.users', 'User', readonly=True), + 'project_id':fields.many2one('project.project', 'Project', readonly=True), 'hours_planned': fields.float('Planned Hours', readonly=True), 'hours_effective': fields.float('Effective Hours', readonly=True), 'hours_delay': fields.float('Avg. Plan.-Eff.', readonly=True), @@ -74,7 +74,7 @@ class report_project_task(osv.osv): _auto = False _columns = { 'name': fields.date('Month', readonly=True), - 'project_id':fields.many2one('project.project', 'Project', readonly=True, relate=True), + 'project_id':fields.many2one('project.project', 'Project', readonly=True), 'hours_planned': fields.float('Planned Hours', readonly=True), 'hours_effective': fields.float('Effective Hours', readonly=True), 'hours_delay': fields.float('Avg. Plan.-Eff.', readonly=True), diff --git a/addons/report_purchase/report_purchase.py b/addons/report_purchase/report_purchase.py index 25b732efec3..0e577588982 100644 --- a/addons/report_purchase/report_purchase.py +++ b/addons/report_purchase/report_purchase.py @@ -49,7 +49,7 @@ class report_purchase_order_product(osv.osv): ('done','Done'), ('cancel','Cancel') ], 'Order State', readonly=True), - 'product_id':fields.many2one('product.product', 'Product', readonly=True, relate=True), + 'product_id':fields.many2one('product.product', 'Product', readonly=True), 'quantity': fields.float('# of Products', readonly=True), 'price_total': fields.float('Total Price', readonly=True), 'price_average': fields.float('Average Price', readonly=True), @@ -92,7 +92,7 @@ class report_purchase_order_category(osv.osv): ('done','Done'), ('cancel','Cancel') ], 'Order State', readonly=True), - 'category_id': fields.many2one('product.category', 'Categories', readonly=True, relate=True), + 'category_id': fields.many2one('product.category', 'Categories', readonly=True), 'quantity': fields.float('# of Products', readonly=True), 'price_total': fields.float('Total Price', readonly=True), 'price_average': fields.float('Average Price', readonly=True), diff --git a/addons/report_purchase/report_purchase_view.xml b/addons/report_purchase/report_purchase_view.xml index f56a525560f..e5ecda0dfab 100644 --- a/addons/report_purchase/report_purchase_view.xml +++ b/addons/report_purchase/report_purchase_view.xml @@ -108,6 +108,17 @@ + + + diff --git a/addons/report_sale/report_sale.py b/addons/report_sale/report_sale.py index bced706b65c..05ebbfd61b8 100644 --- a/addons/report_sale/report_sale.py +++ b/addons/report_sale/report_sale.py @@ -45,7 +45,7 @@ class report_sale_order_product(osv.osv): ('done','Done'), ('cancel','Cancel') ], 'Order State', readonly=True), - 'product_id':fields.many2one('product.product', 'Product', readonly=True, relate=True), + 'product_id':fields.many2one('product.product', 'Product', readonly=True), 'quantity': fields.float('# of Products', readonly=True), 'price_total': fields.float('Total Price', readonly=True), 'price_average': fields.float('Average Price', readonly=True), @@ -97,7 +97,7 @@ class report_sale_order_category(osv.osv): ('done','Done'), ('cancel','Cancel') ], 'Order State', readonly=True), - 'category_id': fields.many2one('product.category', 'Categories', readonly=True, relate=True), + 'category_id': fields.many2one('product.category', 'Categories', readonly=True), 'quantity': fields.float('# of Products', readonly=True), 'price_total': fields.float('Total Price', readonly=True), 'price_average': fields.float('Average Price', readonly=True), diff --git a/addons/report_stock/report_stock.py b/addons/report_stock/report_stock.py index d3062548344..caf6f340768 100644 --- a/addons/report_stock/report_stock.py +++ b/addons/report_stock/report_stock.py @@ -35,9 +35,9 @@ class report_stock_prodlots(osv.osv): _auto = False _columns = { 'name': fields.float('Quantity', readonly=True), - 'location_id': fields.many2one('stock.location', 'Location', readonly=True, relate=True, select=True), - 'product_id': fields.many2one('product.product', 'Product', readonly=True, relate=True, select=True), - 'prodlot_id': fields.many2one('stock.production.lot', 'Production lot', readonly=True, relate=True, select=True), + 'location_id': fields.many2one('stock.location', 'Location', readonly=True, select=True), + 'product_id': fields.many2one('product.product', 'Product', readonly=True, select=True), + 'prodlot_id': fields.many2one('stock.production.lot', 'Production lot', readonly=True, select=True), } def init(self, cr): cr.execute(""" diff --git a/addons/report_stock/report_stock_view.xml b/addons/report_stock/report_stock_view.xml index 5ed54422a44..d0c12448ca8 100644 --- a/addons/report_stock/report_stock_view.xml +++ b/addons/report_stock/report_stock_view.xml @@ -26,5 +26,23 @@ + + + + + + diff --git a/addons/report_task/report_task.py b/addons/report_task/report_task.py index 363f892e7c7..75789daed99 100644 --- a/addons/report_task/report_task.py +++ b/addons/report_task/report_task.py @@ -34,7 +34,7 @@ class report_task_user_pipeline_open (osv.osv): _description = "Tasks by user and project" _auto = False _columns = { - 'user_id':fields.many2one('res.users', 'User', readonly=True, relate=True), + 'user_id':fields.many2one('res.users', 'User', readonly=True), 'task_nbr': fields.float('Task Number', readonly=True), 'task_hrs': fields.float('Task Hours', readonly=True), 'task_progress': fields.float('Task Progress', readonly=True), diff --git a/addons/report_timesheet/report_timesheet.py b/addons/report_timesheet/report_timesheet.py index 7def167af6c..423560964ee 100644 --- a/addons/report_timesheet/report_timesheet.py +++ b/addons/report_timesheet/report_timesheet.py @@ -35,7 +35,7 @@ class report_timesheet_user(osv.osv): _auto = False _columns = { 'name': fields.date('Date', readonly=True), - 'user_id':fields.many2one('res.users', 'User', readonly=True, relate=True), + 'user_id':fields.many2one('res.users', 'User', readonly=True), 'quantity': fields.float('Quantity', readonly=True), 'cost': fields.float('Cost', readonly=True) } @@ -64,8 +64,8 @@ class report_timesheet_account(osv.osv): _auto = False _columns = { 'name': fields.date('Month', readonly=True), - 'user_id':fields.many2one('res.users', 'User', readonly=True, relate=True), - 'account_id':fields.many2one('account.analytic.account', 'Analytic Account', readonly=True, relate=True), + 'user_id':fields.many2one('res.users', 'User', readonly=True), + 'account_id':fields.many2one('account.analytic.account', 'Analytic Account', readonly=True), 'quantity': fields.float('Quantity', readonly=True), } _order = 'name desc,account_id desc,user_id desc' @@ -92,9 +92,9 @@ class report_timesheet_invoice(osv.osv): _description = "Costs to invoice" _auto = False _columns = { - 'user_id':fields.many2one('res.users', 'User', readonly=True, relate=True), - 'project_id':fields.many2one('res.users', 'Project', readonly=True, relate=True), - 'manager_id':fields.many2one('res.users', 'Manager', readonly=True, relate=True), + 'user_id':fields.many2one('res.users', 'User', readonly=True), + 'account_id':fields.many2one('account.analytic.account', 'Project', readonly=True), + 'manager_id':fields.many2one('res.users', 'Manager', readonly=True), 'quantity': fields.float('Quantity', readonly=True), 'amount_invoice': fields.float('To invoice', readonly=True) } diff --git a/addons/report_timesheet/report_timesheet_view.xml b/addons/report_timesheet/report_timesheet_view.xml index b6c721a426b..a5be73312e6 100644 --- a/addons/report_timesheet/report_timesheet_view.xml +++ b/addons/report_timesheet/report_timesheet_view.xml @@ -203,6 +203,35 @@ action="action_timesheet_account_stat_my" id="menu_report_timesheet_account_my"/> + + + + + + + + + diff --git a/addons/sale/sale.py b/addons/sale/sale.py index d0abdbd5334..91bfbcbbea5 100644 --- a/addons/sale/sale.py +++ b/addons/sale/sale.py @@ -119,8 +119,8 @@ class sale_order(osv.osv): ], 'Order State', readonly=True, help="Gives the state of the quotation or sale order. The exception state is automatically set when a cancel operation occurs in the invoice validation (Invoice Exception) or in the picking list process (Shipping Exception). The 'Waiting Schedule' state is set when the invoice is confirmed but waiting for the scheduler to be on the date 'Date Ordered'.", select=True), 'date_order':fields.date('Date Ordered', required=True, readonly=True, states={'draft':[('readonly',False)]}), - 'user_id':fields.many2one('res.users', 'Salesman', states={'draft':[('readonly',False)]}, relate=True, select=True), - 'partner_id':fields.many2one('res.partner', 'Partner', readonly=True, states={'draft':[('readonly',False)]}, change_default=True, relate=True, select=True), + 'user_id':fields.many2one('res.users', 'Salesman', states={'draft':[('readonly',False)]}, select=True), + 'partner_id':fields.many2one('res.partner', 'Partner', readonly=True, states={'draft':[('readonly',False)]}, change_default=True, select=True), 'partner_invoice_id':fields.many2one('res.partner.address', 'Invoice Address', readonly=True, required=True, states={'draft':[('readonly',False)]}), 'partner_order_id':fields.many2one('res.partner.address', 'Ordering Contact', readonly=True, required=True, states={'draft':[('readonly',False)]}, help="The name and address of the contact that requested the order or quotation."), 'partner_shipping_id':fields.many2one('res.partner.address', 'Shipping Address', readonly=True, required=True, states={'draft':[('readonly',False)]}), @@ -528,7 +528,7 @@ class sale_order_line(osv.osv): 'name': fields.char('Description', size=256, required=True, select=True), 'sequence': fields.integer('Sequence'), 'delay': fields.float('Delivery Delay', required=True), - 'product_id': fields.many2one('product.product', 'Product', domain=[('sale_ok','=',True)], change_default=True, relate=True), + 'product_id': fields.many2one('product.product', 'Product', domain=[('sale_ok','=',True)], change_default=True), 'invoice_lines': fields.many2many('account.invoice.line', 'sale_order_line_invoice_rel', 'order_line_id','invoice_id', 'Invoice Lines', readonly=True), 'invoiced': fields.boolean('Invoiced', readonly=True, select=True), 'procurement_id': fields.many2one('mrp.procurement', 'Procurement'), diff --git a/addons/sale/sale_view.xml b/addons/sale/sale_view.xml index 3b70a96ad00..75b67a114d6 100644 --- a/addons/sale/sale_view.xml +++ b/addons/sale/sale_view.xml @@ -435,7 +435,11 @@ - + diff --git a/addons/sale_journal/sale_journal.py b/addons/sale_journal/sale_journal.py index a379fa717de..dc1b1aba7aa 100644 --- a/addons/sale_journal/sale_journal.py +++ b/addons/sale_journal/sale_journal.py @@ -34,7 +34,7 @@ class sale_journal_invoice_type(osv.osv): _name = 'sale_journal.invoice.type' _description = 'Invoice Types' _columns = { - 'name': fields.char('Invoice Type', size=64, required=True, relate=True), + 'name': fields.char('Invoice Type', size=64, required=True), 'active': fields.boolean('Active'), 'note': fields.text('Note'), 'invoicing_method': fields.selection([('simple','Non grouped'),('grouped','Grouped')], 'Invoicing method', required=True), diff --git a/addons/sale_journal/sale_journal_inherit.py b/addons/sale_journal/sale_journal_inherit.py index 4f90a242ec1..f412897892c 100644 --- a/addons/sale_journal/sale_journal_inherit.py +++ b/addons/sale_journal/sale_journal_inherit.py @@ -47,17 +47,17 @@ res_partner() class picking(osv.osv): _inherit="stock.picking" _columns = { - 'journal_id': fields.many2one('sale_journal.picking.journal', 'Journal', relate=True), - 'sale_journal_id': fields.many2one('sale_journal.sale.journal', 'Sale Journal', relate=True), - 'invoice_type_id': fields.many2one('sale_journal.invoice.type', 'Invoice Type', relate=True, readonly=True) + 'journal_id': fields.many2one('sale_journal.picking.journal', 'Journal'), + 'sale_journal_id': fields.many2one('sale_journal.sale.journal', 'Sale Journal'), + 'invoice_type_id': fields.many2one('sale_journal.invoice.type', 'Invoice Type', readonly=True) } picking() class sale(osv.osv): _inherit="sale.order" _columns = { - 'journal_id': fields.many2one('sale_journal.sale.journal', 'Journal', relate=True), - 'invoice_type_id': fields.many2one('sale_journal.invoice.type', 'Invoice Type', relate=True) + 'journal_id': fields.many2one('sale_journal.sale.journal', 'Journal'), + 'invoice_type_id': fields.many2one('sale_journal.invoice.type', 'Invoice Type') } def action_ship_create(self, cr, uid, ids, *args): result = super(sale, self).action_ship_create(cr, uid, ids, *args) diff --git a/addons/sale_journal/sale_journal_picking_report.py b/addons/sale_journal/sale_journal_picking_report.py index 6f6f719f115..5531c81c1b9 100644 --- a/addons/sale_journal/sale_journal_picking_report.py +++ b/addons/sale_journal/sale_journal_picking_report.py @@ -48,7 +48,7 @@ class report_sale_journal_invoice_type_stats(osv.osv): ('done','done'), ('cancel','cancel'), ], 'State', readonly=True), - 'invoice_type_id':fields.many2one('sale_journal.invoice.type', 'Invoicing method', readonly=True, relate=True), + 'invoice_type_id':fields.many2one('sale_journal.invoice.type', 'Invoicing method', readonly=True), 'quantity': fields.float('Quantities', readonly=True), 'price_total': fields.float('Total Price', readonly=True), 'price_average': fields.float('Average Price', readonly=True), @@ -91,7 +91,7 @@ class report_sale_journal_picking(osv.osv): ('done','done'), ('cancel','cancel'), ], 'State', readonly=True), - 'journal_id':fields.many2one('sale_journal.picking.journal', 'Journal', readonly=True, relate=True), + 'journal_id':fields.many2one('sale_journal.picking.journal', 'Journal', readonly=True), 'quantity': fields.float('Quantities', readonly=True), 'price_total': fields.float('Total Price', readonly=True), 'price_average': fields.float('Average Price', readonly=True), diff --git a/addons/sale_journal/sale_journal_report.py b/addons/sale_journal/sale_journal_report.py index 88f92160efd..5f6febd20b6 100644 --- a/addons/sale_journal/sale_journal_report.py +++ b/addons/sale_journal/sale_journal_report.py @@ -45,7 +45,7 @@ class report_sale_journal_sale(osv.osv): ('done','Done'), ('cancel','Cancel') ], 'Order State', readonly=True), - 'journal_id':fields.many2one('sale_journal.sale.journal', 'Journal', readonly=True, relate=True), + 'journal_id':fields.many2one('sale_journal.sale.journal', 'Journal', readonly=True), 'quantity': fields.float('Quantities', readonly=True), 'price_total': fields.float('Total Price', readonly=True), 'price_average': fields.float('Average Price', readonly=True), diff --git a/addons/sale_journal/sale_journal_view.xml b/addons/sale_journal/sale_journal_view.xml index 9aba6053e41..9ed0b86031b 100644 --- a/addons/sale_journal/sale_journal_view.xml +++ b/addons/sale_journal/sale_journal_view.xml @@ -253,6 +253,47 @@ action="action_sale_sale_stats_open_menu_all" id="menu_sale_sale_stats_open_all"/> + + + + + + + + + + + + +