diff --git a/addons/account/__openerp__.py b/addons/account/__openerp__.py index ebbd5459cea..c538614fd0f 100644 --- a/addons/account/__openerp__.py +++ b/addons/account/__openerp__.py @@ -159,6 +159,5 @@ for a particular financial year and for preparation of vouchers there is a modul ], 'installable': True, 'auto_install': False, - 'certificate': '0080331923549', } # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/account/res_config.py b/addons/account/res_config.py index ea903654a4e..17df4377548 100644 --- a/addons/account/res_config.py +++ b/addons/account/res_config.py @@ -117,6 +117,9 @@ class account_config_settings(osv.osv_memory): 'group_multi_currency': fields.boolean('Allow multi currencies', implied_group='base.group_multi_currency', help="Allows you multi currency environment"), + 'group_analytic_accounting': fields.boolean('Analytic accounting', + implied_group='analytic.group_analytic_accounting', + help="Allows you to use the analytic accounting."), } def _default_company(self, cr, uid, context=None): diff --git a/addons/account/res_config_view.xml b/addons/account/res_config_view.xml index d7618fbff5a..0e4b1fa64c4 100644 --- a/addons/account/res_config_view.xml +++ b/addons/account/res_config_view.xml @@ -129,6 +129,10 @@ + + + + + diff --git a/addons/hr/__openerp__.py b/addons/hr/__openerp__.py index b99482ef8c5..0a93d844180 100644 --- a/addons/hr/__openerp__.py +++ b/addons/hr/__openerp__.py @@ -68,7 +68,6 @@ You can manage: 'installable': True, 'application': True, 'auto_install': False, - 'certificate': '0086710558965', 'css': [ 'static/src/css/hr.css' ], } # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/hr/board_hr_view.xml b/addons/hr/board_hr_view.xml index 4d01038b671..84db6128f41 100644 --- a/addons/hr/board_hr_view.xml +++ b/addons/hr/board_hr_view.xml @@ -22,6 +22,20 @@ form menu + +
+

+ Human Resources dashboard is empty. +

+ To add your first report into this dashboard, go to any + menu, switch to list or graph view, and click 'Add to + Dashboard' in the extended search options. +

+ You can filter and group data before inserting into the + dashboard using the search options. +

+
+
product.product
- - + +
+ +
diff --git a/addons/hr_holidays/__openerp__.py b/addons/hr_holidays/__openerp__.py index 512ab8e425d..3cf4a30a2e1 100644 --- a/addons/hr_holidays/__openerp__.py +++ b/addons/hr_holidays/__openerp__.py @@ -66,6 +66,5 @@ A synchronization with an internal agenda (Meetings of the CRM module) is also p 'installable': True, 'application': True, 'auto_install': False, - 'certificate': '0086579209325', } # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/hr_payroll/__openerp__.py b/addons/hr_payroll/__openerp__.py index 62a0348940b..dfa87622264 100644 --- a/addons/hr_payroll/__openerp__.py +++ b/addons/hr_payroll/__openerp__.py @@ -67,7 +67,6 @@ Generic Payroll system. 'demo': ['hr_payroll_demo.xml'], 'installable': True, 'auto_install': False, - 'certificate' : '001046261404562128861', 'application': False, } diff --git a/addons/hr_payroll_account/__openerp__.py b/addons/hr_payroll_account/__openerp__.py index 3f960507a8d..7c7e7bd9dda 100644 --- a/addons/hr_payroll_account/__openerp__.py +++ b/addons/hr_payroll_account/__openerp__.py @@ -44,7 +44,6 @@ Generic Payroll system Integrated with Accounting. 'test': ['test/hr_payroll_account.yml'], 'installable': True, 'auto_install': False, - 'certificate' : '00923971112835220957', } # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/hr_recruitment/__openerp__.py b/addons/hr_recruitment/__openerp__.py index d498e41498d..a5a1ec310d5 100644 --- a/addons/hr_recruitment/__openerp__.py +++ b/addons/hr_recruitment/__openerp__.py @@ -64,7 +64,6 @@ You can define the different phases of interviews and easily rate the applicant 'test': ['test/recruitment_process.yml'], 'installable': True, 'auto_install': False, - 'certificate': '001073437025460275621', 'application': True, } diff --git a/addons/hr_timesheet/__openerp__.py b/addons/hr_timesheet/__openerp__.py index 2162b6095e8..c7af21ee0be 100644 --- a/addons/hr_timesheet/__openerp__.py +++ b/addons/hr_timesheet/__openerp__.py @@ -62,6 +62,5 @@ up a management by affair. ], 'installable': True, 'auto_install': False, - 'certificate': '0071405533469', } # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/hr_timesheet_invoice/__openerp__.py b/addons/hr_timesheet_invoice/__openerp__.py index 047f0b414dc..65ccc8948c2 100644 --- a/addons/hr_timesheet_invoice/__openerp__.py +++ b/addons/hr_timesheet_invoice/__openerp__.py @@ -54,6 +54,5 @@ reports.""", ], 'installable': True, 'auto_install': False, - 'certificate': '0056091842381', } # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/hr_timesheet_sheet/__openerp__.py b/addons/hr_timesheet_sheet/__openerp__.py index fbe4bc85503..9aab412d425 100644 --- a/addons/hr_timesheet_sheet/__openerp__.py +++ b/addons/hr_timesheet_sheet/__openerp__.py @@ -64,7 +64,6 @@ The validation can be configured in the company: 'test':['test/test_hr_timesheet_sheet.yml'], 'installable': True, 'auto_install': False, - 'certificate': '0073297700829', 'application': True, } # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/knowledge/__openerp__.py b/addons/knowledge/__openerp__.py index 14b2d045d6c..49600f63ddd 100644 --- a/addons/knowledge/__openerp__.py +++ b/addons/knowledge/__openerp__.py @@ -43,7 +43,6 @@ document and Wiki based Hidden. 'demo': ['knowledge_demo.xml'], 'installable': True, 'auto_install': False, - 'certificate' : '001278773815843749581', 'images': ['images/1_config_knowledge.jpeg'], } # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/l10n_be/__openerp__.py b/addons/l10n_be/__openerp__.py index c2ccf511e3c..a956ea7ebe0 100644 --- a/addons/l10n_be/__openerp__.py +++ b/addons/l10n_be/__openerp__.py @@ -76,7 +76,6 @@ Wizards provided by this module: ], 'demo': [], 'installable': True, - 'certificate': '0031977724637', 'images': ['images/1_config_chart_l10n_be.jpeg','images/2_l10n_be_chart.jpeg'], } # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/l10n_be_coda/__openerp__.py b/addons/l10n_be_coda/__openerp__.py index bd323478886..2c8931f484c 100644 --- a/addons/l10n_be_coda/__openerp__.py +++ b/addons/l10n_be_coda/__openerp__.py @@ -105,7 +105,6 @@ If required, you can manually adjust the descriptions via the CODA configuration 'auto_install': False, 'installable': True, 'license': 'AGPL-3', - 'certificate' : '001237207321716002029', } # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/l10n_br/__openerp__.py b/addons/l10n_br/__openerp__.py index 99923f1a5e5..766ae6c60bb 100644 --- a/addons/l10n_br/__openerp__.py +++ b/addons/l10n_br/__openerp__.py @@ -75,7 +75,6 @@ for online use of 'private modules'.""", 'l10n_br_view.xml', ], 'installable': True, - 'certificate' : '001280994939126801405', } # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/l10n_ca/__openerp__.py b/addons/l10n_ca/__openerp__.py index 5f12d7331b6..9c3cfea2fb1 100644 --- a/addons/l10n_ca/__openerp__.py +++ b/addons/l10n_ca/__openerp__.py @@ -46,7 +46,6 @@ Canadian accounting charts and localizations. ], 'demo': [], 'installable': True, - 'certificate': '00941680933773696173', 'images': ['images/config_chart_l10n_ca.jpeg','images/l10n_ca_chart.jpeg'], } # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/l10n_ch/__openerp__.py b/addons/l10n_ch/__openerp__.py index 4e8f13fda7a..ec50d9b0f8e 100644 --- a/addons/l10n_ch/__openerp__.py +++ b/addons/l10n_ch/__openerp__.py @@ -102,7 +102,6 @@ TODO : ], 'auto_install': False, 'installable': True, - 'certificate': '001103836064567088989', 'images': ['images/config_chart_l10n_ch.jpeg','images/l10n_ch_chart.jpeg'] } # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/l10n_cn/__openerp__.py b/addons/l10n_cn/__openerp__.py index 0cc26a5052e..3dd702a2d67 100644 --- a/addons/l10n_cn/__openerp__.py +++ b/addons/l10n_cn/__openerp__.py @@ -40,7 +40,6 @@ 'license': 'GPL-3', 'auto_install': False, 'installable': True, - 'certificate': '00925445983542952285', 'images': ['images/config_chart_l10n_cn.jpeg','images/l10n_cn_chart.jpeg'], } diff --git a/addons/l10n_cr/__openerp__.py b/addons/l10n_cr/__openerp__.py index cc90ed3be9e..79a769e9e8e 100644 --- a/addons/l10n_cr/__openerp__.py +++ b/addons/l10n_cr/__openerp__.py @@ -68,7 +68,6 @@ please go to http://translations.launchpad.net/openerp-costa-rica. 'license': 'Other OSI approved licence', 'installable': True, 'auto_install': False, - 'certificate' : '00531476623680631853', 'images': ['images/config_chart_l10n_cr.jpeg','images/l10n_cr_chart.jpeg'], } diff --git a/addons/l10n_de/__openerp__.py b/addons/l10n_de/__openerp__.py index 299174da592..e9507595402 100644 --- a/addons/l10n_de/__openerp__.py +++ b/addons/l10n_de/__openerp__.py @@ -148,7 +148,6 @@ German accounting chart and localization. 'l10n_de_wizard.xml', ], 'installable': True, - 'certificate': '00517849017945584893', 'images': ['images/config_chart_l10n_de.jpeg','images/l10n_de_chart.jpeg'], } diff --git a/addons/l10n_ec/__openerp__.py b/addons/l10n_ec/__openerp__.py index 62a32a526c3..3414f969dcd 100644 --- a/addons/l10n_ec/__openerp__.py +++ b/addons/l10n_ec/__openerp__.py @@ -42,7 +42,6 @@ Accounting chart and localization for Ecuador. ], 'demo': [], 'installable': True, - 'certificate' : '001226484516187330589', 'images': ['images/config_chart_l10n_ec.jpeg','images/l10n_ec_chart.jpeg'], } diff --git a/addons/l10n_es/__openerp__.py b/addons/l10n_es/__openerp__.py index 9b7a7517974..2264988fd99 100644 --- a/addons/l10n_es/__openerp__.py +++ b/addons/l10n_es/__openerp__.py @@ -54,7 +54,6 @@ Spanish Charts of Accounts (PGCE 2008). 'demo': [], 'auto_install': False, 'installable': True, - 'certificate': '00408828172062583229', 'images': ['images/config_chart_l10n_es.jpeg','images/l10n_es_chart.jpeg'], } diff --git a/addons/l10n_fr/__openerp__.py b/addons/l10n_fr/__openerp__.py index 65a2621f03a..e1d4b9ac334 100644 --- a/addons/l10n_fr/__openerp__.py +++ b/addons/l10n_fr/__openerp__.py @@ -68,7 +68,6 @@ configuration of their taxes and fiscal positions manually. ], 'test': ['test/l10n_fr_report.yml'], 'demo': [], - 'certificate': '00435321693876313629', 'auto_install': False, 'installable': True, 'images': ['images/config_chart_l10n_fr.jpeg','images/l10n_fr_chart.jpeg'], diff --git a/addons/l10n_fr_rib/__openerp__.py b/addons/l10n_fr_rib/__openerp__.py index 327ab35d5c0..386f4be71e8 100644 --- a/addons/l10n_fr_rib/__openerp__.py +++ b/addons/l10n_fr_rib/__openerp__.py @@ -53,7 +53,6 @@ Accounts in OpenERP: the first with the type 'RIB', the second with the type 'IB 'depends': ['account', 'base_iban'], 'data': ['bank_data.xml', 'bank_view.xml'], 'installable': True, - 'certificate': '003407950790', 'auto_install': False, } diff --git a/addons/l10n_gr/__openerp__.py b/addons/l10n_gr/__openerp__.py index 62d82b544d8..aac13487189 100644 --- a/addons/l10n_gr/__openerp__.py +++ b/addons/l10n_gr/__openerp__.py @@ -41,7 +41,6 @@ Greek accounting chart and localization. 'l10n_gr_wizard.xml' ], 'installable': True, - 'certificate': '001146244418929008029', 'images': ['images/config_chart_l10n_gr.jpeg','images/l10n_gr_chart.jpeg'], } diff --git a/addons/l10n_gt/__openerp__.py b/addons/l10n_gt/__openerp__.py index e36e418ee21..adba0898449 100644 --- a/addons/l10n_gt/__openerp__.py +++ b/addons/l10n_gt/__openerp__.py @@ -54,7 +54,6 @@ taxes and the Quetzal currency.""", ], 'demo': [], 'installable': True, - 'certificate': '00815146661827601309', 'images': ['images/config_chart_l10n_gt.jpeg','images/l10n_gt_chart.jpeg'], } # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/l10n_in/__openerp__.py b/addons/l10n_in/__openerp__.py index b1cab835f96..b3dab229201 100644 --- a/addons/l10n_in/__openerp__.py +++ b/addons/l10n_in/__openerp__.py @@ -45,7 +45,6 @@ Indian accounting chart and localization. ], 'auto_install': False, 'installable': True, - 'certificate' : '001308250150600713245', 'images': ['images/config_chart_l10n_in.jpeg','images/l10n_in_chart.jpeg'], } # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/l10n_it/__openerp__.py b/addons/l10n_it/__openerp__.py index a9177fee033..00ba19e9c42 100644 --- a/addons/l10n_it/__openerp__.py +++ b/addons/l10n_it/__openerp__.py @@ -52,6 +52,5 @@ Italian accounting chart and localization. 'demo': [], 'installable': True, 'auto_install': False, - 'certificate' : '00926677190009155165', 'images': ['images/config_chart_l10n_it.jpeg','images/l10n_it_chart.jpeg'], } diff --git a/addons/l10n_lu/__openerp__.py b/addons/l10n_lu/__openerp__.py index 70f30444a3e..588102989ac 100644 --- a/addons/l10n_lu/__openerp__.py +++ b/addons/l10n_lu/__openerp__.py @@ -45,7 +45,6 @@ This is the base module to manage the accounting chart for Luxembourg. 'demo': [], 'installable': True, 'auto_install': False, - 'certificate': '0078164766621', 'images': ['images/config_chart_l10n_lu.jpeg','images/l10n_lu_chart.jpeg'], } # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/l10n_ma/__openerp__.py b/addons/l10n_ma/__openerp__.py index 37f477d363c..1648fb6b171 100644 --- a/addons/l10n_ma/__openerp__.py +++ b/addons/l10n_ma/__openerp__.py @@ -47,7 +47,6 @@ Seddik au cours du troisième trimestre 2010.""", 'demo' : [], 'auto_install': False, 'installable': True, - 'certificate' : '00599614652359069981', 'images': ['images/config_chart_l10n_ma.jpeg','images/l10n_ma_chart.jpeg'], } # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/l10n_mx/__openerp__.py b/addons/l10n_mx/__openerp__.py index 25ec7cc98c4..02904431151 100644 --- a/addons/l10n_mx/__openerp__.py +++ b/addons/l10n_mx/__openerp__.py @@ -37,7 +37,6 @@ Mexican accounting chart and localization. ], 'auto_install': False, 'installable': True, - 'certificate': '00858539161332598061', 'images': ['images/config_chart_l10n_mx.jpeg','images/l10n_mx_chart.jpeg'], } # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/l10n_nl/__openerp__.py b/addons/l10n_nl/__openerp__.py index a263f912183..b612d07c147 100644 --- a/addons/l10n_nl/__openerp__.py +++ b/addons/l10n_nl/__openerp__.py @@ -127,7 +127,6 @@ De extra cijfers worden dan achter het rekeningnummer aangevult met 'nullen'. ], 'demo' : [], 'installable': True, - 'certificate': '00976041422960053277', 'images': ['images/config_chart_l10n_nl.jpeg','images/l10n_nl_chart.jpeg'], } # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/l10n_pe/__openerp__.py b/addons/l10n_pe/__openerp__.py index 9ae3e351d13..f194576aa27 100644 --- a/addons/l10n_pe/__openerp__.py +++ b/addons/l10n_pe/__openerp__.py @@ -42,7 +42,6 @@ SUNAT 2011 (PCGE 2010). 'demo': [], 'active': False, 'installable': True, - 'certificate' : '0045046493412', 'images': ['images/config_chart_l10n_pe.jpeg','images/l10n_pe_chart.jpeg'], } # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/l10n_pl/__openerp__.py b/addons/l10n_pl/__openerp__.py index df8d2955e8e..a14828fe9de 100644 --- a/addons/l10n_pl/__openerp__.py +++ b/addons/l10n_pl/__openerp__.py @@ -41,7 +41,6 @@ VAT 0%, 7% i 22%. Moduł ustawia też konta do kupna i sprzedaży towarów zakł ], 'auto_install': False, 'installable': True, - 'certificate' : '00885794372803776829', 'images': ['images/config_chart_l10n_pl.jpeg','images/l10n_pl_chart.jpeg'], } # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/l10n_ro/__openerp__.py b/addons/l10n_ro/__openerp__.py index 22df6955a5f..8026d49c3db 100644 --- a/addons/l10n_ro/__openerp__.py +++ b/addons/l10n_ro/__openerp__.py @@ -36,7 +36,6 @@ Romanian accounting chart and localization. 'data' : ['partner_view.xml','account_tax_code.xml','account_chart.xml','account_tax.xml','l10n_chart_ro_wizard.xml'], 'auto_install': False, 'installable': True, - 'certificate' : '001308250150602948125', 'images': ['images/config_chart_l10n_ro.jpeg','images/l10n_ro_chart.jpeg'], } # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/l10n_th/__openerp__.py b/addons/l10n_th/__openerp__.py index d2c5d07142a..94340954abc 100644 --- a/addons/l10n_th/__openerp__.py +++ b/addons/l10n_th/__openerp__.py @@ -34,7 +34,6 @@ Thai accounting chart and localization. 'depends': ['account_chart'], 'data': [ 'account_data.xml' ], 'installable': True, - 'certificate' : '00722263103978957725', 'images': ['images/config_chart_l10n_th.jpeg','images/l10n_th_chart.jpeg'], } diff --git a/addons/l10n_uy/__openerp__.py b/addons/l10n_uy/__openerp__.py index e5e7aaf59c8..2a6f10ddb29 100644 --- a/addons/l10n_uy/__openerp__.py +++ b/addons/l10n_uy/__openerp__.py @@ -46,7 +46,6 @@ Provide Templates for Chart of Accounts, Taxes for Uruguay. 'demo': [], 'auto_install': False, 'installable': True, - 'certificate': '0078287892698', 'images': ['images/config_chart_l10n_uy.jpeg','images/l10n_uy_chart.jpeg'], } diff --git a/addons/l10n_ve/__openerp__.py b/addons/l10n_ve/__openerp__.py index fcb5110714e..f10f4d0db61 100644 --- a/addons/l10n_ve/__openerp__.py +++ b/addons/l10n_ve/__openerp__.py @@ -41,7 +41,6 @@ Este módulo es para manejar un catálogo de cuentas ejemplo para Venezuela. ], 'auto_install': False, 'installable': True, - 'certificate': '00763145921185574557', 'images': ['images/config_chart_l10n_ve.jpeg','images/l10n_ve_chart.jpeg'], } # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/lunch/__openerp__.py b/addons/lunch/__openerp__.py index f84edb1db35..f3791da7acd 100644 --- a/addons/lunch/__openerp__.py +++ b/addons/lunch/__openerp__.py @@ -46,7 +46,6 @@ Category for the product. 'demo': ['lunch_demo.xml'], 'test': ['test/test_lunch.yml', 'test/lunch_report.yml'], 'installable': True, - 'certificate' : '001292377792581874189', 'images': ['images/cash_moves.jpeg','images/lunch_orders.jpeg','images/products.jpeg'], } diff --git a/addons/mail/__openerp__.py b/addons/mail/__openerp__.py index 387b1e19301..5a3c48de675 100644 --- a/addons/mail/__openerp__.py +++ b/addons/mail/__openerp__.py @@ -67,7 +67,6 @@ Main Features 'installable': True, 'auto_install': False, 'application': True, - 'certificate': '001056784984222247309', 'images': [ 'images/customer_history.jpeg', 'images/messages_form.jpeg', diff --git a/addons/mail/tests/test_mail.py b/addons/mail/tests/test_mail.py index 57a59e2595f..7a84a2abd78 100644 --- a/addons/mail/tests/test_mail.py +++ b/addons/mail/tests/test_mail.py @@ -320,7 +320,9 @@ class test_mail(TestMailMockups): for sent_email in sent_emails: self.assertEqual(sent_email['subject'], _subject, 'sent_email subject incorrect') self.assertEqual(sent_email['body'], _mail_body1 + '\n
Bert Tartopoils
\n', 'sent_email body incorrect') - self.assertEqual(sent_email['body_alternative'], _mail_bodyalt1 + '\nBert Tartopoils', 'sent_email body_alternative is incorrect') + # the html2plaintext uses etree or beautiful soup, so the result may be slighly different + # depending if you have installed beautiful soup. + self.assertIn(sent_email['body_alternative'], _mail_bodyalt1 + '\nBert Tartopoils\n', 'sent_email body_alternative is incorrect') # Test: mail_message: partner_ids = group followers message_pids = set([partner.id for partner in message.partner_ids]) test_pids = set([p_a_id, p_b_id, p_c_id]) diff --git a/addons/marketing/__openerp__.py b/addons/marketing/__openerp__.py index 90f6e076cae..0c77fe59a86 100644 --- a/addons/marketing/__openerp__.py +++ b/addons/marketing/__openerp__.py @@ -42,7 +42,6 @@ Contains the installer for marketing-related modules. 'demo': ['marketing_demo.xml'], 'installable': True, 'auto_install': False, - 'certificate': '00598574977629228189', 'images': ['images/config_marketing.jpeg'], } # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/marketing_campaign/__openerp__.py b/addons/marketing_campaign/__openerp__.py index 61d5d2ada29..a51347fd1bb 100644 --- a/addons/marketing_campaign/__openerp__.py +++ b/addons/marketing_campaign/__openerp__.py @@ -68,7 +68,6 @@ input segments, workflow. 'test': ['test/marketing_campaign.yml'], 'installable': True, 'auto_install': False, - 'certificate': '00421723279617928365', 'images': ['images/campaign.png', 'images/campaigns.jpeg','images/email_account.jpeg','images/email_templates.jpeg','images/segments.jpeg'], } # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/marketing_campaign_crm_demo/__openerp__.py b/addons/marketing_campaign_crm_demo/__openerp__.py index aae0d72e9d0..9265561bd64 100644 --- a/addons/marketing_campaign_crm_demo/__openerp__.py +++ b/addons/marketing_campaign_crm_demo/__openerp__.py @@ -39,7 +39,6 @@ Creates demo data like leads, campaigns and segments for the module marketing_ca 'demo': ['marketing_campaign_demo.xml'], 'installable': True, 'auto_install': False, - 'certificate': '001005497972871352957', 'images': ['images/campaigns.jpeg','images/email_templates.jpeg'], } # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/membership/__openerp__.py b/addons/membership/__openerp__.py index 316a2f0f120..4a0a80694b3 100644 --- a/addons/membership/__openerp__.py +++ b/addons/membership/__openerp__.py @@ -51,7 +51,6 @@ invoice and send propositions for membership renewal. 'test': ['test/test_membership.yml'], 'installable': True, 'auto_install': False, - 'certificate': '0042907796381', 'images': ['images/members.jpeg','images/membership_list.jpeg', 'images/membership_products.jpeg'], } # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/mrp/__openerp__.py b/addons/mrp/__openerp__.py index cce5272bd79..73564f2b460 100644 --- a/addons/mrp/__openerp__.py +++ b/addons/mrp/__openerp__.py @@ -84,6 +84,5 @@ Dashboard / Reports for MRP will include: 'installable': True, 'application': True, 'auto_install': False, - 'certificate': '0032052481373', } # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/mrp_jit/__openerp__.py b/addons/mrp_jit/__openerp__.py index ddd5e3d63fb..9df8ab9908b 100644 --- a/addons/mrp_jit/__openerp__.py +++ b/addons/mrp_jit/__openerp__.py @@ -45,6 +45,5 @@ In that case, you can not use priorities any more on the different picking. 'test': ['test/mrp_jit.yml'], 'installable': True, 'auto_install': False, - 'certificate': '0086634760061', } # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/mrp_operations/__openerp__.py b/addons/mrp_operations/__openerp__.py index a5bda80f924..97c76f90546 100644 --- a/addons/mrp_operations/__openerp__.py +++ b/addons/mrp_operations/__openerp__.py @@ -73,6 +73,5 @@ So, that we can compare the theoretic delay and real delay. ], 'installable': True, 'auto_install': False, - 'certificate': '0056233813133', } # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/mrp_repair/__openerp__.py b/addons/mrp_repair/__openerp__.py index da4070d6210..d522bdc36e8 100644 --- a/addons/mrp_repair/__openerp__.py +++ b/addons/mrp_repair/__openerp__.py @@ -59,6 +59,5 @@ The following topics should be covered by this module: ], 'installable': True, 'auto_install': False, - 'certificate': '0060814381277', } # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/mrp_subproduct/__openerp__.py b/addons/mrp_subproduct/__openerp__.py index c45584eb1a9..6475cbe4a91 100644 --- a/addons/mrp_subproduct/__openerp__.py +++ b/addons/mrp_subproduct/__openerp__.py @@ -50,6 +50,5 @@ With this module: 'test': ['test/mrp_subproduct.yml'], 'installable': True, 'auto_install': False, - 'certificate': '0050060616733', } # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/multi_company/__openerp__.py b/addons/multi_company/__openerp__.py index 501740188db..bbaa161ee57 100644 --- a/addons/multi_company/__openerp__.py +++ b/addons/multi_company/__openerp__.py @@ -41,7 +41,6 @@ This module is the base module for other multi-company modules. 'demo': ['multi_company_demo.xml'], 'installable': True, 'auto_install': False, - 'certificate' : '001115526094673097933', 'images': ['images/companies.jpeg','images/default_company_per_object_form.jpeg', 'images/default_company_per_object_list.jpeg'], } # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/pad/__openerp__.py b/addons/pad/__openerp__.py index 50b280d2c32..b99e6d828c9 100644 --- a/addons/pad/__openerp__.py +++ b/addons/pad/__openerp__.py @@ -18,7 +18,6 @@ pads (by default, http://ietherpad.com/). 'installable': True, 'auto_install': False, 'web': True, - 'certificate' : '001183545978470526509', 'js': ['static/src/js/pad.js'], 'qweb' : ['static/src/xml/*.xml'], 'images': ['static/src/img/pad_link_companies.jpeg'], diff --git a/addons/plugin_outlook/__openerp__.py b/addons/plugin_outlook/__openerp__.py index 3f26399e71f..98a1d70eb9f 100644 --- a/addons/plugin_outlook/__openerp__.py +++ b/addons/plugin_outlook/__openerp__.py @@ -40,7 +40,6 @@ into mail.message with attachments. 'data' : ['plugin_outlook.xml'], 'auto_install': False, 'installable': True, - 'certificate' : '001278773815818292125', 'images': ['images/config_outlook.jpeg','images/outlook_config_openerp.jpeg','images/outlook_push.jpeg'], } diff --git a/addons/plugin_thunderbird/__openerp__.py b/addons/plugin_thunderbird/__openerp__.py index 54e05603e53..56c9d47cd65 100644 --- a/addons/plugin_thunderbird/__openerp__.py +++ b/addons/plugin_thunderbird/__openerp__.py @@ -40,6 +40,5 @@ HR Applicant and Project Issue from selected mails. 'data' : ['plugin_thunderbird.xml'], 'auto_install': False, 'installable': True, - 'certificate' : '00899858104035139949', 'images': ['images/config_thunderbird.jpeg','images/config_thunderbird_plugin.jpeg','images/thunderbird_document.jpeg'], } diff --git a/addons/portal_project_issue/portal_project_issue_view.xml b/addons/portal_project_issue/portal_project_issue_view.xml index 1030dedbdf8..6502d92b4dc 100644 --- a/addons/portal_project_issue/portal_project_issue_view.xml +++ b/addons/portal_project_issue/portal_project_issue_view.xml @@ -5,6 +5,7 @@ Project Issue Kanban project.issue + 20 diff --git a/addons/process/__openerp__.py b/addons/process/__openerp__.py index f0ece3704dc..fcae18c5490 100644 --- a/addons/process/__openerp__.py +++ b/addons/process/__openerp__.py @@ -43,7 +43,6 @@ This module shows the basic processes involved in the selected modules and in th 'demo': [], 'installable': True, 'auto_install': False, - 'certificate': '0055447636669', 'images': ['images/process_nodes.jpeg','images/process_transitions.jpeg', 'images/processes.jpeg'], 'js': [ 'static/src/js/process.js' diff --git a/addons/procurement/__openerp__.py b/addons/procurement/__openerp__.py index e797766eb40..a1aed1dfba8 100644 --- a/addons/procurement/__openerp__.py +++ b/addons/procurement/__openerp__.py @@ -61,7 +61,6 @@ depending on the product's configuration. 'test': ['test/procurement.yml'], 'installable': True, 'auto_install': True, - 'certificate': '00954248826881074509', 'images': ['images/compute_schedulers.jpeg','images/config_companies_sched.jpeg', 'images/minimum_stock_rules.jpeg'], } # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/product/__openerp__.py b/addons/product/__openerp__.py index 0c14b999e99..fdadda2e4d4 100644 --- a/addons/product/__openerp__.py +++ b/addons/product/__openerp__.py @@ -66,7 +66,6 @@ Print product labels with barcode. ], 'installable': True, 'auto_install': False, - 'certificate': '0068861431437', 'images': ['images/product_uom.jpeg','images/product_pricelists.jpeg','images/products_categories.jpeg', 'images/products_form.jpeg'], } # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/product/pricelist.py b/addons/product/pricelist.py index c333000621a..f189b854fe5 100644 --- a/addons/product/pricelist.py +++ b/addons/product/pricelist.py @@ -394,6 +394,12 @@ class product_pricelist_item(osv.osv): return False return True + def _check_margin(self, cr, uid, ids, context=None): + for item in self.browse(cr, uid, ids, context=context): + if item.price_max_margin and item.price_min_margin and (item.price_min_margin > item.price_max_margin): + return False + return True + _columns = { 'name': fields.char('Rule Name', size=64, help="Explicit rule name for this pricelist line."), 'price_version_id': fields.many2one('product.pricelist.version', 'Price List Version', required=True, select=True, ondelete='cascade'), @@ -401,13 +407,13 @@ class product_pricelist_item(osv.osv): 'product_id': fields.many2one('product.product', 'Product', ondelete='cascade', help="Set a product if this rule only apply to one product. Keep empty for all products"), 'categ_id': fields.many2one('product.category', 'Product Category', ondelete='cascade', help="Set a category of product if this rule only apply to products of a category and his children. Keep empty for all products"), - 'min_quantity': fields.integer('Min. Quantity', required=True, help="The rule only applies if the partner buys/sells more than this quantity."), + 'min_quantity': fields.integer('Min. Quantity', required=True, help="The rule only applies if the partner buys/sells equal to or more than this quantity."), 'sequence': fields.integer('Sequence', required=True, help="Gives the order in which the pricelist items will be checked. The evaluation gives highest priority to lowest sequence and stops as soon as a matching item is found."), 'base': fields.selection(_price_field_get, 'Based on', required=True, size=-1, help="The mode for computing the price for this rule."), 'base_pricelist_id': fields.many2one('product.pricelist', 'If Other Pricelist'), 'price_surcharge': fields.float('Price Surcharge', - digits_compute= dp.get_precision('Product Price')), + digits_compute= dp.get_precision('Product Price'), help='Specify the fixed amount to add or substract(if negative) to the amount calculated with the discount.'), 'price_discount': fields.float('Price Discount', digits=(16,4)), 'price_round': fields.float('Price Rounding', digits_compute= dp.get_precision('Product Price'), @@ -416,15 +422,16 @@ class product_pricelist_item(osv.osv): "To have prices that end in 9.99, set rounding 10, surcharge -0.01" \ ), 'price_min_margin': fields.float('Min. Price Margin', - digits_compute= dp.get_precision('Product Price')), + digits_compute= dp.get_precision('Product Price'), help='Specify the minimum amount of margin over the base price.'), 'price_max_margin': fields.float('Max. Price Margin', - digits_compute= dp.get_precision('Product Price')), + digits_compute= dp.get_precision('Product Price'), help='Specify the maximum amount of margin over the base price.'), 'company_id': fields.related('price_version_id','company_id',type='many2one', readonly=True, relation='res.company', string='Company', store=True) } _constraints = [ - (_check_recursion, 'Error ! You cannot assign the Main Pricelist as Other Pricelist in PriceList Item!', ['base_pricelist_id']) + (_check_recursion, 'Error! You cannot assign the Main Pricelist as Other Pricelist in PriceList Item!', ['base_pricelist_id']), + (_check_margin, 'Error! The minimum margin should be lower than the maximum margin.', ['price_min_margin', 'price_max_margin']) ] def product_id_change(self, cr, uid, ids, product_id, context=None): diff --git a/addons/product/pricelist_view.xml b/addons/product/pricelist_view.xml index dc120660c43..01cb4dc54eb 100644 --- a/addons/product/pricelist_view.xml +++ b/addons/product/pricelist_view.xml @@ -219,7 +219,7 @@ + parent="product.menu_product_pricelist_main" sequence="1" groups="product.group_sale_pricelist"/> product.price.type.form diff --git a/addons/product/product.py b/addons/product/product.py index 8bc0789d44b..d04f308bc4b 100644 --- a/addons/product/product.py +++ b/addons/product/product.py @@ -743,6 +743,14 @@ class product_product(osv.osv): else: return super(product_product, self).copy(cr, uid, id, default=default, context=context) + + def search(self, cr, uid, args, offset=0, limit=None, order=None, context=None, count=False): + if context is None: + context = {} + if context and context.get('search_default_categ_id', False): + args.append((('categ_id', 'child_of', context['search_default_categ_id']))) + return super(product_product, self).search(cr, uid, args, offset=offset, limit=limit, order=order, context=context, count=False) + product_product() class product_packaging(osv.osv): diff --git a/addons/product/product_data.xml b/addons/product/product_data.xml index 5ae76a87695..9808fa732e9 100644 --- a/addons/product/product_data.xml +++ b/addons/product/product_data.xml @@ -7,7 +7,11 @@ All products - + + + Saleable + + Unit diff --git a/addons/product/product_demo.xml b/addons/product/product_demo.xml index 97d6e03205c..66b86fc7b63 100644 --- a/addons/product/product_demo.xml +++ b/addons/product/product_demo.xml @@ -9,11 +9,7 @@ - - - - Saleable - + Internal @@ -23,27 +19,27 @@ Other Products - + Computers - + Services - + External Devices - + Accessories - + Components - + Softwares diff --git a/addons/product/product_pricelist_demo.yml b/addons/product/product_pricelist_demo.yml index 39f6cfc16b2..efb812ad5e2 100644 --- a/addons/product/product_pricelist_demo.yml +++ b/addons/product/product_pricelist_demo.yml @@ -47,7 +47,7 @@ - name: 20% Discount given by my supplier sequence: 1 price_min_margin: 2 - price_max_margin: -5 + price_max_margin: 5 product_id: product_product_6 base: -2 - diff --git a/addons/product/product_view.xml b/addons/product/product_view.xml index c08bbc412e3..8c19aee026f 100644 --- a/addons/product/product_view.xml +++ b/addons/product/product_view.xml @@ -467,11 +467,15 @@ +

+ e.g: 1 * (reference unit) = ratio * (this unit) +

+

+ e.g: 1 * (this unit) = ratio * (reference unit) +

-
diff --git a/addons/product/test/product_pricelist.yml b/addons/product/test/product_pricelist.yml index 85230261312..66e256d4cd1 100644 --- a/addons/product/test/product_pricelist.yml +++ b/addons/product/test/product_pricelist.yml @@ -49,14 +49,14 @@ !python {model: product.product}: | context.update({'quantity':1, 'date': False, 'partner': ref('base.res_partner_4'), 'pricelist': ref("supplier_pricelist")}) product = self.browse(cr, uid, ref("product_product_6"), context=context) - assert product.price == 785, "cost price is not correspond." + assert product.price == 792, "cost price is not correspond." - I check cost price of LCD Monitor if more than 3 Unit. - !python {model: product.product}: | context.update({'quantity':3}) product = self.browse(cr, uid, ref("product_product_6"), context=context) - assert product.price == 780, "cost price is not correspond." + assert product.price == 787, "cost price is not correspond." - I print the sale prices report. diff --git a/addons/product_expiry/__openerp__.py b/addons/product_expiry/__openerp__.py index b4f66edc482..ae65c9092b3 100644 --- a/addons/product_expiry/__openerp__.py +++ b/addons/product_expiry/__openerp__.py @@ -39,7 +39,6 @@ Used, for example, in food industries.""", 'data' : ['product_expiry_view.xml'], 'auto_install': False, 'installable': True, - 'certificate': '00421222123914960109', 'images': ['images/production_lots_dates.jpeg','images/products_dates.jpeg'], } # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/product_manufacturer/__openerp__.py b/addons/product_manufacturer/__openerp__.py index 8e24f8476f0..f43ed923860 100644 --- a/addons/product_manufacturer/__openerp__.py +++ b/addons/product_manufacturer/__openerp__.py @@ -41,7 +41,6 @@ You can now define the following for a product: ], 'auto_install': False, 'installable': True, - 'certificate': '00720153953662760781', 'images': ['images/products_manufacturer.jpeg'], } # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/product_margin/__openerp__.py b/addons/product_margin/__openerp__.py index 76e4d3964b1..41c2a53474a 100644 --- a/addons/product_margin/__openerp__.py +++ b/addons/product_margin/__openerp__.py @@ -41,7 +41,6 @@ The wizard to launch the report has several options to help you get the data you 'demo': [], 'installable': True, 'auto_install': False, - 'certificate': '0064392591773', 'images': ['images/open_margins.jpeg','images/product_margins_form.jpeg', 'images/product_margins_list.jpeg'], } # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/product_visible_discount/__openerp__.py b/addons/product_visible_discount/__openerp__.py index d3c35dfe8b0..09cf5ce61fd 100644 --- a/addons/product_visible_discount/__openerp__.py +++ b/addons/product_visible_discount/__openerp__.py @@ -40,7 +40,6 @@ To this end, a new check box named 'Visible Discount' is added to the pricelist 'data': ['product_visible_discount_view.xml'], 'auto_install': False, 'installable': True, - 'certificate' : '001144718884654279901', 'images': ['images/pricelists_visible_discount.jpeg'], } diff --git a/addons/profile_tools/__openerp__.py b/addons/profile_tools/__openerp__.py index ddd1eba5ca0..17588a4de02 100644 --- a/addons/profile_tools/__openerp__.py +++ b/addons/profile_tools/__openerp__.py @@ -38,7 +38,6 @@ modules like share, lunch, pad, idea, survey and subscription. 'demo': [], 'installable': True, 'auto_install': False, - 'certificate' : '00557100228403879621', 'images': ['images/config_extra_Hidden.jpeg'], } # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/project/__openerp__.py b/addons/project/__openerp__.py index edf0100c8bc..85e33be777a 100644 --- a/addons/project/__openerp__.py +++ b/addons/project/__openerp__.py @@ -85,6 +85,5 @@ Dashboard / Reports for Project Management will include: 'application': True, 'css': ['static/src/css/project.css'], 'js': ['static/src/js/project.js'], - 'certificate': '0075116868317', } # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/project/project_view.xml b/addons/project/project_view.xml index 93d01a5619b..83d3414f74e 100644 --- a/addons/project/project_view.xml +++ b/addons/project/project_view.xml @@ -104,7 +104,7 @@ - + diff --git a/addons/project_gtd/__openerp__.py b/addons/project_gtd/__openerp__.py index ae1d5ee909c..eb05cdfa848 100644 --- a/addons/project_gtd/__openerp__.py +++ b/addons/project_gtd/__openerp__.py @@ -53,6 +53,5 @@ GTD rests on the principle that a person needs to move tasks out of the mind by 'installable': True, 'application': True, 'auto_install': False, - 'certificate': '0043525236301', } # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/project_issue/__openerp__.py b/addons/project_issue/__openerp__.py index 1c4006329a9..f35ca0251d3 100644 --- a/addons/project_issue/__openerp__.py +++ b/addons/project_issue/__openerp__.py @@ -61,7 +61,6 @@ It allows the manager to quickly check the issues, assign them and decide on the 'installable': True, 'auto_install': False, 'application': True, - 'certificate': '001236490750848623845', 'js': ['static/src/js/project_issue.js'], } diff --git a/addons/project_issue_sheet/__openerp__.py b/addons/project_issue_sheet/__openerp__.py index e12bc1a14cd..3eac04133d4 100644 --- a/addons/project_issue_sheet/__openerp__.py +++ b/addons/project_issue_sheet/__openerp__.py @@ -44,7 +44,6 @@ Worklogs can be maintained to signify number of hours spent by users to handle a 'demo': [], 'installable': True, 'auto_install': False, - 'certificate' : '00856032058128997037', } # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/project_long_term/__openerp__.py b/addons/project_long_term/__openerp__.py index 2968a5b035d..3a3307d2898 100644 --- a/addons/project_long_term/__openerp__.py +++ b/addons/project_long_term/__openerp__.py @@ -58,7 +58,6 @@ Features: ], 'installable': True, 'auto_install': False, - 'certificate': '001227470751077315069', } # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/project_mrp/__openerp__.py b/addons/project_mrp/__openerp__.py index dd20c1c9c1e..91212b92c1d 100644 --- a/addons/project_mrp/__openerp__.py +++ b/addons/project_mrp/__openerp__.py @@ -55,6 +55,5 @@ task is completed. 'test': ['test/project_task_procurement.yml'], 'installable': True, 'auto_install': False, - 'certificate': '0031976495453', } # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/project_retro_planning/__openerp__.py b/addons/project_retro_planning/__openerp__.py index e3e7a444676..4fc0dc41a75 100644 --- a/addons/project_retro_planning/__openerp__.py +++ b/addons/project_retro_planning/__openerp__.py @@ -37,6 +37,5 @@ the tasks will change accordingly. 'test': ['test/deadline_change.yml'], 'installable': True, 'auto_install': False, - 'certificate': '0057235475485', } # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/project_timesheet/__openerp__.py b/addons/project_timesheet/__openerp__.py index 805556c1a96..0651d7b9ce4 100644 --- a/addons/project_timesheet/__openerp__.py +++ b/addons/project_timesheet/__openerp__.py @@ -49,6 +49,5 @@ with the effect of creating, editing and deleting either ways. ], 'installable': True, 'auto_install': True, - 'certificate': '0075123647453', } # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/purchase/__openerp__.py b/addons/purchase/__openerp__.py index 38706d96670..a7c66344f4a 100644 --- a/addons/purchase/__openerp__.py +++ b/addons/purchase/__openerp__.py @@ -84,7 +84,6 @@ Dashboard / Reports for Purchase Management will include: ], 'installable': True, 'auto_install': False, - 'certificate': '0057234283549', 'application': True, } # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/purchase/purchase.py b/addons/purchase/purchase.py index 955d55b3825..d2060016866 100644 --- a/addons/purchase/purchase.py +++ b/addons/purchase/purchase.py @@ -179,7 +179,7 @@ class purchase_order(osv.osv): 'shipped_rate': fields.function(_shipped_rate, string='Received', type='float'), 'invoiced': fields.function(_invoiced, string='Invoice Received', type='boolean', help="It indicates that an invoice has been paid"), 'invoiced_rate': fields.function(_invoiced_rate, string='Invoiced', type='float'), - 'invoice_method': fields.selection([('manual','Based on Purchase Order lines'),('order','Based on generated draft invoice'),('picking','Bases on incoming shipments')], 'Invoicing Control', required=True, + 'invoice_method': fields.selection([('manual','Based on Purchase Order lines'),('order','Based on generated draft invoice'),('picking','Based on incoming shipments')], 'Invoicing Control', required=True, help="Based on Purchase Order lines: place individual lines in 'Invoice Control > Based on P.O. lines' from where you can selectively create an invoice.\n" \ "Based on generated invoice: create a draft invoice you can validate later.\n" \ "Bases on incoming shipments: let you create an invoice when receptions are validated." diff --git a/addons/purchase/purchase_view.xml b/addons/purchase/purchase_view.xml index 759c0561631..7702d182b09 100644 --- a/addons/purchase/purchase_view.xml +++ b/addons/purchase/purchase_view.xml @@ -367,7 +367,7 @@ Quotations ir.actions.act_window purchase.order - {} + {'search_default_draft': 1, 'search_default_to_approve': 1} [('state','in',('draft','sent','confirmed'))] tree,form,graph,calendar diff --git a/addons/purchase/report/request_quotation.rml b/addons/purchase/report/request_quotation.rml index 9d23e97b385..dc222a42398 100644 --- a/addons/purchase/report/request_quotation.rml +++ b/addons/purchase/report/request_quotation.rml @@ -2,7 +2,7 @@ diff --git a/addons/purchase_analytic_plans/__openerp__.py b/addons/purchase_analytic_plans/__openerp__.py index 801551c7a07..98a1ee2a704 100644 --- a/addons/purchase_analytic_plans/__openerp__.py +++ b/addons/purchase_analytic_plans/__openerp__.py @@ -39,6 +39,5 @@ on a supplier purchase order into several accounts and analytic plans. 'demo': [], 'installable': True, 'auto_install': False, - 'certificate': '0062176518909', } # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/purchase_analytic_plans/purchase_analytic_plans_view.xml b/addons/purchase_analytic_plans/purchase_analytic_plans_view.xml index d224b9800f7..6feb6d27bf2 100644 --- a/addons/purchase_analytic_plans/purchase_analytic_plans_view.xml +++ b/addons/purchase_analytic_plans/purchase_analytic_plans_view.xml @@ -13,5 +13,30 @@
+ + purchase.order.form.analytic.inherit + purchase.order + + + + + + + + + + + purchase.order.form.editable.list + purchase.order + + + + + + + + + diff --git a/addons/purchase_double_validation/__openerp__.py b/addons/purchase_double_validation/__openerp__.py index d05870ca951..8c56f2af9ed 100644 --- a/addons/purchase_double_validation/__openerp__.py +++ b/addons/purchase_double_validation/__openerp__.py @@ -46,9 +46,7 @@ exceeds minimum amount set by configuration wizard. ], 'demo': [], 'installable': True, - 'auto_install': False, - 'certificate' : '00436592682510544157', - + 'auto_install': False } # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/purchase_double_validation/board_purchase_view.xml b/addons/purchase_double_validation/board_purchase_view.xml index 0557963fcb1..c2cc4df88b8 100644 --- a/addons/purchase_double_validation/board_purchase_view.xml +++ b/addons/purchase_double_validation/board_purchase_view.xml @@ -3,7 +3,7 @@ - Purchase Order Waiting Approval + Purchase Orders Waiting Approval ir.actions.act_window purchase.order form @@ -17,7 +17,7 @@ - + diff --git a/addons/purchase_requisition/__openerp__.py b/addons/purchase_requisition/__openerp__.py index f2492b207c0..2ba0ad95e09 100644 --- a/addons/purchase_requisition/__openerp__.py +++ b/addons/purchase_requisition/__openerp__.py @@ -32,7 +32,7 @@ When a purchase order is created, you now have the opportunity to save the related requisition. This new object will regroup and will allow you to easily keep track and order all your purchase orders. """, - 'depends' : ['purchase','mrp'], + 'depends' : ['purchase'], 'demo': ['purchase_requisition_demo.xml'], 'data': ['security/purchase_tender.xml', 'wizard/purchase_requisition_partner_view.xml', @@ -48,7 +48,6 @@ keep track and order all your purchase orders. 'test/cancel_purchase_requisition.yml', ], 'installable': True, - 'certificate': '001023264099823179629', } # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/report_designer/__openerp__.py b/addons/report_designer/__openerp__.py index 3a2b9e95ea5..2bfba48b204 100644 --- a/addons/report_designer/__openerp__.py +++ b/addons/report_designer/__openerp__.py @@ -38,7 +38,6 @@ modules like base_report_designer and base_report_creator. 'demo': [], 'installable': True, 'auto_install': False, - 'certificate' : '00764037194670093149', 'images': ['images/config_reporting_Hidden.jpeg'], } # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/report_intrastat/__openerp__.py b/addons/report_intrastat/__openerp__.py index aa4fa31a0b0..0fa57977db1 100644 --- a/addons/report_intrastat/__openerp__.py +++ b/addons/report_intrastat/__openerp__.py @@ -43,7 +43,6 @@ European Union.""", 'test': ['test/report_intrastat_report.yml'], 'installable': True, 'auto_install': False, - 'certificate': '0056982189085', 'images': ['images/country_intrastat_code.jpeg','images/intrastat_code.jpeg'], } # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/report_webkit/__openerp__.py b/addons/report_webkit/__openerp__.py index 28ad16b63d4..5b88cb78eb4 100644 --- a/addons/report_webkit/__openerp__.py +++ b/addons/report_webkit/__openerp__.py @@ -91,7 +91,6 @@ TODO: ], 'installable': True, 'auto_install': False, - 'certificate': '001159699313338995949', 'images': ['images/companies_webkit.jpeg','images/header_html.jpeg','images/header_img.jpeg'], } diff --git a/addons/report_webkit_sample/__openerp__.py b/addons/report_webkit_sample/__openerp__.py index d10c336609e..7ea85759732 100644 --- a/addons/report_webkit_sample/__openerp__.py +++ b/addons/report_webkit_sample/__openerp__.py @@ -49,7 +49,6 @@ You have to create the print buttons by calling the wizard. For more details see 'data': ['report_webkit_html_view.xml'], 'installable': True, 'auto_install': False, - 'certificate': '00436592682591421981', 'images': ['images/webkit_invoice_report.jpeg'], } diff --git a/addons/resource/__openerp__.py b/addons/resource/__openerp__.py index 94c55105c2a..b8a9f57c910 100644 --- a/addons/resource/__openerp__.py +++ b/addons/resource/__openerp__.py @@ -47,7 +47,6 @@ associated to every resource. It also manages the leaves of every resource. ], 'installable': True, 'auto_install': False, - 'certificate': '00746371192190459469', 'images': ['images/resource_leaves_calendar.jpeg','images/resource_leaves_form.jpeg'], } diff --git a/addons/sale/__openerp__.py b/addons/sale/__openerp__.py index 13f0fb53696..d76ea064c2c 100644 --- a/addons/sale/__openerp__.py +++ b/addons/sale/__openerp__.py @@ -88,6 +88,5 @@ The Dashboard for the Sales Manager will include 'installable': True, 'auto_install': False, 'application': True, - 'certificate': '0058103601429', } # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/sale_analytic_plans/__openerp__.py b/addons/sale_analytic_plans/__openerp__.py index df33feae578..5f4d980a339 100644 --- a/addons/sale_analytic_plans/__openerp__.py +++ b/addons/sale_analytic_plans/__openerp__.py @@ -37,6 +37,5 @@ Using this module you will be able to link analytic accounts to sales orders. 'demo': [], 'installable': True, 'auto_install': False, - 'certificate': '0066055860861', } # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/sale_crm/__openerp__.py b/addons/sale_crm/__openerp__.py index 4846b61f624..88608af8922 100644 --- a/addons/sale_crm/__openerp__.py +++ b/addons/sale_crm/__openerp__.py @@ -49,6 +49,5 @@ modules. 'test': ['test/sale_crm.yml'], 'installable': True, 'auto_install': True, - 'certificate': '0064360130141', } # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/sale_journal/__openerp__.py b/addons/sale_journal/__openerp__.py index 9ca3858f817..30a6a281c49 100644 --- a/addons/sale_journal/__openerp__.py +++ b/addons/sale_journal/__openerp__.py @@ -61,6 +61,5 @@ Some statistics by journals are provided. 'test': [ ], 'installable': True, 'auto_install': False, - 'certificate': '0077661619085', } # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/sale_margin/__openerp__.py b/addons/sale_margin/__openerp__.py index 6cacdcda7b4..9b393b6c5ad 100644 --- a/addons/sale_margin/__openerp__.py +++ b/addons/sale_margin/__openerp__.py @@ -37,7 +37,6 @@ Price and Cost Price. 'data':['security/ir.model.access.csv','sale_margin_view.xml'], 'auto_install': False, 'installable': True, - 'certificate' : '001165700015525701661', } # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/sale_mrp/__openerp__.py b/addons/sale_mrp/__openerp__.py index c93fdcc91fd..bc9b84cd471 100644 --- a/addons/sale_mrp/__openerp__.py +++ b/addons/sale_mrp/__openerp__.py @@ -43,6 +43,5 @@ from sales order. It adds sales name and sales Reference on production order. 'test':['test/sale_mrp.yml'], 'installable': True, 'auto_install': True, - 'certificate': '00395598976683092013', } # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/sale_order_dates/__openerp__.py b/addons/sale_order_dates/__openerp__.py index 7c3360f3547..6db8f2b27d9 100644 --- a/addons/sale_order_dates/__openerp__.py +++ b/addons/sale_order_dates/__openerp__.py @@ -43,7 +43,6 @@ You can add the following additional dates to a sale order: 'test': [], 'installable': True, 'auto_install': False, - 'certificate' : '00867497685972962845', } # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/share/__openerp__.py b/addons/share/__openerp__.py index 87a2f68bb04..94eccba2a56 100644 --- a/addons/share/__openerp__.py +++ b/addons/share/__openerp__.py @@ -50,7 +50,6 @@ synchronization with other companies. ], 'installable': True, 'web': True, - 'certificate' : '001301246528927038493', 'js': ['static/src/js/share.js'], 'css': ['static/src/css/share.css'], 'qweb' : ['static/src/xml/*.xml'], diff --git a/addons/stock/__openerp__.py b/addons/stock/__openerp__.py index b7d9ec1ceb9..966186121b6 100644 --- a/addons/stock/__openerp__.py +++ b/addons/stock/__openerp__.py @@ -98,7 +98,6 @@ Dashboard / Reports for Warehouse Management will include: 'installable': True, 'application': True, 'auto_install': False, - 'certificate': '0055421559965', 'css': [ 'static/src/css/stock.css' ], } diff --git a/addons/stock/res_config.py b/addons/stock/res_config.py index 888488dc586..a4094cb9afc 100644 --- a/addons/stock/res_config.py +++ b/addons/stock/res_config.py @@ -46,7 +46,7 @@ class stock_config_settings(osv.osv_memory): manage product manufacturing chains, manage default locations per product, define routes within your warehouse according to business needs, etc. This installs the module stock_location."""), - 'group_uom': fields.boolean("Manage different units of measure per products", + 'group_uom': fields.boolean("Manage different units of measure for products", implied_group='product.group_uom', help="""Allows you to select and maintain different units of measure for products."""), 'group_uos': fields.boolean("Invoice products in a different unit of measure than the sale order", diff --git a/addons/stock/stock.py b/addons/stock/stock.py index 2a03a7befc4..efd596684cb 100644 --- a/addons/stock/stock.py +++ b/addons/stock/stock.py @@ -729,14 +729,16 @@ class stock_picking(osv.osv): """ Confirms picking. @return: True """ + pickings = self.browse(cr, uid, ids, context=context) + for picking in pickings: + if picking.state <> 'confirmed': + self.confirm_send_note(cr, uid, [picking.id], context=context) self.write(cr, uid, ids, {'state': 'confirmed'}) todo = [] - for picking in self.browse(cr, uid, ids, context=context): + for picking in pickings: for r in picking.move_lines: if r.state == 'draft': todo.append(r.id) - - todo = self.action_explode(cr, uid, todo, context) if len(todo): self.pool.get('stock.move').action_confirm(cr, uid, todo, context=context) @@ -1170,8 +1172,9 @@ class stock_picking(osv.osv): return True for move in pick.move_lines: if move.state == 'done': - raise osv.except_osv(_('Error!'), _('You cannot cancel picking because stock move is in done state!')) + raise osv.except_osv(_('Error!'), _('You cannot cancel the picking as some moves have been done. You should cancel the picking lines.')) return True + def unlink(self, cr, uid, ids, context=None): move_obj = self.pool.get('stock.move') if context is None: @@ -1385,17 +1388,21 @@ class stock_picking(osv.osv): # OpenChatter methods and notifications # ----------------------------------------- - def _get_document_type(self, type): + def _get_document_type(self, cr, uid, obj, context=None): type_dict = { - 'out': 'Delivery order', - 'in': 'Shipment', - 'internal': 'Internal picking', + 'out': _('Delivery order'), + 'in': _('Shipment'), + 'internal': _('Internal picking'), } - return type_dict.get(type, 'Stock picking') + return type_dict.get(obj.type, _('Picking')) def create_send_note(self, cr, uid, ids, context=None): for obj in self.browse(cr, uid, ids, context=context): - self.message_post(cr, uid, [obj.id], body=_("%s has been created.") % (self._get_document_type(obj.type)), context=context) + self.message_post(cr, uid, [obj.id], body=_("%s has been created.") % (self._get_document_type(cr, uid, obj, context=context)), context=context) + + def confirm_send_note(self, cr, uid, ids, context=None): + for obj in self.browse(cr, uid, ids, context=context): + self.message_post(cr, uid, [obj.id], body=_("%s has been confirmed.") % (self._get_document_type(cr, uid, obj, context=context)), context=context) def scrap_send_note(self, cr, uid, ids, quantity, uom, name, context=None): return self.message_post(cr, uid, ids, body= _("%s %s %s has been moved to scrap.") % (quantity, uom, name), context=context) @@ -1405,16 +1412,16 @@ class stock_picking(osv.osv): def ship_done_send_note(self, cr, uid, ids, context=None): type_dict = { - 'out': 'delivered', - 'in': 'received', - 'internal': 'moved', + 'out': _("Products have been delivered."), + 'in': _("Products have been received."), + 'internal': _("Products have been moved."), } for obj in self.browse(cr, uid, ids, context=context): - self.message_post(cr, uid, [obj.id], body=_("Products have been %s.") % (type_dict.get(obj.type, 'move done')), context=context) + self.message_post(cr, uid, [obj.id], body=type_dict.get(obj.type, _('Products have been moved.')), context=context) def ship_cancel_send_note(self, cr, uid, ids, context=None): for obj in self.browse(cr, uid, ids, context=context): - self.message_post(cr, uid, [obj.id], body=_("%s has been cancelled.") % (self._get_document_type(obj.type)), context=context) + self.message_post(cr, uid, [obj.id], body=_("%s has been cancelled.") % (self._get_document_type(cr, uid, obj, context=context)), context=context) stock_picking() @@ -1501,7 +1508,7 @@ class stock_production_lot(osv.osv): 'product_id': fields.many2one('product.product', 'Product', required=True, domain=[('type', '<>', 'service')]), 'date': fields.datetime('Creation Date', required=True), 'stock_available': fields.function(_get_stock, fnct_search=_stock_search, type="float", string="Available", select=True, - help="Current quantity of products with this Production Lot Number available in company warehouses", + help="Current quantity of products with this Serial Number available in company warehouses", digits_compute=dp.get_precision('Product Unit of Measure')), 'revisions': fields.one2many('stock.production.lot.revision', 'lot_id', 'Revisions'), 'company_id': fields.many2one('res.company', 'Company', select=True), @@ -1839,8 +1846,8 @@ class stock_move(osv.osv): warning = {} if (location.usage == 'internal') and (product_qty > (amount_actual or 0.0)): warning = { - 'title': _('Insufficient Stock in Lot !'), - 'message': _('You are moving %.2f %s products but only %.2f %s available in this lot.') % (product_qty, uom.name, amount_actual, uom.name) + 'title': _('Insufficient Stock for Serial Number !'), + 'message': _('You are moving %.2f %s but only %.2f %s available for this serial number.') % (product_qty, uom.name, amount_actual, uom.name) } return {'warning': warning} diff --git a/addons/stock/wizard/stock_invoice_onshipping_view.xml b/addons/stock/wizard/stock_invoice_onshipping_view.xml index 10d748624fc..a65afb377b3 100644 --- a/addons/stock/wizard/stock_invoice_onshipping_view.xml +++ b/addons/stock/wizard/stock_invoice_onshipping_view.xml @@ -21,7 +21,7 @@
- + + diff --git a/addons/stock/wizard/stock_move_view.xml b/addons/stock/wizard/stock_move_view.xml index 3df336b5e30..5dc0d0d824c 100644 --- a/addons/stock/wizard/stock_move_view.xml +++ b/addons/stock/wizard/stock_move_view.xml @@ -109,7 +109,9 @@
diff --git a/addons/stock_invoice_directly/__openerp__.py b/addons/stock_invoice_directly/__openerp__.py index 57b4f8e38bb..d6f8472a8c6 100644 --- a/addons/stock_invoice_directly/__openerp__.py +++ b/addons/stock_invoice_directly/__openerp__.py @@ -40,6 +40,5 @@ wizard if the delivery is to be invoiced. 'test': ['test/stock_invoice_directly.yml'], 'installable': True, 'auto_install': False, - 'certificate': '0081385081261', } # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/stock_location/__openerp__.py b/addons/stock_location/__openerp__.py index 8cc1790e7de..9d5386863e6 100644 --- a/addons/stock_location/__openerp__.py +++ b/addons/stock_location/__openerp__.py @@ -107,7 +107,6 @@ You can use the demo data as follow: 'test/stock_location_push_flow.yml', ], 'auto_install': False, - 'certificate': '0046505115101', } # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/stock_no_autopicking/__openerp__.py b/addons/stock_no_autopicking/__openerp__.py index d8fbb44d8bf..daae84252ad 100644 --- a/addons/stock_no_autopicking/__openerp__.py +++ b/addons/stock_no_autopicking/__openerp__.py @@ -41,6 +41,5 @@ routing of the assembly operation. 'test': ['test/stock_no_autopicking.yml'], 'installable': True, 'auto_install': False, - 'certificate': '0075124168925', } # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/stock_planning/__openerp__.py b/addons/stock_planning/__openerp__.py index 7e38019e3f3..ff626c63679 100644 --- a/addons/stock_planning/__openerp__.py +++ b/addons/stock_planning/__openerp__.py @@ -243,7 +243,6 @@ Remarks: 'test': ['test/stock_planning.yml'], 'auto_install': False, 'installable': True, - 'certificate' : '00872589676639788061', } # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/subscription/__openerp__.py b/addons/subscription/__openerp__.py index d644daa15e6..416c691f043 100644 --- a/addons/subscription/__openerp__.py +++ b/addons/subscription/__openerp__.py @@ -42,7 +42,6 @@ e.g. To have an invoice generated automatically periodically: 'demo': ['subscription_demo.xml',], 'installable': True, 'auto_install': False, - 'certificate': '0029454782573', 'images': ['images/subscription_document_fields.jpeg','images/subscriptions.jpeg'], } # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/survey/__openerp__.py b/addons/survey/__openerp__.py index 40eb3073d61..acd76ba9a6b 100644 --- a/addons/survey/__openerp__.py +++ b/addons/survey/__openerp__.py @@ -58,7 +58,6 @@ user name and password for the invitation of the survey. ], 'installable': True, 'auto_install': False, - 'certificate' : '001131639736864143245', 'images': ['images/survey_answers.jpeg','images/survey_pages.jpeg','images/surveys.jpeg'], 'css': ['static/src/css/survey.css','static/css/survey.css'], } diff --git a/addons/warning/__openerp__.py b/addons/warning/__openerp__.py index c03dc1ec488..e44b9624251 100644 --- a/addons/warning/__openerp__.py +++ b/addons/warning/__openerp__.py @@ -37,7 +37,6 @@ picking and invoice. The message is triggered by the form's onchange event. 'demo': [], 'installable': True, 'auto_install': False, - 'certificate': '0080334018749', 'images': ['images/customers_warnings.jpeg','images/sale_order_warning.jpeg'], } # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/warning/warning.py b/addons/warning/warning.py index f04f97d6f8a..9e6c2a0a2b8 100644 --- a/addons/warning/warning.py +++ b/addons/warning/warning.py @@ -174,6 +174,60 @@ class stock_picking(osv.osv): stock_picking() +# FIXME:(class stock_picking_in and stock_picking_out) this is a temporary workaround because of a framework bug (ref: lp:996816). +# It should be removed as soon as the bug is fixed +class stock_picking_in(osv.osv): + _inherit = 'stock.picking.in' + + def onchange_partner_in(self, cr, uid, context, partner_id=None): + if not partner_id: + return {} + partner = self.pool.get('res.partner').browse(cr, uid, partner_id, context=context) + warning = {} + title = False + message = False + if partner.picking_warn != 'no-message': + if partner.picking_warn == 'block': + raise osv.except_osv(_('Alert for %s !') % (partner.name), partner.picking_warn_msg) + title = _("Warning for %s") % partner.name + message = partner.picking_warn_msg + warning = { + 'title': title, + 'message': message + } + result = super(stock_picking_in, self).onchange_partner_in(cr, uid, context, partner_id) + if result.get('warning',False): + warning['title'] = title and title +' & '+ result['warning']['title'] or result['warning']['title'] + warning['message'] = message and message + ' ' + result['warning']['message'] or result['warning']['message'] + + return {'value': result.get('value',{}), 'warning':warning} + +class stock_picking_out(osv.osv): + _inherit = 'stock.picking.out' + + def onchange_partner_in(self, cr, uid, context, partner_id=None): + if not partner_id: + return {} + partner = self.pool.get('res.partner').browse(cr, uid, partner_id, context=context) + warning = {} + title = False + message = False + if partner.picking_warn != 'no-message': + if partner.picking_warn == 'block': + raise osv.except_osv(_('Alert for %s !') % (partner.name), partner.picking_warn_msg) + title = _("Warning for %s") % partner.name + message = partner.picking_warn_msg + warning = { + 'title': title, + 'message': message + } + result = super(stock_picking_out, self).onchange_partner_in(cr, uid, context, partner_id) + if result.get('warning',False): + warning['title'] = title and title +' & '+ result['warning']['title'] or result['warning']['title'] + warning['message'] = message and message + ' ' + result['warning']['message'] or result['warning']['message'] + + return {'value': result.get('value',{}), 'warning':warning} + class product_product(osv.osv): _inherit = 'product.product' _columns = { @@ -228,8 +282,8 @@ sale_order_line() class purchase_order_line(osv.osv): _inherit = 'purchase.order.line' - def product_id_change(self,cr, uid, ids, pricelist, product, qty, uom, - partner_id, date_order=False, fiscal_position=False, date_planned=False, + def onchange_product_id(self,cr, uid, ids, pricelist, product, qty, uom, + partner_id, date_order=False, fiscal_position_id=False, date_planned=False, name=False, price_unit=False, notes=False, context=None): warning = {} if not product: @@ -247,8 +301,8 @@ class purchase_order_line(osv.osv): warning['title'] = title warning['message'] = message - result = super(purchase_order_line, self).product_id_change(cr, uid, ids, pricelist, product, qty, uom, - partner_id, date_order, fiscal_position) + result = super(purchase_order_line, self).onchange_product_id(cr, uid, ids, pricelist, product, qty, uom, + partner_id, date_order, fiscal_position_id) if result.get('warning',False): warning['title'] = title and title +' & '+result['warning']['title'] or result['warning']['title'] diff --git a/addons/web_linkedin/static/src/js/linkedin.js b/addons/web_linkedin/static/src/js/linkedin.js index 3cdfbfff410..863e51e913f 100644 --- a/addons/web_linkedin/static/src/js/linkedin.js +++ b/addons/web_linkedin/static/src/js/linkedin.js @@ -88,7 +88,7 @@ openerp.web_linkedin = function(instance) { selected_entity: function(entity) { var self = this; this.create_on_change(entity).then(function(to_change) { - self.view.on_processed_onchange({value:to_change}); + self.view.set_values(to_change); }); }, create_on_change: function(entity) {