diff options
| author | Ajay Chauhan (OpenERP) <cha@tinyerp.com> | 2012-08-16 14:21:47 +0530 |
|---|---|---|
| committer | Ajay Chauhan (OpenERP) <cha@tinyerp.com> | 2012-08-16 14:21:47 +0530 |
| commit | e1e730ffbcaf58ffcc92b7bdf88b779bb3ec714c (patch) | |
| tree | 1349327760559ba5eec43934bd48d4f03b4fede6 | |
| parent | 463d06651ad84d62dcc9476d19962e18dec6ae92 (diff) | |
| parent | f4f7de136921528f4b465629ff756b367ee0bba7 (diff) | |
[Merge] Merge with main addons.
bzr revid: cha@tinyerp.com-20120816085147-o1wzevd3cj85vm2y
592 files changed, 13364 insertions, 2902 deletions
diff --git a/addons/account/__init__.py b/addons/account/__init__.py index 90fbdb83980..bc27e14380c 100644 --- a/addons/account/__init__.py +++ b/addons/account/__init__.py @@ -19,10 +19,10 @@ # ############################################################################## +import partner import account import installer import project -import partner import account_invoice import account_bank_statement import account_bank diff --git a/addons/account/account_bank_view.xml b/addons/account/account_bank_view.xml index 4b3436c8a51..8ceb8a91885 100644 --- a/addons/account/account_bank_view.xml +++ b/addons/account/account_bank_view.xml @@ -9,7 +9,6 @@ <record id="view_partner_bank_form_inherit" model="ir.ui.view"> <field name="name">Partner Bank Accounts - Journal</field> <field name="model">res.partner.bank</field> - <field name="type">form</field> <field name="inherit_id" ref="base.view_partner_bank_form"/> <field name="arch" type="xml"> <group name="bank" position="after"> @@ -26,7 +25,6 @@ <record id="view_partner_bank_tree_add_currency" model="ir.ui.view"> <field name="name">Partner Bank Accounts - Add currency on tree</field> <field name="model">res.partner.bank</field> - <field name="type">tree</field> <field name="inherit_id" ref="base.view_partner_bank_tree"/> <field name="arch" type="xml"> <field name="acc_number" position="after"> diff --git a/addons/account/account_installer.xml b/addons/account/account_installer.xml index d2661674bae..c92d4eda602 100644 --- a/addons/account/account_installer.xml +++ b/addons/account/account_installer.xml @@ -3,7 +3,6 @@ <record id="view_account_configuration_installer" model="ir.ui.view"> <field name="name">account.installer.form</field> <field name="model">account.installer</field> - <field name="type">form</field> <field name="inherit_id" ref="base.res_config_installer"/> <field name="arch" type="xml"> <form position="attributes" version="7.0"> diff --git a/addons/account/account_invoice.py b/addons/account/account_invoice.py index 064ba419ebd..012bde42eff 100644 --- a/addons/account/account_invoice.py +++ b/addons/account/account_invoice.py @@ -1351,11 +1351,11 @@ class account_invoice_line(osv.osv): 'uos_id': fields.many2one('product.uom', 'Unit of Measure', ondelete='set null'), 'product_id': fields.many2one('product.product', 'Product', ondelete='set null'), 'account_id': fields.many2one('account.account', 'Account', required=True, domain=[('type','<>','view'), ('type', '<>', 'closed')], help="The income or expense account related to the selected product."), - 'price_unit': fields.float('Unit Price', required=True, digits_compute= dp.get_precision('Account')), + 'price_unit': fields.float('Unit Price', required=True, digits_compute= dp.get_precision('Product Price')), 'price_subtotal': fields.function(_amount_line, string='Subtotal', type="float", digits_compute= dp.get_precision('Account'), store=True), - 'quantity': fields.float('Quantity', required=True), - 'discount': fields.float('Discount (%)', digits_compute= dp.get_precision('Account')), + 'quantity': fields.float('Quantity', digits_compute= dp.get_precision('Product Unit of Measure'), required=True), + 'discount': fields.float('Discount (%)', digits_compute= dp.get_precision('Discount')), 'invoice_line_tax_id': fields.many2many('account.tax', 'account_invoice_line_tax', 'invoice_line_id', 'tax_id', 'Taxes', domain=[('parent_id','=',False)]), 'account_analytic_id': fields.many2one('account.analytic.account', 'Analytic Account'), 'company_id': fields.related('invoice_id','company_id',type='many2one',relation='res.company',string='Company', store=True, readonly=True), diff --git a/addons/account/account_invoice_view.xml b/addons/account/account_invoice_view.xml index d04030c909e..143c5514141 100644 --- a/addons/account/account_invoice_view.xml +++ b/addons/account/account_invoice_view.xml @@ -6,7 +6,6 @@ <record id="view_invoice_line_calendar" model="ir.ui.view"> <field name="name">account.invoice.calendar</field> <field name="model">account.invoice</field> - <field name="type">calendar</field> <field name="arch" type="xml"> <calendar string="Invoices" color="journal_id" date_start="date_invoice"> <field name="partner_id"/> @@ -18,7 +17,6 @@ <record model="ir.ui.view" id="view_invoice_graph"> <field name="name">account.invoice.graph</field> <field name="model">account.invoice</field> - <field name="type">graph</field> <field name="arch" type="xml"> <graph string="Invoices" type="bar"> <field name="partner_id"/> @@ -30,7 +28,6 @@ <record id="view_invoice_line_tree" model="ir.ui.view"> <field name="name">account.invoice.line.tree</field> <field name="model">account.invoice.line</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Invoice Line"> <field name="name"/> @@ -47,7 +44,6 @@ <record id="view_invoice_line_form" model="ir.ui.view"> <field name="name">account.invoice.line.form</field> <field name="model">account.invoice.line</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Invoice Line" version="7.0"> <group> @@ -78,7 +74,6 @@ <record id="view_invoice_tax_tree" model="ir.ui.view"> <field name="name">account.invoice.tax.tree</field> <field name="model">account.invoice.tax</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Manual Invoice Taxes"> <field name="sequence"/> @@ -94,7 +89,6 @@ <record id="view_invoice_tax_form" model="ir.ui.view"> <field name="name">account.invoice.tax.form</field> <field name="model">account.invoice.tax</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Manual Invoice Taxes" version="7.0"> <group col="4"> @@ -120,7 +114,6 @@ <record id="invoice_tree" model="ir.ui.view"> <field name="name">account.invoice.tree</field> <field name="model">account.invoice</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree colors="blue:state == 'draft';black:state in ('proforma','proforma2','open');gray:state == 'cancel'" string="Invoice"> <field name="partner_id" groups="base.group_user"/> @@ -146,10 +139,9 @@ <record id="invoice_supplier_form" model="ir.ui.view"> <field name="name">account.invoice.supplier.form</field> <field name="model">account.invoice</field> - <field name="type">form</field> <field name="priority">2</field> <field name="arch" type="xml"> - <form version="7.0"> + <form string="Supplier Invoice" version="7.0"> <header> <span groups="base.group_user"> <button name="invoice_open" states="draft,proforma2" string="Validate" class="oe_highlight"/> @@ -281,6 +273,7 @@ </sheet> <div class="oe_chatter"> <field name="message_ids" widget="mail_thread"/> + <field name="message_follower_ids" widget="mail_followers"/> </div> </form> </field> @@ -289,9 +282,8 @@ <record id="invoice_form" model="ir.ui.view"> <field name="name">account.invoice.form</field> <field name="model">account.invoice</field> - <field name="type">form</field> <field name="arch" type="xml"> - <form version="7.0"> + <form string="Invoice" version="7.0"> <header> <span groups="base.group_user"> <button name="action_invoice_sent" type="object" string="Send by Email" attrs="{'invisible':['|',('sent','=',True), ('state', '!=', 'open')]}" class="oe_highlight"/> @@ -435,6 +427,7 @@ </sheet> <div class="oe_chatter"> <field name="message_ids" colspan="4" widget="mail_thread" nolabel="1"/> + <field name="message_follower_ids" widget="mail_followers"/> </div> </form> </field> @@ -443,7 +436,6 @@ <record id="view_account_invoice_filter" model="ir.ui.view"> <field name="name">account.invoice.select</field> <field name="model">account.invoice</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Search Invoice"> <field name="number" string="Invoice" filter_domain="['|', ('number','ilike',self),('origin','ilike',self)]"/> diff --git a/addons/account/account_view.xml b/addons/account/account_view.xml index 24d21cff3e8..5bf45aab487 100644 --- a/addons/account/account_view.xml +++ b/addons/account/account_view.xml @@ -9,9 +9,8 @@ <record id="view_account_fiscalyear_form" model="ir.ui.view"> <field name="name">account.fiscalyear.form</field> <field name="model">account.fiscalyear</field> - <field name="type">form</field> <field name="arch" type="xml"> - <form version="7.0"> + <form string="Fiscal year" version="7.0"> <header> <button name="create_period" states="draft" string="Create Monthly Periods" type="object" class="oe_highlight"/> <button name="create_period3" states="draft" string="Create 3 Months Periods" type="object" class="oe_highlight"/> @@ -47,7 +46,6 @@ <record id="view_account_fiscalyear_tree" model="ir.ui.view"> <field name="name">account.fiscalyear.tree</field> <field name="model">account.fiscalyear</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree colors="blue:state == 'draft';gray:state == 'done' " string="Fiscalyear"> <field name="code"/> @@ -60,7 +58,6 @@ <record id="view_account_fiscalyear_search" model="ir.ui.view"> <field name="name">account.fiscalyear.search</field> <field name="model">account.fiscalyear</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Search Fiscalyear"> <field name="name" filter_domain="['|', ('name','ilike',self), ('code','ilike',self)]" string="Fiscal Year"/> @@ -102,9 +99,8 @@ <record id="view_account_period_form" model="ir.ui.view"> <field name="name">account.period.form</field> <field name="model">account.period</field> - <field name="type">form</field> <field name="arch" type="xml"> - <form version="7.0"> + <form string="Account Period" version="7.0"> <header> <button name="action_draft" states="done" string="Set to Draft" type="object" groups="account.group_account_manager"/> <field name="state" widget="statusbar" nolabel="1"/> @@ -133,7 +129,6 @@ <record id="view_account_period_tree" model="ir.ui.view"> <field name="name">account.period.tree</field> <field name="model">account.period</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree colors="blue:state == 'draft';gray:state == 'done' " string="Period"> <field name="name"/> @@ -150,7 +145,6 @@ <record id="view_account_period_search" model="ir.ui.view"> <field name="name">account.period.search</field> <field name="model">account.period</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Search Period"> <field name="name" filter_domain="['|', ('name','ilike',self), ('code','ilike',self)]" string="Period"/> @@ -183,7 +177,6 @@ <record id="view_account_form" model="ir.ui.view"> <field name="name">account.account.form</field> <field name="model">account.account</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Account" version="7.0"> <label for="code" class="oe_edit_only" string="Account Code and Name"/> @@ -225,7 +218,6 @@ <record id="view_account_search" model="ir.ui.view"> <field name="name">account.account.search</field> <field name="model">account.account</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Accounts"> <field name="name" filter_domain="['|', ('name','ilike',self), ('code','ilike',self)]" string="Account"/> @@ -244,7 +236,6 @@ <record id="view_account_list" model="ir.ui.view"> <field name="name">account.account.list</field> <field name="model">account.account</field> - <field name="type">tree</field> <field name="field_parent">child_id</field> <field name="arch" type="xml"> <tree colors="blue:type == 'view';black:type in ('other','receivable','payable','consolidation');gray:type == 'closed'" string="Chart of accounts" toolbar="1" > @@ -264,7 +255,6 @@ <record id="view_treasory_graph" model="ir.ui.view"> <field name="name">account.treasury.graph</field> <field name="model">account.account</field> - <field name="type">graph</field> <field name="arch" type="xml"> <graph string="Treasury Analysis" type="bar"> <field name="name"/> @@ -298,7 +288,6 @@ <record id="view_account_tree" model="ir.ui.view"> <field name="name">account.account.tree</field> <field name="model">account.account</field> - <field name="type">tree</field> <field name="field_parent">child_id</field> <field name="arch" type="xml"> <tree colors="blue:type == 'view';black:type in ('other','receivable','payable','consolidation');gray:type == 'closed'" string="Chart of accounts" toolbar="1" > @@ -325,7 +314,6 @@ <record id="view_account_gain_loss_tree" model="ir.ui.view"> <field name="name">Unrealized Gain or Loss</field> <field name="model">account.account</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Unrealized Gains and losses"> <field name="code"/> @@ -379,7 +367,6 @@ <record id="view_journal_column_form" model="ir.ui.view"> <field name="name">account.journal.column.form</field> <field name="model">account.journal.column</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Journal Column" version="7.0"> <field name="name"/> @@ -391,7 +378,6 @@ <record id="view_journal_column_tree" model="ir.ui.view"> <field name="name">account.journal.column.tree</field> <field name="model">account.journal.column</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Journal Column"> <field name="sequence"/> @@ -403,7 +389,6 @@ <record id="view_account_journal_view_search" model="ir.ui.view"> <field name="name">account.journal.view.search</field> <field name="model">account.journal.view</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Journal View"> <field name="name" string="Journal View"/> @@ -413,7 +398,6 @@ <record id="view_account_journal_view_tree" model="ir.ui.view"> <field name="name">account.journal.view.tree</field> <field name="model">account.journal.view</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Journal View"> <field name="name"/> @@ -423,7 +407,6 @@ <record id="view_account_journal_view_form" model="ir.ui.view"> <field name="name">account.journal.view.form</field> <field name="model">account.journal.view</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Journal View" version="7.0"> <field name="name"/> @@ -460,7 +443,6 @@ <record id="view_account_journal_tree" model="ir.ui.view"> <field name="name">account.journal.tree</field> <field name="model">account.journal</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Account Journal"> <field name="code"/> @@ -474,7 +456,6 @@ <record id="view_account_journal_search" model="ir.ui.view"> <field name="name">account.journal.search</field> <field name="model">account.journal</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Search Account Journal"> <field name="name" filter_domain="['|', ('name','ilike',self), ('code','ilike',self)]" string="Journal"/> @@ -494,7 +475,6 @@ <record id="view_account_journal_form" model="ir.ui.view"> <field name="name">account.journal.form</field> <field name="model">account.journal</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Account Journal" version="7.0"> <div class="oe_title"> @@ -581,7 +561,6 @@ <record id="view_account_bank_statement_filter" model="ir.ui.view"> <field name="name">account.cash.statement.select</field> <field name="model">account.bank.statement</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Search Bank Statements"> <field name="name" string="Bank Statement"/> @@ -602,7 +581,6 @@ <record id="view_bank_statement_tree" model="ir.ui.view"> <field name="name">account.bank.statement.tree</field> <field name="model">account.bank.statement</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree colors="red:balance_end_real!=balance_end and state=='draft';blue:state=='draft' and (balance_end_real==balance_end);black:state=='confirm'" string="Statement"> <field name="name"/> @@ -619,7 +597,6 @@ <record id="view_bank_statement_search" model="ir.ui.view"> <field name="name">account.bank.statement.search</field> <field name="model">account.bank.statement</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Search Bank Statements"> <field name="name" string="Bank Statement"/> @@ -639,7 +616,6 @@ <record id="view_bank_statement_form" model="ir.ui.view"> <field name="name">account.bank.statement.form</field> <field name="model">account.bank.statement</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Bank Statement" version="7.0"> <header> @@ -767,7 +743,6 @@ <record id="view_account_type_search" model="ir.ui.view"> <field name="name">account.account.type.search</field> <field name="model">account.account.type</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Account Type"> <field name="name" filter_domain="['|', ('name','ilike',self), ('code','ilike',self)]" string="Account Type"/> @@ -778,7 +753,6 @@ <record id="view_account_type_tree" model="ir.ui.view"> <field name="name">account.account.type.tree</field> <field name="model">account.account.type</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Account Type"> <field name="name"/> @@ -790,7 +764,6 @@ <record id="view_account_type_form" model="ir.ui.view"> <field name="name">account.account.type.form</field> <field name="model">account.account.type</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Account Type" version="7.0"> <group> @@ -833,7 +806,6 @@ <record id="view_account_move_tree" model="ir.ui.view"> <field name="name">account.move.tree</field> <field name="model">account.move</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree colors="blue:state == 'draft';black:state == 'posted'" string="Journal Entries"> <field name="name"/> @@ -855,7 +827,6 @@ <record id="view_move_reconcile_form" model="ir.ui.view"> <field name="name">account.move.reconcile.form</field> <field name="model">account.move.reconcile</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Journal Entry Reconcile" version="7.0"> <group col="4"> @@ -877,7 +848,6 @@ <record id="view_tax_code_search" model="ir.ui.view"> <field name="name">account.tax.code.search</field> <field name="model">account.tax.code</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Account Tax Code"> <field name="name" filter_domain="['|', ('name','ilike',self), ('code','ilike',self)]" string="Tax Code"/> @@ -889,7 +859,6 @@ <record id="view_tax_code_tree" model="ir.ui.view"> <field name="name">account.tax.code.tree</field> <field name="model">account.tax.code</field> - <field name="type">tree</field> <field name="field_parent">child_ids</field> <field name="priority">100</field> <field name="arch" type="xml"> @@ -905,7 +874,6 @@ <record id="view_tax_code_form" model="ir.ui.view"> <field name="name">account.tax.code.form</field> <field name="model">account.tax.code</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Account Tax Code" version="7.0"> <group> @@ -957,7 +925,6 @@ <record id="view_tax_tree" model="ir.ui.view"> <field name="name">account.tax.tree</field> <field name="model">account.tax</field> - <field name="type">tree</field> <field name="field_parent">child_ids</field> <field name="arch" type="xml"> <tree string="Account Tax"> @@ -971,7 +938,6 @@ <record id="view_account_tax_search" model="ir.ui.view"> <field name="name">account.tax.search</field> <field name="model">account.tax</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Search Taxes"> <field name="name" filter_domain="['|', ('name','ilike',self), ('description','ilike',self)]" string="Tax"/> @@ -982,7 +948,6 @@ <record id="view_tax_form" model="ir.ui.view"> <field name="name">account.tax.form</field> <field name="model">account.tax</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Account Tax" version="7.0"> <group> @@ -1085,7 +1050,6 @@ <record id="view_move_line_tree" model="ir.ui.view"> <field name="name">account.move.line.tree</field> <field name="model">account.move.line</field> - <field name="type">tree</field> <field eval="4" name="priority"/> <field name="arch" type="xml"> <tree colors="red:state == 'draft';black:state == 'valid'" string="Journal Items" editable="top" on_write="on_create_write"> @@ -1114,7 +1078,6 @@ <record id="view_move_line_form" model="ir.ui.view"> <field name="name">account.move.line.form</field> <field name="model">account.move.line</field> - <field name="type">form</field> <field eval="2" name="priority"/> <field name="arch" type="xml"> <form string="Journal Item" version="7.0"> @@ -1185,7 +1148,6 @@ <record id="view_move_line_form2" model="ir.ui.view"> <field name="name">account.move.line.form2</field> <field name="model">account.move.line</field> - <field name="type">form</field> <field eval="9" name="priority"/> <field name="arch" type="xml"> <form string="Journal Item" version="7.0"> @@ -1234,7 +1196,6 @@ <record id="account_move_line_graph" model="ir.ui.view"> <field name="name">account.move.line.graph</field> <field name="model">account.move.line</field> - <field name="type">graph</field> <field name="arch" type="xml"> <graph string="Account Statistics" type="bar"> <field name="account_id"/> @@ -1247,7 +1208,6 @@ <record id="view_account_move_line_filter" model="ir.ui.view"> <field name="name">Journal Items</field> <field name="model">account.move.line</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Search Journal Items"> <field name="date"/> @@ -1337,7 +1297,6 @@ <record id="account_move_graph" model="ir.ui.view"> <field name="name">account.move.graph</field> <field name="model">account.move</field> - <field name="type">graph</field> <field name="arch" type="xml"> <graph string="Account Statistics" type="bar"> <field name="period_id"/> @@ -1348,7 +1307,6 @@ <record id="view_move_tree" model="ir.ui.view"> <field name="name">account.move.tree</field> <field name="model">account.move</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree colors="blue:state == 'draft';black:state == 'posted'" string="Journal Entries"> <field name="name"/> @@ -1366,9 +1324,8 @@ <record id="view_move_form" model="ir.ui.view"> <field name="name">account.move.form</field> <field name="model">account.move</field> - <field name="type">form</field> <field name="arch" type="xml"> - <form version="7.0"> + <form string="Account Entry" version="7.0"> <header> <button name="button_validate" states="draft" string="Post" type="object" class="oe_highlight"/> <button name="button_cancel" states="posted" string="Cancel" type="object"/> @@ -1494,7 +1451,6 @@ <record id="view_account_move_filter" model="ir.ui.view"> <field name="name">account.move.select</field> <field name="model">account.move</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Search Move"> <field name="name" filter_domain="['|', ('name','ilike',self), ('ref','ilike',self)]" string="Move"/> @@ -1629,7 +1585,6 @@ <record id="view_journal_period_tree" model="ir.ui.view"> <field name="name">account.journal.period.tree</field> <field name="model">account.journal.period</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree colors="blue:state == 'draft';gray:state == 'done';black:state == 'printed'" string="Journals"> <field icon="icon" name="fiscalyear_id"/> @@ -1653,7 +1608,6 @@ <record id="view_model_line_tree" model="ir.ui.view"> <field name="name">account.model.line.tree</field> <field name="model">account.model.line</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Journal Entry Model Line" editable="bottom"> <field name="sequence"/> @@ -1672,7 +1626,6 @@ <record id="view_model_line_form" model="ir.ui.view"> <field name="name">account.model.line.form</field> <field name="model">account.model.line</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Journal Entry Model Line" version="7.0"> <group col="4"> @@ -1693,7 +1646,6 @@ <record id="view_model_form" model="ir.ui.view"> <field name="name">account.model.form</field> <field name="model">account.model</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Journal Entry Model" version="7.0"> <group col="4"> @@ -1713,7 +1665,6 @@ <record id="view_model_tree" model="ir.ui.view"> <field name="name">account.model.tree</field> <field name="model">account.model</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Journal Entry Model"> <field name="name"/> @@ -1726,7 +1677,6 @@ <record id="view_model_search" model="ir.ui.view"> <field name="name">account.model.search</field> <field name="model">account.model</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Journal Entry Model"> <field name="name" string="Journal Entry Model"/> @@ -1759,7 +1709,6 @@ <record id="view_payment_term_line_tree" model="ir.ui.view"> <field name="name">account.payment.term.line.tree</field> <field name="model">account.payment.term.line</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Payment Term"> <field name="sequence"/> @@ -1776,7 +1725,6 @@ <record id="view_payment_term_line_form" model="ir.ui.view"> <field name="name">account.payment.term.line.form</field> <field name="model">account.payment.term.line</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Payment Term" version="7.0"> <field name="name"/> @@ -1815,7 +1763,6 @@ <record id="view_payment_term_search" model="ir.ui.view"> <field name="name">account.payment.term.search</field> <field name="model">account.payment.term</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Payment Term"> <field name="name" string="Payment Term"/> @@ -1827,7 +1774,6 @@ <record id="view_payment_term_form" model="ir.ui.view"> <field name="name">account.payment.term.form</field> <field name="model">account.payment.term</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Payment Term" version="7.0"> <group> @@ -1859,7 +1805,6 @@ <record id="view_subscription_line_form" model="ir.ui.view"> <field name="name">account.subscription.line.form</field> <field name="model">account.subscription.line</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Subscription lines" version="7.0"> <group> @@ -1873,7 +1818,6 @@ <record id="view_subscription_line_tree" model="ir.ui.view"> <field name="name">account.subscription.line.tree</field> <field name="model">account.subscription.line</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Subscription lines"> <field name="date"/> @@ -1885,7 +1829,6 @@ <record id="view_subscription_tree" model="ir.ui.view"> <field name="name">account.subscription.tree</field> <field name="model">account.subscription</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree colors="blue:state == 'draft';gray:state == 'done';black:state == 'running'" string="Entry Subscription"> <field name="name"/> @@ -1900,7 +1843,6 @@ <record id="view_subscription_search" model="ir.ui.view"> <field name="name">account.subscription.search</field> <field name="model">account.subscription</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Entry Subscription"> <field name="name" string="Account Subscription"/> @@ -1919,7 +1861,6 @@ <record id="view_subscription_form" model="ir.ui.view"> <field name="name">account.subscription.form</field> <field name="model">account.subscription</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Recurring" version="7.0"> <header> @@ -1990,7 +1931,6 @@ <record id="view_subscription_line_form_complete" model="ir.ui.view"> <field name="name">account.subscription.line.form</field> <field name="model">account.subscription.line</field> - <field name="type">form</field> <field eval="20" name="priority"/> <field name="arch" type="xml"> <form string="Subscription lines" version="7.0"> @@ -2015,7 +1955,6 @@ <record id="view_move_line_tax_tree" model="ir.ui.view"> <field name="name">account.move.line.tax.tree</field> <field name="model">account.move.line</field> - <field name="type">tree</field> <field eval="4" name="priority"/> <field name="arch" type="xml"> <tree colors="red:state == 'draft';black:state == 'valid'" string="Journal Items"> @@ -2083,7 +2022,6 @@ <record id="view_account_addtmpl_wizard_form" model="ir.ui.view"> <field name="name">Create Account</field> <field name="model">account.addtmpl.wizard</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Create Account" version="7.0"> <header> @@ -2124,7 +2062,6 @@ <record id="view_account_template_form" model="ir.ui.view"> <field name="name">account.account.template.form</field> <field name="model">account.account.template</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Account Template" version="7.0"> <notebook> @@ -2156,7 +2093,6 @@ <record id="view_account_template_tree" model="ir.ui.view"> <field name="name">account.account.template.tree</field> <field name="model">account.account.template</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Account Template"> <field name="code"/> @@ -2170,7 +2106,6 @@ <record id="view_account_template_search" model="ir.ui.view"> <field name="name">account.account.template.search</field> <field name="model">account.account.template</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Search Account Templates"> <field name="name" filter_domain="['|', ('name','ilike',self), ('code','ilike',self)]" string="Account Template"/> @@ -2202,7 +2137,6 @@ <record id="view_account_chart_template_form" model="ir.ui.view"> <field name="name">account.chart.template.form</field> <field name="model">account.chart.template</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Chart of Accounts Template" version="7.0"> <group col="4"> @@ -2234,7 +2168,6 @@ <record id="view_account_chart_template_seacrh" model="ir.ui.view"> <field name="name">account.chart.template.search</field> <field name="model">account.chart.template</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Search Chart of Account Templates"> <field name="name" string="Account Template"/> @@ -2254,7 +2187,6 @@ <record id="view_account_chart_template_tree" model="ir.ui.view"> <field name="name">account.chart.template.tree</field> <field name="model">account.chart.template</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Chart of Accounts Template"> <field name="name"/> @@ -2282,7 +2214,6 @@ <record id="view_account_tax_template_form" model="ir.ui.view"> <field name="name">account.tax.template.form</field> <field name="model">account.tax.template</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Account Tax Template" version="7.0"> <group col="4"> @@ -2339,7 +2270,6 @@ <record id="view_account_tax_template_tree" model="ir.ui.view"> <field name="name">account.tax.template.tree</field> <field name="model">account.tax.template</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Account Tax Template"> <field name="name" /> @@ -2350,7 +2280,6 @@ <record id="view_account_tax_template_search" model="ir.ui.view"> <field name="name">account.tax.template.search</field> <field name="model">account.tax.template</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Search Tax Templates"> <field name="name" filter_domain="['|', ('name','ilike',self), ('description','ilike',self)]" string="Tax Template"/> @@ -2375,7 +2304,6 @@ <record id="view_tax_code_template_tree" model="ir.ui.view"> <field name="name">account.tax.code.template.tree</field> <field name="model">account.tax.code.template</field> - <field name="type">tree</field> <field name="field_parent">child_ids</field> <field name="arch" type="xml"> <tree string="Account Tax Code Template" toolbar="1"> @@ -2389,7 +2317,6 @@ <record id="view_tax_code_template_search" model="ir.ui.view"> <field name="name">account.tax.code.template.search</field> <field name="model">account.tax.code.template</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Search tax template"> <field name="name" filter_domain="['|', ('name','ilike',self), ('code','ilike',self)]" string="Tax Template"/> @@ -2404,7 +2331,6 @@ <record id="view_tax_code_template_form" model="ir.ui.view"> <field name="name">account.tax.code.template.form</field> <field name="model">account.tax.code.template</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Account Tax Code Template" version="7.0"> <group col="4"> @@ -2434,7 +2360,6 @@ <record id="view_wizard_multi_chart" model="ir.ui.view"> <field name="name">Set Your Accounting Options</field> <field name="model">wizard.multi.charts.accounts</field> - <field name="type">form</field> <field name="inherit_id" ref="base.res_config_view_base"/> <field name="arch" type="xml"> <form position="attributes" version="7.0"> @@ -2522,7 +2447,6 @@ action = pool.get('res.config').next(cr, uid, [], context) <record id="account_account_graph" model="ir.ui.view"> <field name="name">account.account.graph</field> <field name="model">account.account</field> - <field name="type">graph</field> <field name="arch" type="xml"> <graph string="Account Statistics" type="bar"> <field name="name"/> @@ -2536,7 +2460,6 @@ action = pool.get('res.config').next(cr, uid, [], context) <record id="view_account_position_template_search" model="ir.ui.view"> <field name="name">account.fiscal.position.template.search</field> <field name="model">account.fiscal.position.template</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Fiscal Position"> <field name="name" string="Fiscal Position Template"/> @@ -2547,7 +2470,6 @@ action = pool.get('res.config').next(cr, uid, [], context) <record id="view_account_position_template_form" model="ir.ui.view"> <field name="name">account.fiscal.position.template.form</field> <field name="model">account.fiscal.position.template</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Fiscal Position Template" version="7.0"> <group col="4"> @@ -2580,7 +2502,6 @@ action = pool.get('res.config').next(cr, uid, [], context) <record id="view_account_position_template_tree" model="ir.ui.view"> <field name="name">account.fiscal.position.template.tree</field> <field name="model">account.fiscal.position.template</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Fiscal Position"> <field name="name"/> @@ -2605,7 +2526,6 @@ action = pool.get('res.config').next(cr, uid, [], context) <record id="view_cash_statement_tree" model="ir.ui.view"> <field name="name">account.bank.statement.tree</field> <field name="model">account.bank.statement</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree colors="red:balance_end_real!=balance_end;blue:state=='draft' and (balance_end_real==balance_end);black:state == 'open'" string="Statement"> <field name="name"/> @@ -2623,9 +2543,8 @@ action = pool.get('res.config').next(cr, uid, [], context) <record id="view_bank_statement_form2" model="ir.ui.view"> <field name="name">account.bank.statement.form</field> <field name="model">account.bank.statement</field> - <field name="type">form</field> <field name="arch" type="xml"> - <form version="7.0"> + <form string="Statement" version="7.0"> <header> <button name="button_confirm_cash" states="open" string="Close CashBox" type="object" class="oe_highlight"/> <button name="button_open" states="draft" string="Open CashBox" type="object" class="oe_highlight"/> @@ -2723,7 +2642,6 @@ action = pool.get('res.config').next(cr, uid, [], context) <record id="account_cash_statement_graph" model="ir.ui.view"> <field name="name">account.bank.statement.graph</field> <field name="model">account.bank.statement</field> - <field name="type">graph</field> <field name="arch" type="xml"> <graph string="Account Statistics" type="bar"> <field name="date"/> @@ -2790,7 +2708,6 @@ action = pool.get('res.config').next(cr, uid, [], context) <record id="view_account_financial_report_form" model="ir.ui.view"> <field name="name">account.financial.report.form</field> <field name="model">account.financial.report</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Account Report" version="7.0"> <group col="4"> @@ -2818,7 +2735,6 @@ action = pool.get('res.config').next(cr, uid, [], context) <record id="view_account_financial_report_tree" model="ir.ui.view"> <field name="name">account.financial.report.tree</field> <field name="model">account.financial.report</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Account Report"> <field name="name"/> @@ -2832,7 +2748,6 @@ action = pool.get('res.config').next(cr, uid, [], context) <record id="view_account_financial_report_search" model="ir.ui.view"> <field name="name">account.financial.report.search</field> <field name="model">account.financial.report</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Account Report"> <field name="name" string="Account Report"/> @@ -2861,7 +2776,6 @@ action = pool.get('res.config').next(cr, uid, [], context) <record id="view_account_report_tree_hierarchy" model="ir.ui.view"> <field name="name">account.report.hierarchy</field> <field name="model">account.financial.report</field> - <field name="type">tree</field> <field name="field_parent">children_ids</field> <field name="arch" type="xml"> <tree string="Account Reports Hierarchy"> diff --git a/addons/account/board_account_view.xml b/addons/account/board_account_view.xml index 913e43e5982..630c551c5ca 100644 --- a/addons/account/board_account_view.xml +++ b/addons/account/board_account_view.xml @@ -25,7 +25,6 @@ <record id="board_account_form" model="ir.ui.view"> <field name="name">board.account.form</field> <field name="model">board.board</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Account Board" version="7.0"> <board style="2-1"> diff --git a/addons/account/company_view.xml b/addons/account/company_view.xml index 05e1c77edea..447622b57c5 100644 --- a/addons/account/company_view.xml +++ b/addons/account/company_view.xml @@ -5,7 +5,6 @@ <field name="name">res.company.form.inherit</field> <field name="inherit_id" ref="base.view_company_form"/> <field name="model">res.company</field> - <field name="type">form</field> <field name="arch" type="xml"> <notebook position="inside"> <page string="Overdue Payments" position="inside"> @@ -20,7 +19,6 @@ <field name="name">res.company.form.inherit</field> <field name="inherit_id" ref="base.view_company_form"/> <field name="model">res.company</field> - <field name="type">form</field> <field name="arch" type="xml"> <xpath expr="//group[@name='account_grp']" position="inside"> <field name="property_reserve_and_surplus_account"/> diff --git a/addons/account/edi/invoice_action_data.xml b/addons/account/edi/invoice_action_data.xml index ce837c6662b..0eec6d27785 100644 --- a/addons/account/edi/invoice_action_data.xml +++ b/addons/account/edi/invoice_action_data.xml @@ -38,7 +38,7 @@ <!--Email template --> <record id="email_template_edi_invoice" model="email.template"> <field name="name">Automated Invoice Notification Mail</field> - <field name="email_from">${object.user_id.user_email or object.company_id.email or 'noreply@localhost'}</field> + <field name="email_from">${object.user_id.email or object.company_id.email or 'noreply@localhost'}</field> <field name="subject">${object.company_id.name} Invoice (Ref ${object.number or 'n/a' })</field> <field name="email_to">${object.partner_id.email or ''}</field> <field name="model_id" ref="account.model_account_invoice"/> @@ -58,7 +58,7 @@ % if object.origin: Order reference: ${object.origin}<br /> % endif - Your contact: <a href="mailto:${object.user_id.user_email or ''}?subject=Invoice%20${object.number}">${object.user_id.name}</a> + Your contact: <a href="mailto:${object.user_id.email or ''}?subject=Invoice%20${object.number}">${object.user_id.name}</a> </p> <p> @@ -133,7 +133,7 @@ A new invoice is available for ${object.partner_id.name}: % if object.origin: | Order reference: ${object.origin} % endif - | Your contact: ${object.user_id.name} ${object.user_id.user_email and '<%s>'%(object.user_id.user_email) or ''} + | Your contact: ${object.user_id.name} ${object.user_id.email and '<%s>'%(object.user_id.email) or ''} You can view the invoice document, download it and pay online using the following link: ${ctx.get('edi_web_url_view') or 'n/a'} @@ -160,7 +160,7 @@ Thank you for choosing ${object.company_id.name}! -- -${object.user_id.name} ${object.user_id.user_email and '<%s>'%(object.user_id.user_email) or ''} +${object.user_id.name} ${object.user_id.email and '<%s>'%(object.user_id.email) or ''} ${object.company_id.name} % if object.company_id.street: ${object.company_id.street or ''} diff --git a/addons/account/i18n/es_UY.po b/addons/account/i18n/es_UY.po new file mode 100644 index 00000000000..ba90609e994 --- /dev/null +++ b/addons/account/i18n/es_UY.po @@ -0,0 +1,10523 @@ +# Spanish (Uruguay) translation for openobject-addons +# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR <EMAIL@ADDRESS>, 2012. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" +"POT-Creation-Date: 2012-02-08 00:35+0000\n" +"PO-Revision-Date: 2012-08-14 15:07+0000\n" +"Last-Translator: Juan Andres Martinez Chaine <Unknown>\n" +"Language-Team: Spanish (Uruguay) <es_UY@li.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2012-08-15 04:40+0000\n" +"X-Generator: Launchpad (build 15801)\n" + +#. module: account +#: view:account.invoice.report:0 +#: view:analytic.entries.report:0 +msgid "last month" +msgstr "el mes pasado" + +#. module: account +#: model:process.transition,name:account.process_transition_supplierreconcilepaid0 +msgid "System payment" +msgstr "Sistema de pagos" + +#. module: account +#: view:account.journal:0 +msgid "Other Configuration" +msgstr "Otra configuración" + +#. module: account +#: help:account.tax.code,sequence:0 +msgid "" +"Determine the display order in the report 'Accounting \\ Reporting \\ " +"Generic Reporting \\ Taxes \\ Taxes Report'" +msgstr "" +"Determina el órden de visualización en el informe 'Contabilidad\\informes\\ " +"informes genéricos\\ impuestos \\ informes de impuestos'" + +#. module: account +#: view:account.move.reconcile:0 +msgid "Journal Entry Reconcile" +msgstr "" + +#. module: account +#: view:account.account:0 +#: view:account.bank.statement:0 +#: view:account.move:0 +#: view:account.move.line:0 +msgid "Account Statistics" +msgstr "Estadísticas de cuentas" + +#. module: account +#: view:account.invoice:0 +msgid "Proforma/Open/Paid Invoices" +msgstr "Facturas proforma/abiertas/pagadas" + +#. module: account +#: field:report.invoice.created,residual:0 +msgid "Residual" +msgstr "" + +#. module: account +#: constraint:account.period:0 +msgid "Error ! The duration of the Period(s) is/are invalid. " +msgstr "¡Error! La duración de el/los período(s) no es válida. " + +#. module: account +#: field:account.analytic.line,currency_id:0 +msgid "Account currency" +msgstr "Moneda contable" + +#. module: account +#: view:account.tax:0 +msgid "Children Definition" +msgstr "Definición hijos" + +#. module: account +#: code:addons/account/account_bank_statement.py:302 +#, python-format +msgid "Journal item \"%s\" is not valid." +msgstr "El asiento \"%s\" no es válido" + +#. module: account +#: model:ir.model,name:account.model_report_aged_receivable +msgid "Aged Receivable Till Today" +msgstr "A cobrar vencidos hasta hoy" + +#. module: account +#: model:process.transition,name:account.process_transition_invoiceimport0 +msgid "Import from invoice or payment" +msgstr "Importar desde factura o pago" + +#. module: account +#: model:ir.model,name:account.model_wizard_multi_charts_accounts +msgid "wizard.multi.charts.accounts" +msgstr "" + +#. module: account +#: view:account.move:0 +msgid "Total Debit" +msgstr "Total debe" + +#. module: account +#: view:account.unreconcile:0 +msgid "" +"If you unreconciliate transactions, you must also verify all the actions " +"that are linked to those transactions because they will not be disabled" +msgstr "" +"Si rompe la conciliación de transacciones, también debe verificar todas la " +"acciones que están relacionadas con esas transacciones porqué no serán " +"deshabilitadas." + +#. module: account +#: constraint:account.journal:0 +msgid "" +"Configuration error! The currency chosen should be shared by the default " +"accounts too." +msgstr "" +"¡Error de configuración! La moneda elegida debería ser también la misma en " +"las cuentas por defecto" + +#. module: account +#: report:account.invoice:0 +#: field:account.invoice.line,origin:0 +msgid "Origin" +msgstr "Original" + +#. module: account +#: view:account.account:0 +#: view:account.automatic.reconcile:0 +#: field:account.move.line,reconcile_id:0 +#: view:account.move.line.reconcile:0 +#: view:account.move.line.reconcile.writeoff:0 +msgid "Reconcile" +msgstr "Reconciliar" + +#. module: account +#: field:account.bank.statement.line,ref:0 +#: field:account.entries.report,ref:0 +#: view:account.invoice:0 +#: field:account.move,ref:0 +#: field:account.move.line,ref:0 +#: field:account.subscription,ref:0 +msgid "Reference" +msgstr "Referencia" + +#. module: account +#: view:account.open.closed.fiscalyear:0 +msgid "Choose Fiscal Year " +msgstr "Selecciona ejercicio fiscal " + +#. module: account +#: help:account.payment.term,active:0 +msgid "" +"If the active field is set to False, it will allow you to hide the payment " +"term without removing it." +msgstr "" +"Si el campo activo se desmarca, permite ocultar el plazo de pago sin " +"eliminarlo." + +#. module: account +#: code:addons/account/account_invoice.py:1428 +#, python-format +msgid "Warning!" +msgstr "¡Cuidado!" + +#. module: account +#: code:addons/account/account.py:3112 +#, python-format +msgid "Miscellaneous Journal" +msgstr "Diario varios" + +#. module: account +#: field:account.fiscal.position.account,account_src_id:0 +#: field:account.fiscal.position.account.template,account_src_id:0 +msgid "Account Source" +msgstr "Origen cuenta" + +#. module: account +#: model:ir.actions.act_window,name:account.act_acc_analytic_acc_5_report_hr_timesheet_invoice_journal +msgid "All Analytic Entries" +msgstr "Todos los asientos analíticos" + +#. module: account +#: field:accounting.report,label_filter:0 +msgid "Column Label" +msgstr "Etiqueta de columna" + +#. module: account +#: code:addons/account/wizard/account_move_journal.py:95 +#, python-format +msgid "Journal: %s" +msgstr "Diario: %s" + +#. module: account +#: help:account.analytic.journal,type:0 +msgid "" +"Gives the type of the analytic journal. When it needs for a document (eg: an " +"invoice) to create analytic entries, OpenERP will look for a matching " +"journal of the same type." +msgstr "" +"Indica el tipo de diario analítico. Cuando se necesita para un documento " +"(por ej. una factura) para crear asientos analíticos, OpenERP buscará un " +"diario coincidente del mismo tipo." + +#. module: account +#: model:ir.actions.act_window,name:account.action_account_tax_template_form +#: model:ir.ui.menu,name:account.menu_action_account_tax_template_form +msgid "Tax Templates" +msgstr "Plantillas de impuestos" + +#. module: account +#: model:ir.model,name:account.model_account_tax +msgid "account.tax" +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_account_move_line_reconcile_select +msgid "Move line reconcile select" +msgstr "Seleccionar la línea de movimiento a conciliar" + +#. module: account +#: help:account.tax.code,notprintable:0 +#: help:account.tax.code.template,notprintable:0 +msgid "" +"Check this box if you don't want any VAT related to this Tax Code to appear " +"on invoices" +msgstr "" +"Marque esta opción si desea que no aparezca en las facturas ningún IVA " +"relacionado con este código de impuesto." + +#. module: account +#: code:addons/account/account_invoice.py:1241 +#, python-format +msgid "Invoice '%s' is paid partially: %s%s of %s%s (%s%s remaining)" +msgstr "" +"La factura '%s' está parcialmente pagada: %s%s de %s%s (%s%s pendiente)" + +#. module: account +#: model:process.transition,note:account.process_transition_supplierentriesreconcile0 +msgid "Accounting entries are an input of the reconciliation." +msgstr "" + +#. module: account +#: model:ir.ui.menu,name:account.menu_finance_management_belgian_reports +msgid "Belgian Reports" +msgstr "" + +#. module: account +#: code:addons/account/account_move_line.py:1200 +#, python-format +msgid "You can not add/modify entries in a closed journal." +msgstr "No puede añadir/modificar asientos en un diario cerrado." + +#. module: account +#: help:account.account,user_type:0 +msgid "" +"Account Type is used for information purpose, to generate country-specific " +"legal reports, and set the rules to close a fiscal year and generate opening " +"entries." +msgstr "" +"El tipo de cuenta es usado con propósito informativo, para generar informes " +"legales específicos de cada país, y establecer las reglas para cerrar un año " +"fiscal y generar los apuntes de apertura." + +#. module: account +#: report:account.overdue:0 +msgid "Sub-Total :" +msgstr "Subtotal :" + +#. module: account +#: model:ir.actions.act_window,name:account.action_account_use_model_create_entry +#: model:ir.actions.act_window,name:account.action_view_account_use_model +#: model:ir.ui.menu,name:account.menu_action_manual_recurring +msgid "Manual Recurring" +msgstr "Recurrencia manual" + +#. module: account +#: view:account.fiscalyear.close.state:0 +msgid "Close Fiscalyear" +msgstr "Cerrar ejercicio fiscal" + +#. module: account +#: field:account.automatic.reconcile,allow_write_off:0 +msgid "Allow write off" +msgstr "Permitir desfase" + +#. module: account +#: view:account.analytic.chart:0 +msgid "Select the Period for Analysis" +msgstr "Seleccione el período de análisis" + +#. module: account +#: view:account.move.line:0 +msgid "St." +msgstr "" + +#. module: account +#: code:addons/account/account_invoice.py:551 +#, python-format +msgid "Invoice line account company does not match with invoice company." +msgstr "" +"La compañía de la cuenta de la línea de factura no concuerda con la compañía " +"de la factura." + +#. module: account +#: field:account.journal.column,field:0 +msgid "Field Name" +msgstr "Nombre del campo" + +#. module: account +#: help:account.installer,charts:0 +msgid "" +"Installs localized accounting charts to match as closely as possible the " +"accounting needs of your company based on your country." +msgstr "" +"Instala el plan contable de la localización que satisface las necesidades " +"contables de su compañía basadas en su país." + +#. module: account +#: code:addons/account/wizard/account_move_journal.py:63 +#, python-format +msgid "" +"Can't find any account journal of %s type for this company.\n" +"\n" +"You can create one in the menu: \n" +"Configuration/Financial Accounting/Accounts/Journals." +msgstr "" +"No se encuentra ningún diario contable del tipo %s para esta compañía.\n" +"\n" +"Puede crear un diario en el menú: \n" +"Configuración/Contabilidad financiera/Cuentas/Diarios." + +#. module: account +#: model:ir.model,name:account.model_account_unreconcile +msgid "Account Unreconcile" +msgstr "Desconciliar cuenta" + +#. module: account +#: view:product.product:0 +#: view:product.template:0 +msgid "Purchase Properties" +msgstr "Propiedades de compra" + +#. module: account +#: help:account.financial.report,style_overwrite:0 +msgid "" +"You can set up here the format you want this record to be displayed. If you " +"leave the automatic formatting, it will be computed based on the financial " +"reports hierarchy (auto-computed field 'level')." +msgstr "" +"Puede configurar aquí el formato en que desea que se muestre este registro. " +"Si deja el formato automático, será calculado en base a la jerarquía de los " +"informes financieros (campo auto-calculado 'nivel')" + +#. module: account +#: view:account.installer:0 +msgid "Configure" +msgstr "Configurar" + +#. module: account +#: selection:account.entries.report,month:0 +#: selection:account.invoice.report,month:0 +#: selection:analytic.entries.report,month:0 +#: selection:report.account.sales,month:0 +#: selection:report.account_type.sales,month:0 +msgid "June" +msgstr "Junio" + +#. module: account +#: model:ir.actions.act_window,help:account.action_account_moves_bank +msgid "" +"This view is used by accountants in order to record entries massively in " +"OpenERP. Journal items are created by OpenERP if you use Bank Statements, " +"Cash Registers, or Customer/Supplier payments." +msgstr "" +"Los contables utilizan esta vista para introducir asientos masivamente en " +"OpenERP. Cuando utiliza los extractos bancarios, registros de caja, o pagos " +"de cliente/proveedor OpenERP crea automáticamente apuntes contables." + +#. module: account +#: constraint:account.move.line:0 +msgid "You can not create journal items on an account of type view." +msgstr "No puede crear asientos en una cuenta de tipo vista" + +#. module: account +#: model:ir.model,name:account.model_account_tax_template +msgid "account.tax.template" +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_account_bank_accounts_wizard +msgid "account.bank.accounts.wizard" +msgstr "" + +#. module: account +#: field:account.move.line,date_created:0 +#: field:account.move.reconcile,create_date:0 +msgid "Creation date" +msgstr "Fecha de creación" + +#. module: account +#: selection:account.journal,type:0 +msgid "Purchase Refund" +msgstr "Reembolso de compra" + +#. module: account +#: selection:account.journal,type:0 +msgid "Opening/Closing Situation" +msgstr "" + +#. module: account +#: help:account.journal,currency:0 +msgid "The currency used to enter statement" +msgstr "" + +#. module: account +#: field:account.open.closed.fiscalyear,fyear_id:0 +msgid "Fiscal Year to Open" +msgstr "" + +#. module: account +#: help:account.journal,sequence_id:0 +msgid "" +"This field contains the informatin related to the numbering of the journal " +"entries of this journal." +msgstr "" + +#. module: account +#: field:account.journal,default_debit_account_id:0 +msgid "Default Debit Account" +msgstr "" + +#. module: account +#: view:account.move:0 +msgid "Total Credit" +msgstr "" + +#. module: account +#: view:account.move.line.unreconcile.select:0 +msgid "Open for Unreconciliation" +msgstr "" + +#. module: account +#: field:account.account.template,chart_template_id:0 +#: field:account.fiscal.position.template,chart_template_id:0 +#: field:account.tax.template,chart_template_id:0 +#: field:wizard.multi.charts.accounts,chart_template_id:0 +msgid "Chart Template" +msgstr "" + +#. module: account +#: help:account.model.line,amount_currency:0 +msgid "The amount expressed in an optional other currency." +msgstr "" + +#. module: account +#: field:accounting.report,enable_filter:0 +msgid "Enable Comparison" +msgstr "" + +#. module: account +#: help:account.journal.period,state:0 +msgid "" +"When journal period is created. The state is 'Draft'. If a report is printed " +"it comes to 'Printed' state. When all transactions are done, it comes in " +"'Done' state." +msgstr "" + +#. module: account +#: model:ir.actions.act_window,help:account.action_account_tax_chart +msgid "" +"Chart of Taxes is a tree view reflecting the structure of the Tax Cases (or " +"tax codes) and shows the current tax situation. The tax chart represents the " +"amount of each area of the tax declaration for your country. It’s presented " +"in a hierarchical structure, which can be modified to fit your needs." +msgstr "" + +#. module: account +#: view:account.analytic.line:0 +#: field:account.automatic.reconcile,journal_id:0 +#: view:account.bank.statement:0 +#: field:account.bank.statement,journal_id:0 +#: report:account.central.journal:0 +#: view:account.entries.report:0 +#: field:account.entries.report,journal_id:0 +#: view:account.invoice:0 +#: field:account.invoice,journal_id:0 +#: view:account.invoice.report:0 +#: field:account.invoice.report,journal_id:0 +#: field:account.journal.period,journal_id:0 +#: report:account.journal.period.print:0 +#: report:account.journal.period.print.sale.purchase:0 +#: view:account.model:0 +#: field:account.model,journal_id:0 +#: view:account.move:0 +#: field:account.move,journal_id:0 +#: field:account.move.bank.reconcile,journal_id:0 +#: view:account.move.line:0 +#: field:account.move.line,journal_id:0 +#: view:analytic.entries.report:0 +#: field:analytic.entries.report,journal_id:0 +#: model:ir.actions.report.xml,name:account.account_journal +#: model:ir.model,name:account.model_account_journal +#: field:validate.account.move,journal_id:0 +msgid "Journal" +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_account_invoice_confirm +msgid "Confirm the selected invoices" +msgstr "" + +#. module: account +#: field:account.addtmpl.wizard,cparent_id:0 +msgid "Parent target" +msgstr "" + +#. module: account +#: field:account.bank.statement,account_id:0 +msgid "Account used in this journal" +msgstr "" + +#. module: account +#: help:account.aged.trial.balance,chart_account_id:0 +#: help:account.balance.report,chart_account_id:0 +#: help:account.central.journal,chart_account_id:0 +#: help:account.common.account.report,chart_account_id:0 +#: help:account.common.journal.report,chart_account_id:0 +#: help:account.common.partner.report,chart_account_id:0 +#: help:account.common.report,chart_account_id:0 +#: help:account.general.journal,chart_account_id:0 +#: help:account.partner.balance,chart_account_id:0 +#: help:account.partner.ledger,chart_account_id:0 +#: help:account.print.journal,chart_account_id:0 +#: help:account.report.general.ledger,chart_account_id:0 +#: help:account.vat.declaration,chart_account_id:0 +#: help:accounting.report,chart_account_id:0 +msgid "Select Charts of Accounts" +msgstr "" + +#. module: account +#: sql_constraint:res.company:0 +msgid "The company name must be unique !" +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_account_invoice_refund +msgid "Invoice Refund" +msgstr "Reembolso de factura" + +#. module: account +#: report:account.overdue:0 +msgid "Li." +msgstr "" + +#. module: account +#: field:account.automatic.reconcile,unreconciled:0 +msgid "Not reconciled transactions" +msgstr "" + +#. module: account +#: report:account.general.ledger:0 +#: report:account.general.ledger_landscape:0 +msgid "Counterpart" +msgstr "" + +#. module: account +#: view:account.fiscal.position:0 +#: field:account.fiscal.position,tax_ids:0 +#: field:account.fiscal.position.template,tax_ids:0 +msgid "Tax Mapping" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,name:account.action_account_fiscalyear_close_state +#: model:ir.ui.menu,name:account.menu_wizard_fy_close_state +msgid "Close a Fiscal Year" +msgstr "" + +#. module: account +#: model:process.transition,note:account.process_transition_confirmstatementfromdraft0 +msgid "The accountant confirms the statement." +msgstr "" + +#. module: account +#: selection:account.balance.report,display_account:0 +#: selection:account.common.account.report,display_account:0 +#: selection:account.report.general.ledger,display_account:0 +#: selection:account.tax,type_tax_use:0 +#: selection:account.tax.template,type_tax_use:0 +msgid "All" +msgstr "" + +#. module: account +#: field:account.invoice.report,address_invoice_id:0 +msgid "Invoice Address Name" +msgstr "" + +#. module: account +#: selection:account.installer,period:0 +msgid "3 Monthly" +msgstr "" + +#. module: account +#: view:account.unreconcile.reconcile:0 +msgid "" +"If you unreconciliate transactions, you must also verify all the actions " +"that are linked to those transactions because they will not be disable" +msgstr "" + +#. module: account +#: view:analytic.entries.report:0 +msgid " 30 Days " +msgstr "" + +#. module: account +#: field:ir.sequence,fiscal_ids:0 +msgid "Sequences" +msgstr "" + +#. module: account +#: field:account.financial.report,account_report_id:0 +#: selection:account.financial.report,type:0 +msgid "Report Value" +msgstr "" + +#. module: account +#: view:account.fiscal.position.template:0 +msgid "Taxes Mapping" +msgstr "" + +#. module: account +#: report:account.central.journal:0 +msgid "Centralized Journal" +msgstr "" + +#. module: account +#: sql_constraint:account.sequence.fiscalyear:0 +msgid "Main Sequence must be different from current !" +msgstr "" + +#. module: account +#: code:addons/account/account_move_line.py:1251 +#, python-format +msgid "No period found or more than one period found for the given date." +msgstr "" + +#. module: account +#: field:account.invoice.tax,tax_amount:0 +msgid "Tax Code Amount" +msgstr "" + +#. module: account +#: code:addons/account/account.py:3116 +#, python-format +msgid "SAJ" +msgstr "" + +#. module: account +#: view:account.period:0 +#: view:account.period.close:0 +msgid "Close Period" +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_account_common_partner_report +msgid "Account Common Partner Report" +msgstr "" + +#. module: account +#: field:account.fiscalyear.close,period_id:0 +msgid "Opening Entries Period" +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_account_journal_period +msgid "Journal Period" +msgstr "" + +#. module: account +#: code:addons/account/account_move_line.py:750 +#: code:addons/account/account_move_line.py:803 +#, python-format +msgid "To reconcile the entries company should be the same for all entries" +msgstr "" + +#. module: account +#: constraint:account.move.line:0 +msgid "" +"The date of your Journal Entry is not in the defined period! You should " +"change the date or remove this constraint from the journal." +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_account_report_general_ledger +msgid "General Ledger Report" +msgstr "" + +#. module: account +#: view:account.invoice:0 +msgid "Re-Open" +msgstr "" + +#. module: account +#: view:account.use.model:0 +msgid "Are you sure you want to create entries?" +msgstr "" + +#. module: account +#: view:account.invoice:0 +msgid "Print Invoice" +msgstr "" + +#. module: account +#: field:account.partner.reconcile.process,today_reconciled:0 +msgid "Partners Reconciled Today" +msgstr "" + +#. module: account +#: view:report.hr.timesheet.invoice.journal:0 +msgid "Sale journal in this year" +msgstr "" + +#. module: account +#: selection:account.financial.report,display_detail:0 +msgid "Display children with hierarchy" +msgstr "" + +#. module: account +#: selection:account.payment.term.line,value:0 +#: selection:account.tax.template,type:0 +msgid "Percent" +msgstr "" + +#. module: account +#: model:ir.ui.menu,name:account.menu_finance_charts +msgid "Charts" +msgstr "" + +#. module: account +#: code:addons/account/project/wizard/project_account_analytic_line.py:47 +#: model:ir.model,name:account.model_project_account_analytic_line +#, python-format +msgid "Analytic Entries by line" +msgstr "" + +#. module: account +#: field:account.invoice.refund,filter_refund:0 +msgid "Refund Method" +msgstr "Método de reembolso" + +#. module: account +#: code:addons/account/wizard/account_change_currency.py:38 +#, python-format +msgid "You can only change currency for Draft Invoice !" +msgstr "" + +#. module: account +#: model:ir.ui.menu,name:account.menu_account_report +msgid "Financial Report" +msgstr "" + +#. module: account +#: view:account.analytic.journal:0 +#: field:account.analytic.journal,type:0 +#: field:account.bank.statement.line,type:0 +#: field:account.financial.report,type:0 +#: field:account.invoice,type:0 +#: view:account.invoice.report:0 +#: field:account.invoice.report,type:0 +#: view:account.journal:0 +#: field:account.journal,type:0 +#: field:account.move.reconcile,type:0 +#: field:report.invoice.created,type:0 +msgid "Type" +msgstr "" + +#. module: account +#: code:addons/account/account_invoice.py:738 +#, python-format +msgid "" +"Taxes are missing!\n" +"Click on compute button." +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_account_subscription_line +msgid "Account Subscription Line" +msgstr "" + +#. module: account +#: help:account.invoice,reference:0 +msgid "The partner reference of this invoice." +msgstr "" + +#. module: account +#: view:account.invoice.report:0 +msgid "Supplier Invoices And Refunds" +msgstr "Facturas y reembolsos de proveedor" + +#. module: account +#: view:account.move.line.unreconcile.select:0 +#: view:account.unreconcile:0 +#: view:account.unreconcile.reconcile:0 +#: model:ir.model,name:account.model_account_move_line_unreconcile_select +msgid "Unreconciliation" +msgstr "" + +#. module: account +#: view:account.payment.term.line:0 +msgid "At 14 net days 2 percent, remaining amount at 30 days end of month." +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_account_analytic_journal_report +msgid "Account Analytic Journal" +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_account_automatic_reconcile +msgid "Automatic Reconcile" +msgstr "" + +#. module: account +#: report:account.analytic.account.quantity_cost_ledger:0 +msgid "J.C./Move name" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,help:account.action_account_gain_loss +msgid "" +"When doing multi-currency transactions, you may loose or gain some amount " +"due to changes of exchange rate. This menu gives you a forecast of the Gain " +"or Loss you'd realized if those transactions were ended today. Only for " +"accounts having a secondary currency set." +msgstr "" + +#. module: account +#: selection:account.entries.report,month:0 +#: selection:account.invoice.report,month:0 +#: selection:analytic.entries.report,month:0 +#: selection:report.account.sales,month:0 +#: selection:report.account_type.sales,month:0 +msgid "September" +msgstr "" + +#. module: account +#: selection:account.subscription,period_type:0 +msgid "days" +msgstr "" + +#. module: account +#: help:account.account.template,nocreate:0 +msgid "" +"If checked, the new chart of accounts will not contain this by default." +msgstr "" + +#. module: account +#: code:addons/account/wizard/account_invoice_refund.py:110 +#, python-format +msgid "" +"Can not %s invoice which is already reconciled, invoice should be " +"unreconciled first. You can only Refund this invoice" +msgstr "" +"No se puede %s una factura que ya está conciliada, primero debería romper la " +"conciliación de la factura. Sólo puede hacer un reembolso (Nota de Crédito) " +"de esta factura." + +#. module: account +#: model:ir.actions.act_window,name:account.action_subscription_form_new +msgid "New Subscription" +msgstr "" + +#. module: account +#: view:account.payment.term:0 +msgid "Computation" +msgstr "" + +#. module: account +#: selection:account.invoice.refund,filter_refund:0 +msgid "Cancel: refund invoice and reconcile" +msgstr "Cancelar: abonar factura y reconciliar" + +#. module: account +#: field:account.cashbox.line,pieces:0 +msgid "Values" +msgstr "" + +#. module: account +#: view:account.invoice.report:0 +#: field:account.invoice.report,delay_to_pay:0 +msgid "Avg. Delay To Pay" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,name:account.action_account_tax_chart +#: model:ir.actions.act_window,name:account.action_tax_code_tree +#: model:ir.ui.menu,name:account.menu_action_tax_code_tree +msgid "Chart of Taxes" +msgstr "" + +#. module: account +#: view:account.fiscalyear:0 +msgid "Create 3 Months Periods" +msgstr "" + +#. module: account +#: report:account.overdue:0 +msgid "Due" +msgstr "" + +#. module: account +#: code:addons/account/account.py:1345 +#, python-format +msgid "" +"You cannot validate this journal entry because account \"%s\" does not " +"belong to chart of accounts \"%s\"!" +msgstr "" + +#. module: account +#: code:addons/account/account_move_line.py:835 +#, python-format +msgid "" +"This account does not allow reconciliation! You should update the account " +"definition to change this." +msgstr "" + +#. module: account +#: view:account.invoice:0 +#: view:account.move:0 +#: view:validate.account.move:0 +#: view:validate.account.move.lines:0 +msgid "Approve" +msgstr "" + +#. module: account +#: view:account.invoice:0 +#: view:account.move:0 +#: view:report.invoice.created:0 +msgid "Total Amount" +msgstr "" + +#. module: account +#: selection:account.account,type:0 +#: selection:account.account.template,type:0 +#: selection:account.entries.report,type:0 +msgid "Consolidation" +msgstr "" + +#. module: account +#: model:account.account.type,name:account.data_account_type_liability +#: model:account.financial.report,name:account.account_financial_report_liability0 +#: model:account.financial.report,name:account.account_financial_report_liabilitysum0 +msgid "Liability" +msgstr "" + +#. module: account +#: view:account.entries.report:0 +msgid "Extended Filters..." +msgstr "" + +#. module: account +#: model:ir.ui.menu,name:account.menu_account_central_journal +msgid "Centralizing Journal" +msgstr "" + +#. module: account +#: selection:account.journal,type:0 +msgid "Sale Refund" +msgstr "Reembolso de ventas" + +#. module: account +#: model:process.node,note:account.process_node_accountingstatemententries0 +msgid "Bank statement" +msgstr "" + +#. module: account +#: field:account.analytic.line,move_id:0 +msgid "Move Line" +msgstr "" + +#. module: account +#: help:account.move.line,tax_amount:0 +msgid "" +"If the Tax account is a tax code account, this field will contain the taxed " +"amount.If the tax account is base tax code, this field will contain the " +"basic amount(without tax)." +msgstr "" + +#. module: account +#: code:addons/account/account.py:2596 +#, python-format +msgid "I can not locate a parent code for the template account!" +msgstr "" + +#. module: account +#: view:account.analytic.line:0 +msgid "Purchases" +msgstr "" + +#. module: account +#: field:account.model,lines_id:0 +msgid "Model Entries" +msgstr "" + +#. module: account +#: field:account.account,code:0 +#: report:account.account.balance:0 +#: field:account.account.template,code:0 +#: field:account.account.type,code:0 +#: report:account.analytic.account.balance:0 +#: report:account.analytic.account.inverted.balance:0 +#: report:account.analytic.account.journal:0 +#: field:account.analytic.line,code:0 +#: field:account.fiscalyear,code:0 +#: report:account.general.journal:0 +#: field:account.journal,code:0 +#: report:account.partner.balance:0 +#: field:account.period,code:0 +msgid "Code" +msgstr "" + +#. module: account +#: code:addons/account/account.py:2268 +#: code:addons/account/account_bank_statement.py:357 +#: code:addons/account/account_invoice.py:73 +#: code:addons/account/account_invoice.py:688 +#: code:addons/account/account_move_line.py:173 +#, python-format +msgid "No Analytic Journal !" +msgstr "" + +#. module: account +#: report:account.partner.balance:0 +#: view:account.partner.balance:0 +#: model:ir.actions.act_window,name:account.action_account_partner_balance +#: model:ir.actions.report.xml,name:account.account_3rdparty_account_balance +#: model:ir.ui.menu,name:account.menu_account_partner_balance_report +msgid "Partner Balance" +msgstr "" + +#. module: account +#: field:account.bank.accounts.wizard,acc_name:0 +msgid "Account Name." +msgstr "" + +#. module: account +#: field:account.chart.template,property_reserve_and_surplus_account:0 +#: field:res.company,property_reserve_and_surplus_account:0 +msgid "Reserve and Profit/Loss Account" +msgstr "" + +#. module: account +#: field:report.account.receivable,name:0 +msgid "Week of Year" +msgstr "" + +#. module: account +#: field:account.report.general.ledger,landscape:0 +msgid "Landscape Mode" +msgstr "" + +#. module: account +#: code:addons/account/account.py:645 +#, python-format +msgid "" +"You cannot change the type of account from '%s' to '%s' type as it contains " +"journal items!" +msgstr "" + +#. module: account +#: field:account.report.general.ledger,sortby:0 +msgid "Sort by" +msgstr "" + +#. module: account +#: help:account.fiscalyear.close,fy_id:0 +msgid "Select a Fiscal year to close" +msgstr "" + +#. module: account +#: help:account.account.template,user_type:0 +msgid "" +"These types are defined according to your country. The type contains more " +"information about the account and its specificities." +msgstr "" + +#. module: account +#: code:addons/account/account_move_line.py:842 +#, python-format +msgid "" +"You have to provide an account for the write off/exchange difference entry !" +msgstr "" + +#. module: account +#: view:account.tax:0 +msgid "Applicability Options" +msgstr "" + +#. module: account +#: report:account.partner.balance:0 +msgid "In dispute" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,name:account.action_view_bank_statement_tree +#: model:ir.ui.menu,name:account.journal_cash_move_lines +msgid "Cash Registers" +msgstr "" + +#. module: account +#: report:account.analytic.account.journal:0 +#: report:account.third_party_ledger:0 +#: report:account.third_party_ledger_other:0 +msgid "-" +msgstr "" + +#. module: account +#: view:account.analytic.account:0 +#: model:res.groups,name:account.group_account_manager +msgid "Manager" +msgstr "" + +#. module: account +#: view:account.subscription.generate:0 +msgid "Generate Entries before:" +msgstr "" + +#. module: account +#: view:account.move.line:0 +msgid "Unbalanced Journal Items" +msgstr "" + +#. module: account +#: model:account.account.type,name:account.data_account_type_bank +#: selection:account.bank.accounts.wizard,account_type:0 +#: code:addons/account/account.py:3003 +#, python-format +msgid "Bank" +msgstr "" + +#. module: account +#: field:account.period,date_start:0 +msgid "Start of Period" +msgstr "" + +#. module: account +#: model:process.transition,name:account.process_transition_confirmstatementfromdraft0 +msgid "Confirm statement" +msgstr "" + +#. module: account +#: help:account.account,foreign_balance:0 +msgid "" +"Total amount (in Secondary currency) for transactions held in secondary " +"currency for this account." +msgstr "" + +#. module: account +#: field:account.fiscal.position.tax,tax_dest_id:0 +#: field:account.fiscal.position.tax.template,tax_dest_id:0 +msgid "Replacement Tax" +msgstr "" + +#. module: account +#: selection:account.move.line,centralisation:0 +msgid "Credit Centralisation" +msgstr "" + +#. module: account +#: view:report.account_type.sales:0 +msgid "All Months Sales by type" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,help:account.action_invoice_tree2 +msgid "" +"With Supplier Invoices you can enter and manage invoices issued by your " +"suppliers. OpenERP can also generate draft invoices automatically from " +"purchase orders or receipts. This way, you can control the invoice from your " +"supplier according to what you purchased or received." +msgstr "" + +#. module: account +#: model:ir.actions.act_window,name:account.action_account_tax_code_template_form +#: model:ir.ui.menu,name:account.menu_action_account_tax_code_template_form +msgid "Tax Code Templates" +msgstr "" + +#. module: account +#: view:account.invoice.cancel:0 +msgid "Cancel Invoices" +msgstr "" + +#. module: account +#: help:account.journal,code:0 +msgid "The code will be displayed on reports." +msgstr "" + +#. module: account +#: view:account.tax.template:0 +msgid "Taxes used in Purchases" +msgstr "" + +#. module: account +#: field:account.invoice.tax,tax_code_id:0 +#: field:account.tax,description:0 +#: field:account.tax.template,tax_code_id:0 +#: model:ir.model,name:account.model_account_tax_code +msgid "Tax Code" +msgstr "" + +#. module: account +#: field:account.account,currency_mode:0 +msgid "Outgoing Currencies Rate" +msgstr "" + +#. module: account +#: selection:account.analytic.journal,type:0 +msgid "Situation" +msgstr "" + +#. module: account +#: help:account.move.line,move_id:0 +msgid "The move of this entry line." +msgstr "" + +#. module: account +#: code:addons/account/account_move_line.py:1302 +#, python-format +msgid "" +"You can not use this general account in this journal, check the tab 'Entry " +"Controls' on the related journal !" +msgstr "" + +#. module: account +#: field:account.move.line.reconcile,trans_nbr:0 +msgid "# of Transaction" +msgstr "" + +#. module: account +#: report:account.general.ledger:0 +#: report:account.general.ledger_landscape:0 +#: report:account.third_party_ledger:0 +#: report:account.third_party_ledger_other:0 +msgid "Entry Label" +msgstr "" + +#. module: account +#: code:addons/account/account.py:1129 +#, python-format +msgid "You can not modify/delete a journal with entries for this period !" +msgstr "" + +#. module: account +#: help:account.invoice,origin:0 +#: help:account.invoice.line,origin:0 +msgid "Reference of the document that produced this invoice." +msgstr "" + +#. module: account +#: view:account.analytic.line:0 +#: view:account.journal:0 +msgid "Others" +msgstr "" + +#. module: account +#: view:account.subscription:0 +msgid "Draft Subscription" +msgstr "" + +#. module: account +#: view:account.account:0 +#: report:account.account.balance:0 +#: view:account.analytic.line:0 +#: field:account.automatic.reconcile,writeoff_acc_id:0 +#: field:account.bank.statement.line,account_id:0 +#: view:account.entries.report:0 +#: field:account.entries.report,account_id:0 +#: field:account.invoice,account_id:0 +#: field:account.invoice.line,account_id:0 +#: view:account.invoice.report:0 +#: field:account.invoice.report,account_id:0 +#: field:account.journal,account_control_ids:0 +#: report:account.journal.period.print:0 +#: report:account.journal.period.print.sale.purchase:0 +#: field:account.model.line,account_id:0 +#: view:account.move.line:0 +#: field:account.move.line,account_id:0 +#: field:account.move.line.reconcile.select,account_id:0 +#: field:account.move.line.unreconcile.select,account_id:0 +#: report:account.third_party_ledger:0 +#: report:account.third_party_ledger_other:0 +#: view:analytic.entries.report:0 +#: field:analytic.entries.report,account_id:0 +#: model:ir.model,name:account.model_account_account +#: field:report.account.sales,account_id:0 +msgid "Account" +msgstr "" + +#. module: account +#: field:account.tax,include_base_amount:0 +msgid "Included in base amount" +msgstr "" + +#. module: account +#: view:account.entries.report:0 +#: model:ir.actions.act_window,name:account.action_account_entries_report_all +#: model:ir.ui.menu,name:account.menu_action_account_entries_report_all +msgid "Entries Analysis" +msgstr "" + +#. module: account +#: field:account.account,level:0 +#: field:account.financial.report,level:0 +msgid "Level" +msgstr "" + +#. module: account +#: report:account.invoice:0 +#: view:account.invoice:0 +#: view:account.invoice.line:0 +#: field:account.invoice.line,invoice_line_tax_id:0 +#: view:account.move:0 +#: view:account.move.line:0 +#: model:ir.actions.act_window,name:account.action_tax_form +#: model:ir.ui.menu,name:account.account_template_taxes +#: model:ir.ui.menu,name:account.menu_action_tax_form +#: model:ir.ui.menu,name:account.menu_tax_report +#: model:ir.ui.menu,name:account.next_id_27 +msgid "Taxes" +msgstr "" + +#. module: account +#: code:addons/account/wizard/account_financial_report.py:69 +#: code:addons/account/wizard/account_report_common.py:144 +#, python-format +msgid "Select a starting and an ending period" +msgstr "" + +#. module: account +#: model:account.financial.report,name:account.account_financial_report_profitandloss0 +msgid "Profit and Loss" +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_account_account_template +msgid "Templates for Accounts" +msgstr "" + +#. module: account +#: view:account.tax.code.template:0 +msgid "Search tax template" +msgstr "" + +#. module: account +#: view:account.move.reconcile:0 +#: model:ir.actions.act_window,name:account.action_account_reconcile_select +#: model:ir.actions.act_window,name:account.action_view_account_move_line_reconcile +msgid "Reconcile Entries" +msgstr "" + +#. module: account +#: model:ir.actions.report.xml,name:account.account_overdue +#: view:res.company:0 +msgid "Overdue Payments" +msgstr "" + +#. module: account +#: report:account.third_party_ledger:0 +#: report:account.third_party_ledger_other:0 +msgid "Initial Balance" +msgstr "" + +#. module: account +#: view:account.invoice:0 +msgid "Reset to Draft" +msgstr "" + +#. module: account +#: view:wizard.multi.charts.accounts:0 +msgid "Bank Information" +msgstr "" + +#. module: account +#: view:account.aged.trial.balance:0 +#: view:account.common.report:0 +msgid "Report Options" +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_account_entries_report +msgid "Journal Items Analysis" +msgstr "" + +#. module: account +#: model:ir.ui.menu,name:account.next_id_22 +msgid "Partners" +msgstr "" + +#. module: account +#: view:account.bank.statement:0 +#: model:ir.model,name:account.model_account_bank_statement +#: model:process.node,name:account.process_node_accountingstatemententries0 +#: model:process.node,name:account.process_node_bankstatement0 +#: model:process.node,name:account.process_node_supplierbankstatement0 +msgid "Bank Statement" +msgstr "" + +#. module: account +#: field:res.partner,property_account_receivable:0 +msgid "Account Receivable" +msgstr "" + +#. module: account +#: model:ir.actions.report.xml,name:account.account_central_journal +msgid "Central Journal" +msgstr "" + +#. module: account +#: selection:account.balance.report,display_account:0 +#: selection:account.common.account.report,display_account:0 +#: selection:account.partner.balance,display_partner:0 +#: selection:account.report.general.ledger,display_account:0 +msgid "With balance is not equal to 0" +msgstr "" + +#. module: account +#: view:account.tax:0 +msgid "Search Taxes" +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_account_analytic_cost_ledger +msgid "Account Analytic Cost Ledger" +msgstr "" + +#. module: account +#: view:account.model:0 +msgid "Create entries" +msgstr "" + +#. module: account +#: field:account.entries.report,nbr:0 +msgid "# of Items" +msgstr "" + +#. module: account +#: field:account.automatic.reconcile,max_amount:0 +msgid "Maximum write-off amount" +msgstr "" + +#. module: account +#: view:account.invoice:0 +msgid "Compute Taxes" +msgstr "" + +#. module: account +#: field:account.chart.template,code_digits:0 +#: field:wizard.multi.charts.accounts,code_digits:0 +msgid "# of Digits" +msgstr "" + +#. module: account +#: field:account.journal,entry_posted:0 +msgid "Skip 'Draft' State for Manual Entries" +msgstr "" + +#. module: account +#: view:account.invoice.report:0 +#: field:account.invoice.report,price_total:0 +msgid "Total Without Tax" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,help:account.action_move_journal_line +msgid "" +"A journal entry consists of several journal items, each of which is either a " +"debit or a credit transaction. OpenERP automatically creates one journal " +"entry per accounting document: invoice, refund, supplier payment, bank " +"statements, etc." +msgstr "" +"Un asiento de diario se compone de varios elementos del diario, cada uno " +"puede ser una transacción de crédito o débito. OpenERP crea automáticamente " +"una entrada en un diario por cada documento contable: factura, reembolso, " +"pago a proveedor, extractos de cuenta bancaria, etc" + +#. module: account +#: view:account.entries.report:0 +msgid "# of Entries " +msgstr "" + +#. module: account +#: help:account.fiscal.position,active:0 +msgid "" +"By unchecking the active field, you may hide a fiscal position without " +"deleting it." +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_temp_range +msgid "A Temporary table used for Dashboard view" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,name:account.action_invoice_tree4 +#: model:ir.ui.menu,name:account.menu_action_invoice_tree4 +msgid "Supplier Refunds" +msgstr "Nota de Crédito de proveedor" + +#. module: account +#: selection:account.account,type:0 +#: selection:account.account.template,type:0 +#: selection:account.bank.statement,state:0 +#: selection:account.entries.report,type:0 +#: view:account.fiscalyear:0 +#: selection:account.fiscalyear,state:0 +#: selection:account.period,state:0 +msgid "Closed" +msgstr "" + +#. module: account +#: model:ir.ui.menu,name:account.menu_finance_recurrent_entries +msgid "Recurring Entries" +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_account_fiscal_position_template +msgid "Template for Fiscal Position" +msgstr "" + +#. module: account +#: field:account.automatic.reconcile,reconciled:0 +msgid "Reconciled transactions" +msgstr "" + +#. module: account +#: field:account.journal.view,columns_id:0 +msgid "Columns" +msgstr "" + +#. module: account +#: report:account.overdue:0 +msgid "." +msgstr "" + +#. module: account +#: view:account.analytic.cost.ledger.journal.report:0 +msgid "and Journals" +msgstr "" + +#. module: account +#: field:account.journal,groups_id:0 +msgid "Groups" +msgstr "" + +#. module: account +#: field:account.invoice,amount_untaxed:0 +#: field:report.invoice.created,amount_untaxed:0 +msgid "Untaxed" +msgstr "" + +#. module: account +#: view:account.partner.reconcile.process:0 +msgid "Go to Next Partner" +msgstr "" + +#. module: account +#: view:account.bank.statement:0 +msgid "Search Bank Statements" +msgstr "" + +#. module: account +#: view:account.move.line:0 +msgid "Unposted Journal Items" +msgstr "" + +#. module: account +#: view:account.chart.template:0 +#: field:account.chart.template,property_account_payable:0 +msgid "Payable Account" +msgstr "" + +#. module: account +#: field:account.tax,account_paid_id:0 +#: field:account.tax.template,account_paid_id:0 +msgid "Refund Tax Account" +msgstr "Cuenta impuestos de reintegros" + +#. module: account +#: view:account.bank.statement:0 +#: field:account.bank.statement,line_ids:0 +msgid "Statement lines" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,help:account.action_bank_statement_tree +msgid "" +"A bank statement is a summary of all financial transactions occurring over a " +"given period of time on a deposit account, a credit card or any other type " +"of financial account. The starting balance will be proposed automatically " +"and the closing balance is to be found on your statement. When you are in " +"the Payment column of a line, you can press F1 to open the reconciliation " +"form." +msgstr "" + +#. module: account +#: report:account.analytic.account.cost_ledger:0 +msgid "Date/Code" +msgstr "" + +#. module: account +#: field:account.analytic.line,general_account_id:0 +#: view:analytic.entries.report:0 +#: field:analytic.entries.report,general_account_id:0 +msgid "General Account" +msgstr "" + +#. module: account +#: field:res.partner,debit_limit:0 +msgid "Payable Limit" +msgstr "" + +#. module: account +#: report:account.invoice:0 +#: view:account.invoice:0 +#: view:account.invoice.report:0 +#: field:account.move.line,invoice:0 +#: model:ir.model,name:account.model_account_invoice +#: model:res.request.link,name:account.req_link_invoice +msgid "Invoice" +msgstr "" + +#. module: account +#: model:process.node,note:account.process_node_analytic0 +#: model:process.node,note:account.process_node_analyticcost0 +msgid "Analytic costs to invoice" +msgstr "" + +#. module: account +#: view:ir.sequence:0 +msgid "Fiscal Year Sequence" +msgstr "" + +#. module: account +#: field:wizard.multi.charts.accounts,seq_journal:0 +msgid "Separated Journal Sequences" +msgstr "" + +#. module: account +#: view:account.invoice:0 +msgid "Responsible" +msgstr "" + +#. module: account +#: view:account.invoice.refund:0 +msgid "" +"Cancel Invoice: Creates the refund invoice, validate and reconcile it to " +"cancel the current invoice." +msgstr "" +"Cancelar factura: Crea la Nota de Crédito, la valida y concilia para " +"cancelar la factura actual." + +#. module: account +#: model:ir.ui.menu,name:account.periodical_processing_invoicing +msgid "Invoicing" +msgstr "" + +#. module: account +#: code:addons/account/report/account_partner_balance.py:115 +#, python-format +msgid "Unknown Partner" +msgstr "" + +#. module: account +#: field:account.tax.code,sum:0 +msgid "Year Sum" +msgstr "" + +#. module: account +#: code:addons/account/account_invoice.py:1429 +#, python-format +msgid "" +"You selected an Unit of Measure which is not compatible with the product." +msgstr "" + +#. module: account +#: view:account.change.currency:0 +msgid "This wizard will change the currency of the invoice" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,help:account.action_account_chart +msgid "" +"Display your company chart of accounts per fiscal year and filter by period. " +"Have a complete tree view of all journal items per account code by clicking " +"on an account." +msgstr "" + +#. module: account +#: view:account.analytic.account:0 +msgid "Pending Accounts" +msgstr "" + +#. module: account +#: view:account.tax.template:0 +msgid "Tax Declaration" +msgstr "" + +#. module: account +#: help:account.journal.period,active:0 +msgid "" +"If the active field is set to False, it will allow you to hide the journal " +"period without removing it." +msgstr "" + +#. module: account +#: view:res.partner:0 +msgid "Supplier Debit" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,name:account.act_account_partner_account_move_all +msgid "Receivables & Payables" +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_account_common_journal_report +msgid "Account Common Journal Report" +msgstr "" + +#. module: account +#: selection:account.partner.balance,display_partner:0 +msgid "All Partners" +msgstr "" + +#. module: account +#: view:account.analytic.chart:0 +msgid "Analytic Account Charts" +msgstr "" + +#. module: account +#: view:account.analytic.line:0 +#: view:analytic.entries.report:0 +msgid "My Entries" +msgstr "" + +#. module: account +#: report:account.overdue:0 +msgid "Customer Ref:" +msgstr "" + +#. module: account +#: code:addons/account/account_cash_statement.py:292 +#, python-format +msgid "User %s does not have rights to access %s journal !" +msgstr "" + +#. module: account +#: help:account.period,special:0 +msgid "These periods can overlap." +msgstr "" + +#. module: account +#: model:process.node,name:account.process_node_draftstatement0 +msgid "Draft statement" +msgstr "" + +#. module: account +#: view:account.tax:0 +msgid "Tax Declaration: Credit Notes" +msgstr "" + +#. module: account +#: field:account.move.line.reconcile,credit:0 +msgid "Credit amount" +msgstr "" + +#. module: account +#: code:addons/account/account.py:407 +#: code:addons/account/account.py:412 +#: code:addons/account/account.py:429 +#, python-format +msgid "Error!" +msgstr "" + +#. module: account +#: sql_constraint:account.move.line:0 +msgid "Wrong credit or debit value in accounting entry !" +msgstr "" + +#. module: account +#: view:account.invoice.report:0 +#: model:ir.actions.act_window,name:account.action_account_invoice_report_all +#: model:ir.ui.menu,name:account.menu_action_account_invoice_report_all +msgid "Invoices Analysis" +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_account_period_close +msgid "period close" +msgstr "" + +#. module: account +#: view:account.installer:0 +msgid "Configure Fiscal Year" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,name:account.action_project_account_analytic_line_form +msgid "Entries By Line" +msgstr "" + +#. module: account +#: field:account.vat.declaration,based_on:0 +msgid "Based on" +msgstr "" + +#. module: account +#: field:account.invoice,move_id:0 +#: field:account.invoice,move_name:0 +msgid "Journal Entry" +msgstr "" + +#. module: account +#: view:account.tax:0 +msgid "Tax Declaration: Invoices" +msgstr "" + +#. module: account +#: field:account.cashbox.line,subtotal:0 +msgid "Sub Total" +msgstr "" + +#. module: account +#: view:account.account:0 +#: view:account.treasury.report:0 +#: model:ir.actions.act_window,name:account.action_account_treasury_report_all +#: model:ir.model,name:account.model_account_treasury_report +#: model:ir.ui.menu,name:account.menu_action_account_treasury_report_all +msgid "Treasury Analysis" +msgstr "" + +#. module: account +#: constraint:res.company:0 +msgid "Error! You can not create recursive companies." +msgstr "" + +#. module: account +#: model:ir.actions.report.xml,name:account.account_journal_sale_purchase +msgid "Sale/Purchase Journal" +msgstr "" + +#. module: account +#: view:account.analytic.account:0 +msgid "Analytic account" +msgstr "" + +#. module: account +#: code:addons/account/account_bank_statement.py:339 +#, python-format +msgid "Please verify that an account is defined in the journal." +msgstr "" + +#. module: account +#: selection:account.entries.report,move_line_state:0 +#: selection:account.move.line,state:0 +msgid "Valid" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,name:account.action_account_print_journal +#: model:ir.model,name:account.model_account_print_journal +msgid "Account Print Journal" +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_product_category +msgid "Product Category" +msgstr "" + +#. module: account +#: selection:account.account.type,report_type:0 +msgid "/" +msgstr "" + +#. module: account +#: help:res.company,property_reserve_and_surplus_account:0 +msgid "" +"This account is used for transferring Profit/Loss (If It is Profit: Amount " +"will be added, Loss : Amount will be deducted.), as calculated in Profit & " +"Loss Report" +msgstr "" + +#. module: account +#: model:process.node,note:account.process_node_reconciliation0 +#: model:process.node,note:account.process_node_supplierreconciliation0 +msgid "Comparison between accounting and payment entries" +msgstr "" + +#. module: account +#: view:account.tax:0 +#: view:account.tax.template:0 +msgid "Tax Definition" +msgstr "" + +#. module: account +#: help:wizard.multi.charts.accounts,seq_journal:0 +msgid "" +"Check this box if you want to use a different sequence for each created " +"journal. Otherwise, all will use the same sequence." +msgstr "" + +#. module: account +#: help:account.partner.ledger,amount_currency:0 +#: help:account.report.general.ledger,amount_currency:0 +msgid "" +"It adds the currency column if the currency is different then the company " +"currency" +msgstr "" + +#. module: account +#: help:account.journal,allow_date:0 +msgid "" +"If set to True then do not accept the entry if the entry date is not into " +"the period dates" +msgstr "" + +#. module: account +#: code:addons/account/account_invoice.py:73 +#, python-format +msgid "You must define an analytic journal of type '%s'!" +msgstr "" + +#. module: account +#: field:account.installer,config_logo:0 +#: field:wizard.multi.charts.accounts,config_logo:0 +msgid "Image" +msgstr "" + +#. module: account +#: constraint:account.move.line:0 +msgid "" +"The selected account of your Journal Entry forces to provide a secondary " +"currency. You should remove the secondary currency on the account or select " +"a multi-currency view on the journal." +msgstr "" + +#. module: account +#: model:ir.actions.act_window,help:account.action_account_financial_report_tree +msgid "Makes a generic system to draw financial reports easily." +msgstr "" + +#. module: account +#: view:account.invoice:0 +#: view:report.invoice.created:0 +msgid "Untaxed Amount" +msgstr "" + +#. module: account +#: help:account.tax,active:0 +msgid "" +"If the active field is set to False, it will allow you to hide the tax " +"without removing it." +msgstr "" + +#. module: account +#: view:account.analytic.line:0 +msgid "Analytic Journal Items related to a sale journal." +msgstr "" + +#. module: account +#: selection:account.financial.report,style_overwrite:0 +msgid "Italic Text (smaller)" +msgstr "" + +#. module: account +#: view:account.bank.statement:0 +#: view:account.invoice:0 +#: selection:account.invoice,state:0 +#: view:account.invoice.report:0 +#: selection:account.invoice.report,state:0 +#: selection:account.journal.period,state:0 +#: view:account.subscription:0 +#: selection:account.subscription,state:0 +#: selection:report.invoice.created,state:0 +msgid "Draft" +msgstr "" + +#. module: account +#: report:account.journal.period.print.sale.purchase:0 +msgid "VAT Declaration" +msgstr "" + +#. module: account +#: field:account.move.reconcile,line_partial_ids:0 +msgid "Partial Entry lines" +msgstr "" + +#. module: account +#: view:account.fiscalyear:0 +#: field:account.treasury.report,fiscalyear_id:0 +msgid "Fiscalyear" +msgstr "" + +#. module: account +#: view:account.journal.select:0 +#: view:project.account.analytic.line:0 +msgid "Open Entries" +msgstr "" + +#. module: account +#: field:account.automatic.reconcile,account_ids:0 +msgid "Accounts to Reconcile" +msgstr "" + +#. module: account +#: model:process.transition,note:account.process_transition_filestatement0 +msgid "Import of the statement in the system from an electronic file" +msgstr "" + +#. module: account +#: model:process.node,name:account.process_node_importinvoice0 +msgid "Import from invoice" +msgstr "" + +#. module: account +#: selection:account.entries.report,month:0 +#: selection:account.invoice.report,month:0 +#: selection:analytic.entries.report,month:0 +#: selection:report.account.sales,month:0 +#: selection:report.account_type.sales,month:0 +msgid "January" +msgstr "" + +#. module: account +#: view:account.journal:0 +msgid "Validations" +msgstr "" + +#. module: account +#: view:account.entries.report:0 +msgid "This F.Year" +msgstr "" + +#. module: account +#: view:account.tax.chart:0 +msgid "Account tax charts" +msgstr "" + +#. module: account +#: constraint:account.period:0 +msgid "" +"Invalid period ! Some periods overlap or the date period is not in the scope " +"of the fiscal year. " +msgstr "" + +#. module: account +#: code:addons/account/account_bank_statement.py:357 +#, python-format +msgid "You have to assign an analytic journal on the '%s' journal!" +msgstr "" + +#. module: account +#: selection:account.invoice,state:0 +#: view:account.invoice.report:0 +#: selection:account.invoice.report,state:0 +#: selection:report.invoice.created,state:0 +msgid "Pro-forma" +msgstr "" + +#. module: account +#: code:addons/account/account.py:1461 +#, python-format +msgid "" +"There is no default default debit account defined \n" +"on journal \"%s\"" +msgstr "" + +#. module: account +#: help:account.account.template,type:0 +#: help:account.entries.report,type:0 +msgid "" +"This type is used to differentiate types with special effects in OpenERP: " +"view can not have entries, consolidation are accounts that can have children " +"accounts for multi-company consolidations, payable/receivable are for " +"partners accounts (for debit/credit computations), closed for depreciated " +"accounts." +msgstr "" + +#. module: account +#: view:account.chart.template:0 +msgid "Search Chart of Account Templates" +msgstr "" + +#. module: account +#: code:addons/account/account_move_line.py:1277 +#, python-format +msgid "" +"Can not create an automatic sequence for this piece!\n" +"Put a sequence in the journal definition for automatic numbering or create a " +"sequence manually for this piece." +msgstr "" + +#. module: account +#: code:addons/account/account.py:787 +#, python-format +msgid "" +"You can not modify the company of this journal as its related record exist " +"in journal items" +msgstr "" + +#. module: account +#: report:account.invoice:0 +msgid "Customer Code" +msgstr "" + +#. module: account +#: view:account.installer:0 +msgid "" +"The default Chart of Accounts is matching your country selection. If no " +"certified Chart of Accounts exists for your specified country, a generic one " +"can be installed and will be selected by default." +msgstr "" + +#. module: account +#: view:account.account.type:0 +#: field:account.account.type,note:0 +#: view:account.analytic.account:0 +#: report:account.invoice:0 +#: field:account.invoice,name:0 +#: field:account.invoice.line,name:0 +#: field:account.invoice.refund,description:0 +#: report:account.overdue:0 +#: field:account.payment.term,note:0 +#: view:account.tax.code:0 +#: field:account.tax.code,info:0 +#: view:account.tax.code.template:0 +#: field:account.tax.code.template,info:0 +#: field:analytic.entries.report,name:0 +#: field:report.invoice.created,name:0 +msgid "Description" +msgstr "" + +#. module: account +#: code:addons/account/account.py:3119 +#, python-format +msgid "ECNJ" +msgstr "" + +#. module: account +#: view:account.subscription:0 +#: selection:account.subscription,state:0 +msgid "Running" +msgstr "" + +#. module: account +#: view:account.chart.template:0 +#: field:product.category,property_account_income_categ:0 +#: field:product.template,property_account_income:0 +msgid "Income Account" +msgstr "" + +#. module: account +#: code:addons/account/account_invoice.py:370 +#, python-format +msgid "There is no Accounting Journal of type Sale/Purchase defined!" +msgstr "" + +#. module: account +#: constraint:res.partner.bank:0 +msgid "The RIB and/or IBAN is not valid" +msgstr "" + +#. module: account +#: view:product.category:0 +msgid "Accounting Properties" +msgstr "" + +#. module: account +#: report:account.general.ledger_landscape:0 +#: report:account.journal.period.print:0 +#: report:account.journal.period.print.sale.purchase:0 +msgid "Entries Sorted By" +msgstr "" + +#. module: account +#: field:account.change.currency,currency_id:0 +msgid "Change to" +msgstr "" + +#. module: account +#: view:account.entries.report:0 +msgid "# of Products Qty " +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_product_template +msgid "Product Template" +msgstr "" + +#. module: account +#: report:account.account.balance:0 +#: field:account.aged.trial.balance,fiscalyear_id:0 +#: field:account.balance.report,fiscalyear_id:0 +#: report:account.central.journal:0 +#: field:account.central.journal,fiscalyear_id:0 +#: field:account.common.account.report,fiscalyear_id:0 +#: field:account.common.journal.report,fiscalyear_id:0 +#: field:account.common.partner.report,fiscalyear_id:0 +#: field:account.common.report,fiscalyear_id:0 +#: view:account.entries.report:0 +#: field:account.entries.report,fiscalyear_id:0 +#: field:account.fiscalyear,name:0 +#: report:account.general.journal:0 +#: field:account.general.journal,fiscalyear_id:0 +#: report:account.general.ledger:0 +#: report:account.general.ledger_landscape:0 +#: field:account.journal.period,fiscalyear_id:0 +#: report:account.journal.period.print:0 +#: report:account.journal.period.print.sale.purchase:0 +#: report:account.partner.balance:0 +#: field:account.partner.balance,fiscalyear_id:0 +#: field:account.partner.ledger,fiscalyear_id:0 +#: field:account.period,fiscalyear_id:0 +#: field:account.print.journal,fiscalyear_id:0 +#: field:account.report.general.ledger,fiscalyear_id:0 +#: field:account.sequence.fiscalyear,fiscalyear_id:0 +#: report:account.third_party_ledger:0 +#: report:account.third_party_ledger_other:0 +#: report:account.vat.declaration:0 +#: field:account.vat.declaration,fiscalyear_id:0 +#: field:accounting.report,fiscalyear_id:0 +#: field:accounting.report,fiscalyear_id_cmp:0 +#: model:ir.model,name:account.model_account_fiscalyear +msgid "Fiscal Year" +msgstr "" + +#. module: account +#: help:account.aged.trial.balance,fiscalyear_id:0 +#: help:account.balance.report,fiscalyear_id:0 +#: help:account.central.journal,fiscalyear_id:0 +#: help:account.common.account.report,fiscalyear_id:0 +#: help:account.common.journal.report,fiscalyear_id:0 +#: help:account.common.partner.report,fiscalyear_id:0 +#: help:account.common.report,fiscalyear_id:0 +#: help:account.general.journal,fiscalyear_id:0 +#: help:account.partner.balance,fiscalyear_id:0 +#: help:account.partner.ledger,fiscalyear_id:0 +#: help:account.print.journal,fiscalyear_id:0 +#: help:account.report.general.ledger,fiscalyear_id:0 +#: help:account.vat.declaration,fiscalyear_id:0 +#: help:accounting.report,fiscalyear_id:0 +#: help:accounting.report,fiscalyear_id_cmp:0 +msgid "Keep empty for all open fiscal year" +msgstr "" + +#. module: account +#: field:account.invoice.report,account_line_id:0 +msgid "Account Line" +msgstr "" + +#. module: account +#: code:addons/account/account.py:1468 +#, python-format +msgid "" +"There is no default default credit account defined \n" +"on journal \"%s\"" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,help:account.action_review_financial_journals_installer +msgid "" +"Setup your accounting journals. For bank accounts, it's better to use the " +"'Setup Your Bank Accounts' tool that will automatically create the accounts " +"and journals for you." +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_account_move +msgid "Account Entry" +msgstr "" + +#. module: account +#: constraint:res.partner:0 +msgid "Error ! You cannot create recursive associated members." +msgstr "" + +#. module: account +#: field:account.sequence.fiscalyear,sequence_main_id:0 +msgid "Main Sequence" +msgstr "" + +#. module: account +#: code:addons/account/account_bank_statement.py:402 +#, python-format +msgid "" +"In order to delete a bank statement, you must first cancel it to delete " +"related journal items." +msgstr "" + +#. module: account +#: field:account.invoice,payment_term:0 +#: field:account.invoice.report,payment_term:0 +#: view:account.payment.term:0 +#: field:account.payment.term,name:0 +#: view:account.payment.term.line:0 +#: field:account.payment.term.line,payment_id:0 +#: model:ir.model,name:account.model_account_payment_term +#: field:res.partner,property_payment_term:0 +msgid "Payment Term" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,name:account.action_account_fiscal_position_form +#: model:ir.ui.menu,name:account.menu_action_account_fiscal_position_form +msgid "Fiscal Positions" +msgstr "" + +#. module: account +#: constraint:account.account:0 +#: constraint:account.tax.code:0 +msgid "Error ! You can not create recursive accounts." +msgstr "" + +#. module: account +#: field:account.period.close,sure:0 +msgid "Check this box" +msgstr "" + +#. module: account +#: view:account.common.report:0 +msgid "Filters" +msgstr "" + +#. module: account +#: view:account.bank.statement:0 +#: selection:account.bank.statement,state:0 +#: view:account.fiscalyear:0 +#: selection:account.fiscalyear,state:0 +#: selection:account.invoice,state:0 +#: selection:account.invoice.report,state:0 +#: view:account.open.closed.fiscalyear:0 +#: selection:account.period,state:0 +#: code:addons/account/wizard/account_move_journal.py:106 +#: selection:report.invoice.created,state:0 +#, python-format +msgid "Open" +msgstr "" + +#. module: account +#: model:process.node,note:account.process_node_draftinvoices0 +#: model:process.node,note:account.process_node_supplierdraftinvoices0 +msgid "Draft state of an invoice" +msgstr "" + +#. module: account +#: view:account.partner.reconcile.process:0 +msgid "Partner Reconciliation" +msgstr "" + +#. module: account +#: field:account.tax,tax_code_id:0 +#: view:account.tax.code:0 +msgid "Account Tax Code" +msgstr "" + +#. module: account +#: code:addons/account/account_invoice.py:572 +#, python-format +msgid "" +"Can't find any account journal of %s type for this company.\n" +"\n" +"You can create one in the menu: \n" +"Configuration\\Financial Accounting\\Accounts\\Journals." +msgstr "" + +#. module: account +#: model:account.payment.term,name:account.account_payment_term_advance +#: model:account.payment.term,note:account.account_payment_term_advance +msgid "30% Advance End 30 Days" +msgstr "" + +#. module: account +#: view:account.entries.report:0 +msgid "Unreconciled entries" +msgstr "" + +#. module: account +#: field:account.invoice.tax,base_code_id:0 +#: field:account.tax.template,base_code_id:0 +msgid "Base Code" +msgstr "" + +#. module: account +#: help:account.invoice.tax,sequence:0 +msgid "Gives the sequence order when displaying a list of invoice tax." +msgstr "" + +#. module: account +#: field:account.tax,base_sign:0 +#: field:account.tax,ref_base_sign:0 +#: field:account.tax.template,base_sign:0 +#: field:account.tax.template,ref_base_sign:0 +msgid "Base Code Sign" +msgstr "" + +#. module: account +#: view:account.vat.declaration:0 +msgid "" +"This menu prints a VAT declaration based on invoices or payments. Select one " +"or several periods of the fiscal year. The information required for a tax " +"declaration is automatically generated by OpenERP from invoices (or " +"payments, in some countries). This data is updated in real time. That’s very " +"useful because it enables you to preview at any time the tax that you owe at " +"the start and end of the month or quarter." +msgstr "" + +#. module: account +#: selection:account.move.line,centralisation:0 +msgid "Debit Centralisation" +msgstr "" + +#. module: account +#: view:account.invoice.confirm:0 +#: model:ir.actions.act_window,name:account.action_account_invoice_confirm +msgid "Confirm Draft Invoices" +msgstr "" + +#. module: account +#: field:account.entries.report,day:0 +#: view:account.invoice.report:0 +#: field:account.invoice.report,day:0 +#: view:analytic.entries.report:0 +#: field:analytic.entries.report,day:0 +msgid "Day" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,name:account.act_account_renew_view +msgid "Accounts to Renew" +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_account_model_line +msgid "Account Model Entries" +msgstr "" + +#. module: account +#: code:addons/account/account.py:3117 +#, python-format +msgid "EXJ" +msgstr "" + +#. module: account +#: field:product.template,supplier_taxes_id:0 +msgid "Supplier Taxes" +msgstr "" + +#. module: account +#: view:account.entries.report:0 +msgid "entries" +msgstr "" + +#. module: account +#: help:account.invoice,date_due:0 +#: help:account.invoice,payment_term:0 +msgid "" +"If you use payment terms, the due date will be computed automatically at the " +"generation of accounting entries. If you keep the payment term and the due " +"date empty, it means direct payment. The payment term may compute several " +"due dates, for example 50% now, 50% in one month." +msgstr "" + +#. module: account +#: view:account.analytic.cost.ledger.journal.report:0 +msgid "Select period" +msgstr "" + +#. module: account +#: model:ir.ui.menu,name:account.menu_account_pp_statements +msgid "Statements" +msgstr "" + +#. module: account +#: report:account.analytic.account.journal:0 +msgid "Move Name" +msgstr "" + +#. module: account +#: help:res.partner,property_account_position:0 +msgid "" +"The fiscal position will determine taxes and the accounts used for the " +"partner." +msgstr "" + +#. module: account +#: view:account.print.journal:0 +msgid "" +"This report gives you an overview of the situation of a specific journal" +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_account_move_line_reconcile_writeoff +msgid "Account move line reconcile (writeoff)" +msgstr "" + +#. module: account +#: model:account.account.type,name:account.account_type_tax +#: report:account.invoice:0 +#: field:account.invoice,amount_tax:0 +#: field:account.move.line,account_tax_id:0 +msgid "Tax" +msgstr "" + +#. module: account +#: view:account.analytic.account:0 +#: field:account.bank.statement.line,analytic_account_id:0 +#: field:account.entries.report,analytic_account_id:0 +#: field:account.invoice.line,account_analytic_id:0 +#: field:account.model.line,analytic_account_id:0 +#: field:account.move.line,analytic_account_id:0 +#: field:account.move.line.reconcile.writeoff,analytic_id:0 +msgid "Analytic Account" +msgstr "" + +#. module: account +#: view:account.account:0 +#: field:account.financial.report,account_ids:0 +#: selection:account.financial.report,type:0 +#: view:account.journal:0 +#: model:ir.actions.act_window,name:account.action_account_form +#: model:ir.ui.menu,name:account.account_account_menu +#: model:ir.ui.menu,name:account.account_template_accounts +#: model:ir.ui.menu,name:account.menu_action_account_form +#: model:ir.ui.menu,name:account.menu_analytic +msgid "Accounts" +msgstr "" + +#. module: account +#: code:addons/account/account_invoice.py:369 +#, python-format +msgid "Configuration Error!" +msgstr "" + +#. module: account +#: field:account.invoice.report,price_average:0 +msgid "Average Price" +msgstr "" + +#. module: account +#: report:account.overdue:0 +msgid "Date:" +msgstr "" + +#. module: account +#: report:account.journal.period.print:0 +#: report:account.journal.period.print.sale.purchase:0 +msgid "Label" +msgstr "" + +#. module: account +#: view:account.tax:0 +#: view:res.partner.bank:0 +msgid "Accounting Information" +msgstr "" + +#. module: account +#: view:account.tax:0 +#: view:account.tax.template:0 +msgid "Special Computation" +msgstr "" + +#. module: account +#: view:account.move.bank.reconcile:0 +#: model:ir.actions.act_window,name:account.action_account_bank_reconcile_tree +msgid "Bank reconciliation" +msgstr "" + +#. module: account +#: report:account.invoice:0 +msgid "Disc.(%)" +msgstr "" + +#. module: account +#: report:account.general.ledger:0 +#: report:account.general.ledger_landscape:0 +#: report:account.overdue:0 +#: report:account.third_party_ledger:0 +#: report:account.third_party_ledger_other:0 +msgid "Ref" +msgstr "" + +#. module: account +#: help:account.move.line,tax_code_id:0 +msgid "The Account can either be a base tax code or a tax code account." +msgstr "" + +#. module: account +#: sql_constraint:account.model.line:0 +msgid "Wrong credit or debit value in model, they must be positive!" +msgstr "" + +#. module: account +#: model:ir.ui.menu,name:account.menu_automatic_reconcile +msgid "Automatic Reconciliation" +msgstr "" + +#. module: account +#: field:account.invoice,reconciled:0 +msgid "Paid/Reconciled" +msgstr "" + +#. module: account +#: field:account.tax,ref_base_code_id:0 +#: field:account.tax.template,ref_base_code_id:0 +msgid "Refund Base Code" +msgstr "Código base reintegro" + +#. module: account +#: selection:account.tax.template,applicable_type:0 +msgid "True" +msgstr "" + +#. module: account +#: view:account.bank.statement:0 +#: view:account.common.report:0 +#: view:account.move:0 +#: view:account.move.line:0 +#: view:accounting.report:0 +msgid "Dates" +msgstr "" + +#. module: account +#: field:account.chart.template,parent_id:0 +msgid "Parent Chart Template" +msgstr "" + +#. module: account +#: field:account.tax,parent_id:0 +#: field:account.tax.template,parent_id:0 +msgid "Parent Tax Account" +msgstr "" + +#. module: account +#: code:addons/account/wizard/account_change_currency.py:59 +#, python-format +msgid "New currency is not configured properly !" +msgstr "" + +#. module: account +#: view:account.subscription.generate:0 +msgid "" +"Automatically generate entries based on what has been entered in the system " +"before a specific date." +msgstr "" + +#. module: account +#: view:account.aged.trial.balance:0 +#: model:ir.actions.act_window,name:account.action_account_aged_balance_view +#: model:ir.ui.menu,name:account.menu_aged_trial_balance +msgid "Aged Partner Balance" +msgstr "" + +#. module: account +#: model:process.transition,name:account.process_transition_entriesreconcile0 +#: model:process.transition,name:account.process_transition_supplierentriesreconcile0 +msgid "Accounting entries" +msgstr "" + +#. module: account +#: field:account.invoice,reference_type:0 +msgid "Communication Type" +msgstr "" + +#. module: account +#: field:account.invoice.line,discount:0 +msgid "Discount (%)" +msgstr "" + +#. module: account +#: help:account.journal,entry_posted:0 +msgid "" +"Check this box if you don't want new journal entries to pass through the " +"'draft' state and instead goes directly to the 'posted state' without any " +"manual validation. \n" +"Note that journal entries that are automatically created by the system are " +"always skipping that state." +msgstr "" + +#. module: account +#: model:ir.actions.server,name:account.ir_actions_server_action_wizard_multi_chart +#: model:ir.ui.menu,name:account.menu_act_ir_actions_bleble +msgid "New Company Financial Setting" +msgstr "" + +#. module: account +#: view:account.installer:0 +msgid "Configure Your Chart of Accounts" +msgstr "" + +#. module: account +#: view:account.use.model:0 +msgid "This wizard will create recurring accounting entries" +msgstr "" + +#. module: account +#: code:addons/account/account.py:1321 +#, python-format +msgid "No sequence defined on the journal !" +msgstr "" + +#. module: account +#: code:addons/account/account.py:2268 +#: code:addons/account/account_invoice.py:688 +#: code:addons/account/account_move_line.py:173 +#, python-format +msgid "You have to define an analytic journal on the '%s' journal!" +msgstr "" + +#. module: account +#: code:addons/account/account.py:407 +#, python-format +msgid "" +"You need an Opening journal with centralisation checked to set the initial " +"balance!" +msgstr "" + +#. module: account +#: view:account.invoice.tax:0 +#: model:ir.actions.act_window,name:account.action_tax_code_list +#: model:ir.ui.menu,name:account.menu_action_tax_code_list +msgid "Tax Codes" +msgstr "" + +#. module: account +#: view:account.account:0 +msgid "Unrealized Gains and losses" +msgstr "" + +#. module: account +#: model:ir.ui.menu,name:account.menu_account_customer +#: model:ir.ui.menu,name:account.menu_finance_receivables +msgid "Customers" +msgstr "" + +#. module: account +#: report:account.analytic.account.cost_ledger:0 +#: report:account.analytic.account.journal:0 +#: report:account.analytic.account.quantity_cost_ledger:0 +msgid "Period to" +msgstr "" + +#. module: account +#: selection:account.entries.report,month:0 +#: selection:account.invoice.report,month:0 +#: selection:analytic.entries.report,month:0 +#: selection:report.account.sales,month:0 +#: selection:report.account_type.sales,month:0 +msgid "August" +msgstr "" + +#. module: account +#: model:process.transition,note:account.process_transition_paymentreconcile0 +msgid "Payment entries are the second input of the reconciliation." +msgstr "" + +#. module: account +#: selection:account.entries.report,month:0 +#: selection:account.invoice.report,month:0 +#: selection:analytic.entries.report,month:0 +#: selection:report.account.sales,month:0 +#: selection:report.account_type.sales,month:0 +msgid "October" +msgstr "" + +#. module: account +#: help:account.move.line,quantity:0 +msgid "" +"The optional quantity expressed by this line, eg: number of product sold. " +"The quantity is not a legal requirement but is very useful for some reports." +msgstr "" + +#. module: account +#: view:account.payment.term.line:0 +msgid "Line 2:" +msgstr "" + +#. module: account +#: field:account.journal.column,required:0 +msgid "Required" +msgstr "" + +#. module: account +#: view:account.chart.template:0 +#: field:product.category,property_account_expense_categ:0 +#: field:product.template,property_account_expense:0 +msgid "Expense Account" +msgstr "" + +#. module: account +#: help:account.invoice,period_id:0 +msgid "Keep empty to use the period of the validation(invoice) date." +msgstr "" + +#. module: account +#: help:account.bank.statement,account_id:0 +msgid "" +"used in statement reconciliation domain, but shouldn't be used elswhere." +msgstr "" + +#. module: account +#: field:account.invoice.tax,base_amount:0 +msgid "Base Code Amount" +msgstr "" + +#. module: account +#: code:addons/account/account_invoice.py:392 +#, python-format +msgid "" +"You can not delete an invoice which is open or paid. We suggest you to " +"refund it instead." +msgstr "" +"No puede borrar una factura que está abierta o pagada. Le sugerimos que cree " +"una Nota de Crédito en su lugar." + +#. module: account +#: field:wizard.multi.charts.accounts,sale_tax:0 +msgid "Default Sale Tax" +msgstr "" + +#. module: account +#: code:addons/account/account_invoice.py:1013 +#, python-format +msgid "Invoice '%s' is validated." +msgstr "" + +#. module: account +#: help:account.model.line,date_maturity:0 +msgid "" +"The maturity date of the generated entries for this model. You can choose " +"between the creation date or the creation date of the entries plus the " +"partner payment terms." +msgstr "" + +#. module: account +#: model:ir.ui.menu,name:account.menu_finance_accounting +msgid "Financial Accounting" +msgstr "" + +#. module: account +#: model:ir.ui.menu,name:account.menu_account_report_pl +msgid "Profit And Loss" +msgstr "" + +#. module: account +#: view:account.fiscal.position:0 +#: field:account.fiscal.position,name:0 +#: field:account.fiscal.position.account,position_id:0 +#: field:account.fiscal.position.tax,position_id:0 +#: field:account.fiscal.position.tax.template,position_id:0 +#: view:account.fiscal.position.template:0 +#: field:account.invoice,fiscal_position:0 +#: field:account.invoice.report,fiscal_position:0 +#: model:ir.model,name:account.model_account_fiscal_position +#: field:res.partner,property_account_position:0 +msgid "Fiscal Position" +msgstr "" + +#. module: account +#: code:addons/account/account_invoice.py:735 +#, python-format +msgid "" +"Tax base different!\n" +"Click on compute to update the tax base." +msgstr "" + +#. module: account +#: field:account.partner.ledger,page_split:0 +msgid "One Partner Per Page" +msgstr "" + +#. module: account +#: field:account.account,child_parent_ids:0 +#: field:account.account.template,child_parent_ids:0 +msgid "Children" +msgstr "" + +#. module: account +#: selection:account.invoice,type:0 +#: selection:account.invoice.report,type:0 +#: model:process.process,name:account.process_process_invoiceprocess0 +#: selection:report.invoice.created,type:0 +msgid "Customer Invoice" +msgstr "" + +#. module: account +#: help:account.tax.template,include_base_amount:0 +msgid "" +"Set if the amount of tax must be included in the base amount before " +"computing the next taxes." +msgstr "" + +#. module: account +#: help:account.journal,user_id:0 +msgid "The user responsible for this journal" +msgstr "" + +#. module: account +#: view:account.period:0 +msgid "Search Period" +msgstr "" + +#. module: account +#: view:account.change.currency:0 +msgid "Invoice Currency" +msgstr "" + +#. module: account +#: field:accounting.report,account_report_id:0 +#: model:ir.ui.menu,name:account.menu_account_financial_reports_tree +msgid "Account Reports" +msgstr "" + +#. module: account +#: field:account.payment.term,line_ids:0 +msgid "Terms" +msgstr "" + +#. module: account +#: field:account.bank.statement,total_entry_encoding:0 +msgid "Cash Transaction" +msgstr "" + +#. module: account +#: view:res.partner:0 +msgid "Bank account" +msgstr "" + +#. module: account +#: field:account.chart.template,tax_template_ids:0 +msgid "Tax Template List" +msgstr "" + +#. module: account +#: model:ir.ui.menu,name:account.menu_account_print_sale_purchase_journal +msgid "Sale/Purchase Journals" +msgstr "" + +#. module: account +#: help:account.account,currency_mode:0 +msgid "" +"This will select how the current currency rate for outgoing transactions is " +"computed. In most countries the legal method is \"average\" but only a few " +"software systems are able to manage this. So if you import from another " +"software system you may have to use the rate at date. Incoming transactions " +"always use the rate at date." +msgstr "" +"Permite seleccionar la forma en que se calcula la tasa de la divisa actual " +"en las transacciones de salida. En la mayoría de los países el método legal " +"es \"Promedio\", pero sólo unos pocos sistemas de software son capaces de " +"gestionarlo. Por lo tanto, si la importación procede de otro sistema de " +"software, es posible que tenga que utilizar la tasa \"En fecha\". Las " +"transacciones de entrada siempre utilizan la tasa \"En fecha\"." + +#. module: account +#: help:account.chart.template,code_digits:0 +#: help:wizard.multi.charts.accounts,code_digits:0 +msgid "No. of Digits to use for account code" +msgstr "" + +#. module: account +#: field:account.payment.term.line,name:0 +msgid "Line Name" +msgstr "" + +#. module: account +#: view:account.fiscalyear:0 +msgid "Search Fiscalyear" +msgstr "" + +#. module: account +#: selection:account.tax,applicable_type:0 +msgid "Always" +msgstr "" + +#. module: account +#: view:account.invoice.report:0 +#: view:analytic.entries.report:0 +msgid "Month-1" +msgstr "" + +#. module: account +#: view:account.analytic.line:0 +msgid "Total Quantity" +msgstr "" + +#. module: account +#: field:account.move.line.reconcile.writeoff,writeoff_acc_id:0 +msgid "Write-Off account" +msgstr "" + +#. module: account +#: field:account.model.line,model_id:0 +#: view:account.subscription:0 +#: field:account.subscription,model_id:0 +msgid "Model" +msgstr "" + +#. module: account +#: help:account.invoice.tax,base_code_id:0 +msgid "The account basis of the tax declaration." +msgstr "" + +#. module: account +#: selection:account.account,type:0 +#: selection:account.account.template,type:0 +#: selection:account.entries.report,type:0 +#: selection:account.financial.report,type:0 +msgid "View" +msgstr "" + +#. module: account +#: code:addons/account/account.py:3363 +#: code:addons/account/account_bank.py:90 +#, python-format +msgid "BNK" +msgstr "" + +#. module: account +#: field:account.move.line,analytic_lines:0 +msgid "Analytic lines" +msgstr "" + +#. module: account +#: view:account.invoice:0 +msgid "Proforma Invoices" +msgstr "" + +#. module: account +#: model:process.node,name:account.process_node_electronicfile0 +msgid "Electronic File" +msgstr "" + +#. module: account +#: view:res.partner:0 +msgid "Customer Credit" +msgstr "" + +#. module: account +#: view:account.payment.term.line:0 +msgid " Day of the Month: 0" +msgstr "" + +#. module: account +#: view:account.subscription:0 +msgid "Starts on" +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_account_partner_ledger +msgid "Account Partner Ledger" +msgstr "" + +#. module: account +#: help:account.journal.column,sequence:0 +msgid "Gives the sequence order to journal column." +msgstr "" + +#. module: account +#: help:account.account,currency_id:0 +#: help:account.account.template,currency_id:0 +#: help:account.bank.accounts.wizard,currency_id:0 +msgid "Forces all moves for this account to have this secondary currency." +msgstr "" + +#. module: account +#: model:ir.actions.act_window,help:account.action_validate_account_move_line +msgid "" +"This wizard will validate all journal entries of a particular journal and " +"period. Once journal entries are validated, you can not update them anymore." +msgstr "" + +#. module: account +#: model:ir.actions.act_window,name:account.action_account_chart_template_form +#: model:ir.ui.menu,name:account.menu_action_account_chart_template_form +msgid "Chart of Accounts Templates" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,name:account.action_wizard_multi_chart +msgid "Set Your Accounting Options" +msgstr "" + +#. module: account +#: view:report.account.sales:0 +msgid "This months' Sales by type" +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_account_unreconcile_reconcile +msgid "Account Unreconcile Reconcile" +msgstr "" + +#. module: account +#: sql_constraint:account.tax:0 +msgid "The description must be unique per company!" +msgstr "" + +#. module: account +#: help:account.account.type,close_method:0 +msgid "" +"Set here the method that will be used to generate the end of year journal " +"entries for all the accounts of this type.\n" +"\n" +" 'None' means that nothing will be done.\n" +" 'Balance' will generally be used for cash accounts.\n" +" 'Detail' will copy each existing journal item of the previous year, even " +"the reconciled ones.\n" +" 'Unreconciled' will copy only the journal items that were unreconciled on " +"the first day of the new fiscal year." +msgstr "" + +#. module: account +#: code:addons/account/wizard/account_open_closed_fiscalyear.py:39 +#, python-format +msgid "No End of year journal defined for the fiscal year" +msgstr "" + +#. module: account +#: view:account.tax:0 +#: view:account.tax.template:0 +msgid "Keep empty to use the expense account" +msgstr "" + +#. module: account +#: field:account.aged.trial.balance,journal_ids:0 +#: field:account.analytic.cost.ledger.journal.report,journal:0 +#: field:account.balance.report,journal_ids:0 +#: field:account.central.journal,journal_ids:0 +#: field:account.common.account.report,journal_ids:0 +#: field:account.common.journal.report,journal_ids:0 +#: field:account.common.partner.report,journal_ids:0 +#: view:account.common.report:0 +#: field:account.common.report,journal_ids:0 +#: report:account.general.journal:0 +#: field:account.general.journal,journal_ids:0 +#: report:account.general.ledger:0 +#: report:account.general.ledger_landscape:0 +#: view:account.journal.period:0 +#: report:account.partner.balance:0 +#: field:account.partner.balance,journal_ids:0 +#: field:account.partner.ledger,journal_ids:0 +#: view:account.print.journal:0 +#: field:account.print.journal,journal_ids:0 +#: field:account.report.general.ledger,journal_ids:0 +#: report:account.third_party_ledger:0 +#: report:account.third_party_ledger_other:0 +#: field:account.vat.declaration,journal_ids:0 +#: field:accounting.report,journal_ids:0 +#: model:ir.actions.act_window,name:account.action_account_journal_form +#: model:ir.actions.act_window,name:account.action_account_journal_period_tree +#: model:ir.ui.menu,name:account.menu_account_print_journal +#: model:ir.ui.menu,name:account.menu_action_account_journal_form +#: model:ir.ui.menu,name:account.menu_journals +#: model:ir.ui.menu,name:account.menu_journals_report +msgid "Journals" +msgstr "" + +#. module: account +#: field:account.partner.reconcile.process,to_reconcile:0 +msgid "Remaining Partners" +msgstr "" + +#. module: account +#: view:account.subscription:0 +#: field:account.subscription,lines_id:0 +msgid "Subscription Lines" +msgstr "" + +#. module: account +#: selection:account.analytic.journal,type:0 +#: view:account.journal:0 +#: selection:account.journal,type:0 +#: view:account.model:0 +#: selection:account.tax,type_tax_use:0 +#: view:account.tax.template:0 +#: selection:account.tax.template,type_tax_use:0 +msgid "Purchase" +msgstr "" + +#. module: account +#: view:account.installer:0 +#: view:wizard.multi.charts.accounts:0 +msgid "Accounting Application Configuration" +msgstr "" + +#. module: account +#: view:account.payment.term.line:0 +msgid " Value amount: 0.02" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,name:account.open_board_account +#: model:ir.ui.menu,name:account.menu_board_account +msgid "Accounting Dashboard" +msgstr "" + +#. module: account +#: field:account.bank.statement,balance_start:0 +#: field:account.treasury.report,starting_balance:0 +msgid "Starting Balance" +msgstr "" + +#. module: account +#: code:addons/account/account_invoice.py:1332 +#, python-format +msgid "No Partner Defined !" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,name:account.action_account_period_close +#: model:ir.actions.act_window,name:account.action_account_period_tree +#: model:ir.ui.menu,name:account.menu_action_account_period_close_tree +msgid "Close a Period" +msgstr "" + +#. module: account +#: field:account.financial.report,display_detail:0 +msgid "Display details" +msgstr "" + +#. module: account +#: report:account.overdue:0 +msgid "VAT:" +msgstr "" + +#. module: account +#: constraint:account.invoice:0 +msgid "Invalid BBA Structured Communication !" +msgstr "" + +#. module: account +#: help:account.analytic.line,amount_currency:0 +msgid "" +"The amount expressed in the related account currency if not equal to the " +"company one." +msgstr "" + +#. module: account +#: model:ir.actions.act_window,name:account.action_account_unreconcile +#: model:ir.actions.act_window,name:account.action_account_unreconcile_reconcile +#: model:ir.actions.act_window,name:account.action_account_unreconcile_select +msgid "Unreconcile Entries" +msgstr "" + +#. module: account +#: field:account.tax.code,notprintable:0 +#: field:account.tax.code.template,notprintable:0 +msgid "Not Printable in Invoice" +msgstr "" + +#. module: account +#: report:account.vat.declaration:0 +#: field:account.vat.declaration,chart_tax_id:0 +msgid "Chart of Tax" +msgstr "" + +#. module: account +#: code:addons/account/account_cash_statement.py:314 +#, python-format +msgid "The closing balance should be the same than the computed balance!" +msgstr "" + +#. module: account +#: view:account.journal:0 +msgid "Search Account Journal" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,name:account.action_invoice_tree_pending_invoice +msgid "Pending Invoice" +msgstr "" + +#. module: account +#: view:account.invoice.report:0 +#: selection:account.subscription,period_type:0 +#: view:analytic.entries.report:0 +msgid "year" +msgstr "" + +#. module: account +#: view:product.product:0 +msgid "Purchase Taxes" +msgstr "" + +#. module: account +#: view:validate.account.move.lines:0 +msgid "" +"All selected journal entries will be validated and posted. It means you " +"won't be able to modify their accounting fields anymore." +msgstr "" + +#. module: account +#: model:ir.actions.report.xml,name:account.account_transfers +msgid "Transfers" +msgstr "" + +#. module: account +#: view:account.chart:0 +msgid "Account charts" +msgstr "" + +#. module: account +#: report:account.vat.declaration:0 +msgid "Tax Amount" +msgstr "" + +#. module: account +#: view:account.move:0 +msgid "Search Move" +msgstr "" + +#. module: account +#: field:account.tax.code,name:0 +#: field:account.tax.code.template,name:0 +msgid "Tax Case Name" +msgstr "" + +#. module: account +#: report:account.invoice:0 +#: model:process.node,name:account.process_node_draftinvoices0 +msgid "Draft Invoice" +msgstr "" + +#. module: account +#: code:addons/account/wizard/account_invoice_state.py:68 +#, python-format +msgid "" +"Selected Invoice(s) cannot be cancelled as they are already in 'Cancelled' " +"or 'Done' state!" +msgstr "" + +#. module: account +#: view:account.invoice.line:0 +msgid "Quantity :" +msgstr "" + +#. module: account +#: field:account.aged.trial.balance,period_length:0 +msgid "Period Length (days)" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,name:account.action_account_print_sale_purchase_journal +msgid "Print Sale/Purchase Journal" +msgstr "" + +#. module: account +#: field:account.invoice.report,state:0 +msgid "Invoice State" +msgstr "" + +#. module: account +#: view:account.invoice.report:0 +#: field:account.invoice.report,categ_id:0 +msgid "Category of Product" +msgstr "" + +#. module: account +#: view:account.addtmpl.wizard:0 +#: model:ir.actions.act_window,name:account.action_account_addtmpl_wizard_form +msgid "Create Account" +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_report_account_type_sales +msgid "Report of the Sales by Account Type" +msgstr "" + +#. module: account +#: view:account.move.line:0 +msgid "Unreconciled Journal Items" +msgstr "" + +#. module: account +#: sql_constraint:res.currency:0 +msgid "The currency code must be unique per company!" +msgstr "" + +#. module: account +#: selection:account.account.type,close_method:0 +msgid "Detail" +msgstr "" + +#. module: account +#: code:addons/account/account_invoice.py:839 +#, python-format +msgid "" +"Can not create the invoice !\n" +"The related payment term is probably misconfigured as it gives a computed " +"amount greater than the total invoiced amount. The latest line of your " +"payment term must be of type 'balance' to avoid rounding issues." +msgstr "" + +#. module: account +#: report:account.invoice:0 +msgid "VAT :" +msgstr "" + +#. module: account +#: report:account.central.journal:0 +#: report:account.general.ledger:0 +#: field:account.installer,charts:0 +#: report:account.partner.balance:0 +#: report:account.third_party_ledger:0 +#: report:account.third_party_ledger_other:0 +#: model:ir.actions.act_window,name:account.action_account_chart +#: model:ir.actions.act_window,name:account.action_account_tree +#: model:ir.ui.menu,name:account.menu_action_account_tree2 +msgid "Chart of Accounts" +msgstr "" + +#. module: account +#: view:account.tax.chart:0 +msgid "(If you do not select period it will take all open periods)" +msgstr "" + +#. module: account +#: field:account.journal,centralisation:0 +msgid "Centralised counterpart" +msgstr "" + +#. module: account +#: code:addons/account/account_move_line.py:584 +#, python-format +msgid "You can not create journal items on a \"view\" account %s %s" +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_account_partner_reconcile_process +msgid "Reconcilation Process partner by partner" +msgstr "" + +#. module: account +#: selection:account.automatic.reconcile,power:0 +msgid "2" +msgstr "" + +#. module: account +#: view:account.chart:0 +msgid "(If you do not select Fiscal year it will take all open fiscal years)" +msgstr "" + +#. module: account +#: selection:account.aged.trial.balance,filter:0 +#: report:account.analytic.account.journal:0 +#: selection:account.balance.report,filter:0 +#: field:account.bank.statement,date:0 +#: selection:account.central.journal,filter:0 +#: selection:account.common.account.report,filter:0 +#: selection:account.common.journal.report,filter:0 +#: selection:account.common.partner.report,filter:0 +#: selection:account.common.report,filter:0 +#: view:account.entries.report:0 +#: field:account.entries.report,date:0 +#: selection:account.general.journal,filter:0 +#: report:account.general.ledger:0 +#: report:account.general.ledger_landscape:0 +#: field:account.invoice.report,date:0 +#: report:account.journal.period.print:0 +#: report:account.journal.period.print.sale.purchase:0 +#: view:account.move:0 +#: field:account.move,date:0 +#: field:account.move.line.reconcile.writeoff,date_p:0 +#: report:account.overdue:0 +#: selection:account.partner.balance,filter:0 +#: selection:account.partner.ledger,filter:0 +#: selection:account.print.journal,filter:0 +#: selection:account.print.journal,sort_selection:0 +#: selection:account.report.general.ledger,filter:0 +#: selection:account.report.general.ledger,sortby:0 +#: field:account.subscription.generate,date:0 +#: field:account.subscription.line,date:0 +#: report:account.third_party_ledger:0 +#: report:account.third_party_ledger_other:0 +#: selection:account.vat.declaration,filter:0 +#: selection:accounting.report,filter:0 +#: selection:accounting.report,filter_cmp:0 +#: field:analytic.entries.report,date:0 +msgid "Date" +msgstr "" + +#. module: account +#: view:account.move:0 +msgid "Post" +msgstr "" + +#. module: account +#: view:account.unreconcile:0 +#: view:account.unreconcile.reconcile:0 +msgid "Unreconcile" +msgstr "" + +#. module: account +#: view:account.analytic.line:0 +#: field:account.bank.statement,user_id:0 +#: view:account.journal:0 +#: field:account.journal,user_id:0 +#: view:analytic.entries.report:0 +#: field:analytic.entries.report,user_id:0 +msgid "User" +msgstr "" + +#. module: account +#: view:account.chart.template:0 +msgid "Chart of Accounts Template" +msgstr "" + +#. module: account +#: code:addons/account/account.py:2280 +#, python-format +msgid "" +"Maturity date of entry line generated by model line '%s' of model '%s' is " +"based on partner payment term!\n" +"Please define partner on it!" +msgstr "" + +#. module: account +#: code:addons/account/account_move_line.py:837 +#, python-format +msgid "Some entries are already reconciled !" +msgstr "" + +#. module: account +#: view:account.tax:0 +msgid "Account Tax" +msgstr "" + +#. module: account +#: model:ir.ui.menu,name:account.menu_finance_reporting_budgets +msgid "Budgets" +msgstr "" + +#. module: account +#: selection:account.aged.trial.balance,filter:0 +#: selection:account.balance.report,filter:0 +#: selection:account.central.journal,filter:0 +#: selection:account.common.account.report,filter:0 +#: selection:account.common.journal.report,filter:0 +#: selection:account.common.partner.report,filter:0 +#: selection:account.common.report,filter:0 +#: selection:account.general.journal,filter:0 +#: selection:account.partner.balance,filter:0 +#: selection:account.partner.ledger,filter:0 +#: selection:account.print.journal,filter:0 +#: selection:account.report.general.ledger,filter:0 +#: selection:account.vat.declaration,filter:0 +#: selection:accounting.report,filter:0 +#: selection:accounting.report,filter_cmp:0 +msgid "No Filters" +msgstr "" + +#. module: account +#: view:account.invoice.report:0 +msgid "Pro-forma Invoices" +msgstr "" + +#. module: account +#: view:res.partner:0 +msgid "History" +msgstr "" + +#. module: account +#: help:account.tax,applicable_type:0 +#: help:account.tax.template,applicable_type:0 +msgid "" +"If not applicable (computed through a Python code), the tax won't appear on " +"the invoice." +msgstr "" + +#. module: account +#: view:account.tax:0 +#: view:account.tax.template:0 +msgid "Applicable Code (if type=code)" +msgstr "" + +#. module: account +#: view:account.invoice.report:0 +#: field:account.invoice.report,product_qty:0 +msgid "Qty" +msgstr "" + +#. module: account +#: field:account.invoice.report,address_contact_id:0 +msgid "Contact Address Name" +msgstr "" + +#. module: account +#: field:account.move.line,blocked:0 +msgid "Litigation" +msgstr "" + +#. module: account +#: view:account.analytic.line:0 +msgid "Search Analytic Lines" +msgstr "" + +#. module: account +#: field:res.partner,property_account_payable:0 +msgid "Account Payable" +msgstr "" + +#. module: account +#: model:process.node,name:account.process_node_supplierpaymentorder0 +msgid "Payment Order" +msgstr "" + +#. module: account +#: help:account.account.template,reconcile:0 +msgid "" +"Check this option if you want the user to reconcile entries in this account." +msgstr "" + +#. module: account +#: model:ir.actions.report.xml,name:account.account_account_balance_landscape +msgid "Account balance" +msgstr "" + +#. module: account +#: report:account.invoice:0 +#: field:account.invoice.line,price_unit:0 +msgid "Unit Price" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,name:account.action_account_tree1 +msgid "Analytic Items" +msgstr "" + +#. module: account +#: code:addons/account/account_move_line.py:1153 +#, python-format +msgid "Unable to change tax !" +msgstr "" + +#. module: account +#: field:analytic.entries.report,nbr:0 +msgid "#Entries" +msgstr "" + +#. module: account +#: selection:account.invoice.refund,filter_refund:0 +msgid "Create a draft Refund" +msgstr "Crear una devolución en borrador" + +#. module: account +#: view:account.state.open:0 +msgid "Open Invoice" +msgstr "" + +#. module: account +#: field:account.invoice.tax,factor_tax:0 +msgid "Multipication factor Tax code" +msgstr "" + +#. module: account +#: view:account.fiscal.position:0 +msgid "Mapping" +msgstr "" + +#. module: account +#: code:addons/account/account_invoice.py:921 +#, python-format +msgid "" +"You cannot create an invoice on a centralised journal. Uncheck the " +"centralised counterpart box in the related journal from the configuration " +"menu." +msgstr "" + +#. module: account +#: field:account.account,name:0 +#: field:account.account.template,name:0 +#: report:account.analytic.account.inverted.balance:0 +#: field:account.bank.statement,name:0 +#: field:account.chart.template,name:0 +#: field:account.model.line,name:0 +#: field:account.move.line,name:0 +#: field:account.move.reconcile,name:0 +#: field:account.subscription,name:0 +msgid "Name" +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_account_aged_trial_balance +msgid "Account Aged Trial balance Report" +msgstr "" + +#. module: account +#: code:addons/account/account_move_line.py:591 +#, python-format +msgid "You can not create journal items on a closed account %s %s" +msgstr "" + +#. module: account +#: field:account.move.line,date:0 +msgid "Effective date" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,name:account.action_bank_tree +#: model:ir.ui.menu,name:account.menu_action_bank_tree +msgid "Setup your Bank Accounts" +msgstr "" + +#. module: account +#: code:addons/account/wizard/account_move_bank_reconcile.py:53 +#, python-format +msgid "Standard Encoding" +msgstr "" + +#. module: account +#: help:account.journal,analytic_journal_id:0 +msgid "Journal for analytic entries" +msgstr "" + +#. module: account +#: constraint:account.aged.trial.balance:0 +#: constraint:account.balance.report:0 +#: constraint:account.central.journal:0 +#: constraint:account.common.account.report:0 +#: constraint:account.common.journal.report:0 +#: constraint:account.common.partner.report:0 +#: constraint:account.common.report:0 +#: constraint:account.general.journal:0 +#: constraint:account.partner.balance:0 +#: constraint:account.partner.ledger:0 +#: constraint:account.print.journal:0 +#: constraint:account.report.general.ledger:0 +#: constraint:account.vat.declaration:0 +#: constraint:accounting.report:0 +msgid "" +"The fiscalyear, periods or chart of account chosen have to belong to the " +"same company." +msgstr "" + +#. module: account +#: model:ir.actions.todo.category,name:account.category_accounting_configuration +#: model:ir.ui.menu,name:account.menu_finance +#: model:process.node,name:account.process_node_accountingentries0 +#: model:process.node,name:account.process_node_supplieraccountingentries0 +#: view:product.product:0 +#: view:product.template:0 +#: view:res.partner:0 +msgid "Accounting" +msgstr "" + +#. module: account +#: view:account.entries.report:0 +msgid "Journal Entries with period in current year" +msgstr "" + +#. module: account +#: help:account.central.journal,amount_currency:0 +#: help:account.common.journal.report,amount_currency:0 +#: help:account.general.journal,amount_currency:0 +#: help:account.print.journal,amount_currency:0 +msgid "" +"Print Report with the currency column if the currency is different then the " +"company currency" +msgstr "" + +#. module: account +#: help:account.account,unrealized_gain_loss:0 +msgid "" +"Value of Loss or Gain due to changes in exchange rate when doing multi-" +"currency transactions." +msgstr "" + +#. module: account +#: view:account.analytic.line:0 +msgid "General Accounting" +msgstr "" + +#. module: account +#: report:account.overdue:0 +msgid "Balance :" +msgstr "" + +#. module: account +#: help:account.fiscalyear.close,journal_id:0 +msgid "" +"The best practice here is to use a journal dedicated to contain the opening " +"entries of all fiscal years. Note that you should define it with default " +"debit/credit accounts, of type 'situation' and with a centralized " +"counterpart." +msgstr "" + +#. module: account +#: view:account.installer:0 +#: view:wizard.multi.charts.accounts:0 +msgid "title" +msgstr "" + +#. module: account +#: view:account.invoice:0 +#: view:account.period:0 +#: view:account.subscription:0 +msgid "Set to Draft" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,name:account.action_subscription_form +msgid "Recurring Lines" +msgstr "" + +#. module: account +#: field:account.partner.balance,display_partner:0 +msgid "Display Partners" +msgstr "" + +#. module: account +#: view:account.invoice:0 +msgid "Validate" +msgstr "" + +#. module: account +#: report:account.analytic.account.cost_ledger:0 +#: report:account.analytic.account.quantity_cost_ledger:0 +#: model:ir.actions.act_window,name:account.action_account_analytic_cost +#: model:ir.actions.report.xml,name:account.account_analytic_account_cost_ledger +msgid "Cost Ledger" +msgstr "" + +#. module: account +#: model:account.financial.report,name:account.account_financial_report_assets0 +msgid "Assets" +msgstr "" + +#. module: account +#: view:account.invoice.confirm:0 +msgid "Confirm Invoices" +msgstr "" + +#. module: account +#: selection:account.account,currency_mode:0 +msgid "Average Rate" +msgstr "" + +#. module: account +#: field:account.balance.report,display_account:0 +#: field:account.common.account.report,display_account:0 +#: field:account.report.general.ledger,display_account:0 +msgid "Display Accounts" +msgstr "" + +#. module: account +#: view:account.state.open:0 +msgid "(Invoice should be unreconciled if you want to open it)" +msgstr "" + +#. module: account +#: field:account.chart,period_from:0 +msgid "Start period" +msgstr "" + +#. module: account +#: field:account.tax,name:0 +#: field:account.tax.template,name:0 +#: report:account.vat.declaration:0 +msgid "Tax Name" +msgstr "" + +#. module: account +#: model:account.payment.term,name:account.account_payment_term +#: model:account.payment.term,note:account.account_payment_term +msgid "30 Days End of Month" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,name:account.action_account_analytic_balance +#: model:ir.actions.report.xml,name:account.account_analytic_account_balance +msgid "Analytic Balance" +msgstr "" + +#. module: account +#: help:account.account,active:0 +msgid "" +"If the active field is set to False, it will allow you to hide the account " +"without removing it." +msgstr "" + +#. module: account +#: view:account.move.line:0 +msgid "Posted Journal Items" +msgstr "" + +#. module: account +#: view:account.tax.template:0 +msgid "Search Tax Templates" +msgstr "" + +#. module: account +#: model:ir.ui.menu,name:account.periodical_processing_journal_entries_validation +msgid "Draft Entries" +msgstr "" + +#. module: account +#: view:account.payment.term.line:0 +msgid " Day of the Month= -1" +msgstr "" + +#. module: account +#: view:account.payment.term.line:0 +msgid " Number of Days: 30" +msgstr "" + +#. module: account +#: field:account.account,shortcut:0 +#: field:account.account.template,shortcut:0 +msgid "Shortcut" +msgstr "" + +#. module: account +#: constraint:account.fiscalyear:0 +msgid "Error! The start date of the fiscal year must be before his end date." +msgstr "" + +#. module: account +#: view:account.account:0 +#: field:account.account,user_type:0 +#: view:account.account.template:0 +#: field:account.account.template,user_type:0 +#: view:account.account.type:0 +#: field:account.account.type,name:0 +#: field:account.bank.accounts.wizard,account_type:0 +#: field:account.entries.report,user_type:0 +#: selection:account.financial.report,type:0 +#: model:ir.model,name:account.model_account_account_type +#: field:report.account.receivable,type:0 +#: field:report.account_type.sales,user_type:0 +msgid "Account Type" +msgstr "" + +#. module: account +#: view:res.partner:0 +msgid "Bank Account Owner" +msgstr "" + +#. module: account +#: report:account.account.balance:0 +#: view:account.balance.report:0 +#: model:ir.actions.act_window,name:account.action_account_balance_menu +#: model:ir.actions.report.xml,name:account.account_account_balance +#: model:ir.ui.menu,name:account.menu_general_Balance_report +msgid "Trial Balance" +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_account_invoice_cancel +msgid "Cancel the Selected Invoices" +msgstr "" + +#. module: account +#: help:product.category,property_account_income_categ:0 +#: help:product.template,property_account_income:0 +msgid "" +"This account will be used to value outgoing stock for the current product " +"category using sale price" +msgstr "" + +#. module: account +#: selection:account.automatic.reconcile,power:0 +msgid "3" +msgstr "" + +#. module: account +#: code:addons/account/account_move_line.py:97 +#, python-format +msgid "" +"You haven't supplied enough argument to compute the initial balance, please " +"select a period and journal in the context." +msgstr "" + +#. module: account +#: model:process.transition,note:account.process_transition_supplieranalyticcost0 +msgid "" +"Analytic costs (timesheets, some purchased products, ...) come from analytic " +"accounts. These generate draft supplier invoices." +msgstr "" + +#. module: account +#: view:account.bank.statement:0 +msgid "Close CashBox" +msgstr "" + +#. module: account +#: view:account.invoice.report:0 +#: field:account.invoice.report,due_delay:0 +msgid "Avg. Due Delay" +msgstr "" + +#. module: account +#: view:account.entries.report:0 +msgid "Acc.Type" +msgstr "" + +#. module: account +#: field:account.entries.report,month:0 +#: view:account.invoice.report:0 +#: field:account.invoice.report,month:0 +#: view:analytic.entries.report:0 +#: field:analytic.entries.report,month:0 +#: field:report.account.sales,month:0 +#: field:report.account_type.sales,month:0 +msgid "Month" +msgstr "" + +#. module: account +#: code:addons/account/account_move_line.py:1216 +#, python-format +msgid "" +"You can not do this modification on a confirmed entry! You can just change " +"some non legal fields or you must unconfirm the journal entry first! \n" +"%s" +msgstr "" + +#. module: account +#: field:res.company,paypal_account:0 +msgid "Paypal Account" +msgstr "" + +#. module: account +#: field:account.invoice.report,uom_name:0 +msgid "Reference UoM" +msgstr "" + +#. module: account +#: field:account.account,note:0 +#: field:account.account.template,note:0 +msgid "Note" +msgstr "" + +#. module: account +#: selection:account.financial.report,sign:0 +msgid "Reverse balance sign" +msgstr "" + +#. module: account +#: view:account.analytic.account:0 +msgid "Overdue Account" +msgstr "" + +#. module: account +#: selection:account.account.type,report_type:0 +#: code:addons/account/account.py:184 +#, python-format +msgid "Balance Sheet (Liability account)" +msgstr "" + +#. module: account +#: help:account.invoice,date_invoice:0 +msgid "Keep empty to use the current date" +msgstr "" + +#. module: account +#: field:account.invoice,tax_line:0 +msgid "Tax Lines" +msgstr "" + +#. module: account +#: field:account.tax,base_code_id:0 +msgid "Account Base Code" +msgstr "" + +#. module: account +#: code:addons/account/account_analytic_line.py:93 +#, python-format +msgid "There is no expense account defined for this product: \"%s\" (id:%d)" +msgstr "" + +#. module: account +#: view:res.partner:0 +msgid "Customer Accounting Properties" +msgstr "" + +#. module: account +#: help:res.company,paypal_account:0 +msgid "Paypal username (usually email) for receiving online payments." +msgstr "" + +#. module: account +#: selection:account.aged.trial.balance,target_move:0 +#: selection:account.balance.report,target_move:0 +#: selection:account.central.journal,target_move:0 +#: selection:account.chart,target_move:0 +#: selection:account.common.account.report,target_move:0 +#: selection:account.common.journal.report,target_move:0 +#: selection:account.common.partner.report,target_move:0 +#: selection:account.common.report,target_move:0 +#: selection:account.general.journal,target_move:0 +#: selection:account.move.journal,target_move:0 +#: selection:account.partner.balance,target_move:0 +#: selection:account.partner.ledger,target_move:0 +#: selection:account.print.journal,target_move:0 +#: selection:account.report.general.ledger,target_move:0 +#: selection:account.tax.chart,target_move:0 +#: selection:account.vat.declaration,target_move:0 +#: selection:accounting.report,target_move:0 +#: code:addons/account/report/common_report_header.py:68 +#, python-format +msgid "All Posted Entries" +msgstr "" + +#. module: account +#: code:addons/account/account_bank_statement.py:367 +#, python-format +msgid "Statement %s is confirmed, journal items are created." +msgstr "" + +#. module: account +#: field:report.aged.receivable,name:0 +msgid "Month Range" +msgstr "" + +#. module: account +#: help:account.analytic.balance,empty_acc:0 +msgid "Check if you want to display Accounts with 0 balance too." +msgstr "" + +#. module: account +#: view:account.tax:0 +msgid "Compute Code" +msgstr "" + +#. module: account +#: view:account.account.template:0 +msgid "Default taxes" +msgstr "" + +#. module: account +#: code:addons/account/wizard/account_fiscalyear_close.py:41 +#, python-format +msgid "End of Fiscal Year Entry" +msgstr "" + +#. module: account +#: model:ir.ui.menu,name:account.menu_finance_periodical_processing +msgid "Periodical Processing" +msgstr "" + +#. module: account +#: constraint:account.analytic.line:0 +msgid "You can not create analytic line on view account." +msgstr "" + +#. module: account +#: help:account.move.line,state:0 +msgid "" +"When new move line is created the state will be 'Draft'.\n" +"* When all the payments are done it will be in 'Valid' state." +msgstr "" + +#. module: account +#: field:account.journal,view_id:0 +msgid "Display Mode" +msgstr "" + +#. module: account +#: model:process.node,note:account.process_node_importinvoice0 +msgid "Statement from invoice or payment" +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_account_chart +msgid "Account chart" +msgstr "" + +#. module: account +#: selection:account.financial.report,style_overwrite:0 +msgid "Main Title 1 (bold, underlined)" +msgstr "" + +#. module: account +#: report:account.analytic.account.balance:0 +#: report:account.central.journal:0 +msgid "Account Name" +msgstr "" + +#. module: account +#: help:account.fiscalyear.close,report_name:0 +msgid "Give name of the new entries" +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_account_invoice_report +msgid "Invoices Statistics" +msgstr "" + +#. module: account +#: field:account.account,exchange_rate:0 +msgid "Exchange Rate" +msgstr "" + +#. module: account +#: model:process.transition,note:account.process_transition_paymentorderreconcilation0 +msgid "Bank statements are entered in the system." +msgstr "" + +#. module: account +#: code:addons/account/wizard/account_reconcile.py:133 +#, python-format +msgid "Reconcile Writeoff" +msgstr "" + +#. module: account +#: view:report.account.receivable:0 +msgid "Accounts by Type" +msgstr "" + +#. module: account +#: view:account.bank.statement:0 +#: field:account.bank.statement,balance_end_cash:0 +msgid "Closing Balance" +msgstr "" + +#. module: account +#: code:addons/account/report/common_report_header.py:92 +#, python-format +msgid "Not implemented" +msgstr "" + +#. module: account +#: field:account.chart.template,visible:0 +msgid "Can be Visible?" +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_account_journal_select +msgid "Account Journal Select" +msgstr "" + +#. module: account +#: view:account.tax.template:0 +msgid "Credit Notes" +msgstr "" + +#. module: account +#: sql_constraint:account.period:0 +msgid "The name of the period must be unique per company!" +msgstr "" + +#. module: account +#: view:wizard.multi.charts.accounts:0 +msgid "res_config_contents" +msgstr "" + +#. module: account +#: view:account.unreconcile:0 +msgid "Unreconciliate Transactions" +msgstr "" + +#. module: account +#: help:account.chart.template,visible:0 +msgid "" +"Set this to False if you don't want this template to be used actively in the " +"wizard that generate Chart of Accounts from templates, this is useful when " +"you want to generate accounts of this template only when loading its child " +"template." +msgstr "" + +#. module: account +#: view:account.use.model:0 +msgid "Create Entries From Models" +msgstr "" + +#. module: account +#: field:account.account,reconcile:0 +#: field:account.account.template,reconcile:0 +msgid "Allow Reconciliation" +msgstr "" + +#. module: account +#: code:addons/account/account.py:1077 +#, python-format +msgid "" +"You can not modify company of this period as some journal items exists." +msgstr "" + +#. module: account +#: view:account.analytic.account:0 +msgid "Analytic Account Statistics" +msgstr "" + +#. module: account +#: report:account.vat.declaration:0 +msgid "Based On" +msgstr "" + +#. module: account +#: field:account.tax,price_include:0 +#: field:account.tax.template,price_include:0 +msgid "Tax Included in Price" +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_account_analytic_cost_ledger_journal_report +msgid "Account Analytic Cost Ledger For Journal Report" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,name:account.action_model_form +#: model:ir.ui.menu,name:account.menu_action_model_form +msgid "Recurring Models" +msgstr "" + +#. module: account +#: code:addons/account/account_move_line.py:1251 +#, python-format +msgid "Encoding error" +msgstr "" + +#. module: account +#: selection:account.automatic.reconcile,power:0 +msgid "4" +msgstr "" + +#. module: account +#: view:account.invoice:0 +msgid "Change" +msgstr "" + +#. module: account +#: selection:account.journal,type:0 +msgid "Bank and Cheques" +msgstr "" + +#. module: account +#: field:account.journal,type_control_ids:0 +msgid "Type Controls" +msgstr "" + +#. module: account +#: help:account.journal,default_credit_account_id:0 +msgid "It acts as a default account for credit amount" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,name:account.action_validate_account_move_line +#: model:ir.ui.menu,name:account.menu_validate_account_moves +#: view:validate.account.move:0 +#: view:validate.account.move.lines:0 +msgid "Post Journal Entries" +msgstr "" + +#. module: account +#: selection:account.invoice,state:0 +#: selection:account.invoice.report,state:0 +#: selection:report.invoice.created,state:0 +msgid "Cancelled" +msgstr "" + +#. module: account +#: help:account.bank.statement,balance_end_cash:0 +msgid "Closing balance based on cashBox" +msgstr "" + +#. module: account +#: view:account.payment.term.line:0 +msgid "Example" +msgstr "" + +#. module: account +#: code:addons/account/account_invoice.py:828 +#, python-format +msgid "" +"Please verify the price of the invoice !\n" +"The real total does not match the computed total." +msgstr "" + +#. module: account +#: view:account.tax:0 +#: view:account.tax.template:0 +msgid "Keep empty to use the income account" +msgstr "" + +#. module: account +#: code:addons/account/account.py:3299 +#, python-format +msgid "Purchase Tax %.2f%%" +msgstr "" + +#. module: account +#: view:account.subscription.generate:0 +#: model:ir.actions.act_window,name:account.action_account_subscription_generate +#: model:ir.ui.menu,name:account.menu_generate_subscription +msgid "Generate Entries" +msgstr "" + +#. module: account +#: help:account.vat.declaration,chart_tax_id:0 +msgid "Select Charts of Taxes" +msgstr "" + +#. module: account +#: view:account.fiscal.position:0 +#: field:account.fiscal.position,account_ids:0 +#: field:account.fiscal.position.template,account_ids:0 +msgid "Account Mapping" +msgstr "" + +#. module: account +#: selection:account.bank.statement.line,type:0 +#: view:account.invoice:0 +#: view:account.invoice.report:0 +#: code:addons/account/account_invoice.py:337 +#, python-format +msgid "Customer" +msgstr "" + +#. module: account +#: view:account.bank.statement:0 +msgid "Confirmed" +msgstr "" + +#. module: account +#: report:account.invoice:0 +msgid "Cancelled Invoice" +msgstr "" + +#. module: account +#: code:addons/account/account.py:1567 +#, python-format +msgid "" +"Couldn't create move with currency different from the secondary currency of " +"the account \"%s - %s\". Clear the secondary currency field of the account " +"definition if you want to accept all currencies." +msgstr "" + +#. module: account +#: selection:account.bank.statement,state:0 +msgid "New" +msgstr "" + +#. module: account +#: field:account.invoice.refund,date:0 +msgid "Operation date" +msgstr "" + +#. module: account +#: view:account.unreconcile.reconcile:0 +msgid "Unreconciliation Transactions" +msgstr "" + +#. module: account +#: field:account.tax,ref_tax_code_id:0 +#: field:account.tax.template,ref_tax_code_id:0 +msgid "Refund Tax Code" +msgstr "Código impuesto reintegro" + +#. module: account +#: view:validate.account.move:0 +msgid "" +"All draft account entries in this journal and period will be validated. It " +"means you won't be able to modify their accounting fields anymore." +msgstr "" + +#. module: account +#: model:ir.ui.menu,name:account.menu_finance_configuration +msgid "Configuration" +msgstr "" + +#. module: account +#: field:account.automatic.reconcile,date1:0 +msgid "Starting Date" +msgstr "" + +#. module: account +#: field:account.chart.template,property_account_income:0 +msgid "Income Account on Product Template" +msgstr "" + +#. module: account +#: code:addons/account/account.py:3120 +#, python-format +msgid "MISC" +msgstr "" + +#. module: account +#: model:email.template,subject:account.email_template_edi_invoice +msgid "${object.company_id.name} Invoice (Ref ${object.number or 'n/a' })" +msgstr "" + +#. module: account +#: help:res.partner,last_reconciliation_date:0 +msgid "" +"Date on which the partner accounting entries were reconciled last time" +msgstr "" + +#. module: account +#: field:account.fiscalyear.close,fy2_id:0 +msgid "New Fiscal Year" +msgstr "" + +#. module: account +#: view:account.invoice:0 +#: view:account.tax.template:0 +#: selection:account.vat.declaration,based_on:0 +#: model:ir.actions.act_window,name:account.act_res_partner_2_account_invoice_opened +#: model:ir.actions.act_window,name:account.action_invoice_tree +#: model:ir.actions.report.xml,name:account.account_invoices +#: view:report.invoice.created:0 +#: field:res.partner,invoice_ids:0 +msgid "Invoices" +msgstr "" + +#. module: account +#: view:account.invoice:0 +msgid "My invoices" +msgstr "" + +#. module: account +#: selection:account.bank.accounts.wizard,account_type:0 +msgid "Check" +msgstr "" + +#. module: account +#: view:account.invoice:0 +#: field:account.invoice,user_id:0 +#: view:account.invoice.report:0 +#: field:account.invoice.report,user_id:0 +msgid "Salesman" +msgstr "" + +#. module: account +#: view:account.invoice.report:0 +msgid "Invoiced" +msgstr "" + +#. module: account +#: view:account.move:0 +msgid "Posted Journal Entries" +msgstr "" + +#. module: account +#: view:account.use.model:0 +msgid "Use Model" +msgstr "" + +#. module: account +#: help:account.invoice,partner_bank_id:0 +msgid "" +"Bank Account Number to which the invoice will be paid. A Company bank " +"account if this is a Customer Invoice or Supplier Refund, otherwise a " +"Partner bank account number." +msgstr "" +"Numero de cuenta bancaria contra el que será pagada la factura. Una cuenta " +"bancaria de la compañía si esta es una factura de cliente o devolución de " +"proveedor, en otro caso una cuenta bancaria del cliente/proveedor." + +#. module: account +#: view:account.state.open:0 +msgid "No" +msgstr "" + +#. module: account +#: help:account.invoice.tax,tax_code_id:0 +msgid "The tax basis of the tax declaration." +msgstr "" + +#. module: account +#: view:account.addtmpl.wizard:0 +msgid "Add" +msgstr "" + +#. module: account +#: selection:account.invoice,state:0 +#: report:account.overdue:0 +msgid "Paid" +msgstr "" + +#. module: account +#: view:account.period.close:0 +msgid "Are you sure?" +msgstr "" + +#. module: account +#: help:account.move.line,statement_id:0 +msgid "The bank statement used for bank reconciliation" +msgstr "" + +#. module: account +#: model:process.transition,note:account.process_transition_suppliercustomerinvoice0 +msgid "Draft invoices are validated. " +msgstr "" + +#. module: account +#: constraint:account.account.template:0 +msgid "" +"Configuration Error!\n" +"You can not define children to an account with internal type different of " +"\"View\"! " +msgstr "" + +#. module: account +#: code:addons/account/account.py:923 +#, python-format +msgid "Opening Period" +msgstr "" + +#. module: account +#: view:account.move:0 +msgid "Journal Entries to Review" +msgstr "" + +#. module: account +#: view:account.bank.statement:0 +#: view:account.subscription:0 +msgid "Compute" +msgstr "" + +#. module: account +#: field:account.tax,type_tax_use:0 +msgid "Tax Application" +msgstr "" + +#. module: account +#: view:account.move:0 +#: view:account.move.line:0 +#: code:addons/account/wizard/account_move_journal.py:153 +#: model:ir.actions.act_window,name:account.act_account_journal_2_account_move_line +#: model:ir.actions.act_window,name:account.act_account_move_to_account_move_line_open +#: model:ir.actions.act_window,name:account.act_account_partner_account_move +#: model:ir.actions.act_window,name:account.action_account_manual_reconcile +#: model:ir.actions.act_window,name:account.action_account_moves_all_a +#: model:ir.actions.act_window,name:account.action_account_moves_bank +#: model:ir.actions.act_window,name:account.action_account_moves_purchase +#: model:ir.actions.act_window,name:account.action_account_moves_sale +#: model:ir.actions.act_window,name:account.action_move_line_search +#: model:ir.actions.act_window,name:account.action_move_line_select +#: model:ir.actions.act_window,name:account.action_move_line_tree1 +#: model:ir.actions.act_window,name:account.action_tax_code_line_open +#: model:ir.model,name:account.model_account_move_line +#: model:ir.ui.menu,name:account.menu_action_account_moves_all +#: model:ir.ui.menu,name:account.menu_action_account_moves_bank +#: model:ir.ui.menu,name:account.menu_eaction_account_moves_purchase +#: model:ir.ui.menu,name:account.menu_eaction_account_moves_sale +#, python-format +msgid "Journal Items" +msgstr "" + +#. module: account +#: code:addons/account/account.py:1088 +#: code:addons/account/account.py:1090 +#: code:addons/account/account.py:1321 +#: code:addons/account/account.py:1563 +#: code:addons/account/account.py:1567 +#: code:addons/account/account.py:3368 +#: code:addons/account/account_move_line.py:807 +#: code:addons/account/account_move_line.py:830 +#: code:addons/account/account_move_line.py:832 +#: code:addons/account/account_move_line.py:835 +#: code:addons/account/account_move_line.py:837 +#: code:addons/account/report/common_report_header.py:92 +#: code:addons/account/wizard/account_change_currency.py:38 +#: code:addons/account/wizard/account_change_currency.py:59 +#: code:addons/account/wizard/account_change_currency.py:64 +#: code:addons/account/wizard/account_change_currency.py:70 +#: code:addons/account/wizard/account_financial_report.py:69 +#: code:addons/account/wizard/account_move_bank_reconcile.py:49 +#: code:addons/account/wizard/account_report_common.py:144 +#: code:addons/account/wizard/account_report_common.py:150 +#, python-format +msgid "Error" +msgstr "" + +#. module: account +#: field:account.analytic.balance,date2:0 +#: field:account.analytic.cost.ledger,date2:0 +#: field:account.analytic.cost.ledger.journal.report,date2:0 +#: field:account.analytic.inverted.balance,date2:0 +#: field:account.analytic.journal.report,date2:0 +msgid "End of period" +msgstr "" + +#. module: account +#: view:res.partner:0 +msgid "Bank Details" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,help:account.action_account_partner_balance +msgid "" +"This report is analysis by partner. It is a PDF report containing one line " +"per partner representing the cumulative credit balance." +msgstr "" + +#. module: account +#: model:ir.actions.act_window,help:account.action_account_analytic_journal_tree +msgid "" +"To print an analytics (or costs) journal for a given period. The report give " +"code, move name, account number, general amount and analytic amount." +msgstr "" + +#. module: account +#: sql_constraint:account.invoice:0 +msgid "Invoice Number must be unique per Company!" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,name:account.action_account_receivable_graph +msgid "Balance by Type of Account" +msgstr "" + +#. module: account +#: view:account.fiscalyear.close:0 +msgid "Generate Fiscal Year Opening Entries" +msgstr "" + +#. module: account +#: model:res.groups,name:account.group_account_user +msgid "Accountant" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,help:account.action_account_treasury_report_all +msgid "" +"From this view, have an analysis of your treasury. It sums the balance of " +"every accounting entries made on liquidity accounts per period." +msgstr "" + +#. module: account +#: field:account.journal,group_invoice_lines:0 +msgid "Group Invoice Lines" +msgstr "" + +#. module: account +#: view:account.invoice.cancel:0 +#: view:account.invoice.confirm:0 +msgid "Close" +msgstr "" + +#. module: account +#: field:account.bank.statement.line,move_ids:0 +msgid "Moves" +msgstr "" + +#. module: account +#: view:report.hr.timesheet.invoice.journal:0 +msgid "Sale journal in this month" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,name:account.action_account_vat_declaration +#: model:ir.model,name:account.model_account_vat_declaration +msgid "Account Vat Declaration" +msgstr "" + +#. module: account +#: report:account.invoice:0 +msgid "Price" +msgstr "" + +#. module: account +#: view:account.period:0 +msgid "To Close" +msgstr "" + +#. module: account +#: field:account.treasury.report,date:0 +msgid "Beginning of Period Date" +msgstr "" + +#. module: account +#: code:addons/account/account.py:1351 +#, python-format +msgid "" +"You can not modify a posted entry of this journal !\n" +"You should set the journal to allow cancelling entries if you want to do " +"that." +msgstr "" + +#. module: account +#: model:ir.ui.menu,name:account.account_template_folder +msgid "Templates" +msgstr "" + +#. module: account +#: field:account.invoice.tax,name:0 +msgid "Tax Description" +msgstr "" + +#. module: account +#: field:account.tax,child_ids:0 +msgid "Child Tax Accounts" +msgstr "" + +#. module: account +#: code:addons/account/account.py:1090 +#, python-format +msgid "Start period should be smaller then End period" +msgstr "" + +#. module: account +#: help:account.tax,price_include:0 +#: help:account.tax.template,price_include:0 +msgid "" +"Check this if the price you use on the product and invoices includes this " +"tax." +msgstr "" + +#. module: account +#: report:account.analytic.account.balance:0 +msgid "Analytic Balance -" +msgstr "" + +#. module: account +#: report:account.account.balance:0 +#: field:account.aged.trial.balance,target_move:0 +#: field:account.balance.report,target_move:0 +#: report:account.central.journal:0 +#: field:account.central.journal,target_move:0 +#: field:account.chart,target_move:0 +#: field:account.common.account.report,target_move:0 +#: field:account.common.journal.report,target_move:0 +#: field:account.common.partner.report,target_move:0 +#: field:account.common.report,target_move:0 +#: report:account.general.journal:0 +#: field:account.general.journal,target_move:0 +#: report:account.general.ledger:0 +#: report:account.general.ledger_landscape:0 +#: report:account.journal.period.print:0 +#: report:account.journal.period.print.sale.purchase:0 +#: field:account.move.journal,target_move:0 +#: report:account.partner.balance:0 +#: field:account.partner.balance,target_move:0 +#: field:account.partner.ledger,target_move:0 +#: field:account.print.journal,target_move:0 +#: field:account.report.general.ledger,target_move:0 +#: field:account.tax.chart,target_move:0 +#: report:account.third_party_ledger:0 +#: report:account.third_party_ledger_other:0 +#: field:account.vat.declaration,target_move:0 +#: field:accounting.report,target_move:0 +msgid "Target Moves" +msgstr "" + +#. module: account +#: model:account.payment.term,name:account.account_payment_term_net +#: model:account.payment.term,note:account.account_payment_term_net +msgid "30 Net Days" +msgstr "" + +#. module: account +#: field:account.subscription,period_type:0 +msgid "Period Type" +msgstr "" + +#. module: account +#: view:account.invoice:0 +#: field:account.invoice,payment_ids:0 +#: selection:account.vat.declaration,based_on:0 +msgid "Payments" +msgstr "" + +#. module: account +#: view:account.tax:0 +msgid "Reverse Compute Code" +msgstr "" + +#. module: account +#: field:account.subscription.line,move_id:0 +msgid "Entry" +msgstr "" + +#. module: account +#: field:account.tax,python_compute_inv:0 +#: field:account.tax.template,python_compute_inv:0 +msgid "Python Code (reverse)" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,name:account.action_payment_term_form +#: model:ir.ui.menu,name:account.menu_action_payment_term_form +msgid "Payment Terms" +msgstr "" + +#. module: account +#: help:account.chart.template,complete_tax_set:0 +msgid "" +"This boolean helps you to choose if you want to propose to the user to " +"encode the sale and purchase rates or choose from list of taxes. This last " +"choice assumes that the set of tax defined on this template is complete" +msgstr "" + +#. module: account +#: view:account.financial.report:0 +#: field:account.financial.report,children_ids:0 +#: model:ir.model,name:account.model_account_financial_report +msgid "Account Report" +msgstr "" + +#. module: account +#: field:account.journal.column,name:0 +msgid "Column Name" +msgstr "" + +#. module: account +#: view:account.general.journal:0 +msgid "" +"This report gives you an overview of the situation of your general journals" +msgstr "" + +#. module: account +#: field:account.entries.report,year:0 +#: view:account.invoice.report:0 +#: field:account.invoice.report,year:0 +#: view:analytic.entries.report:0 +#: field:analytic.entries.report,year:0 +#: field:report.account.sales,name:0 +#: field:report.account_type.sales,name:0 +msgid "Year" +msgstr "" + +#. module: account +#: field:account.bank.statement,starting_details_ids:0 +msgid "Opening Cashbox" +msgstr "" + +#. module: account +#: view:account.payment.term.line:0 +msgid "Line 1:" +msgstr "" + +#. module: account +#: code:addons/account/account.py:1307 +#, python-format +msgid "Integrity Error !" +msgstr "" + +#. module: account +#: field:account.tax.template,description:0 +msgid "Internal Name" +msgstr "" + +#. module: account +#: selection:account.subscription,period_type:0 +msgid "month" +msgstr "" + +#. module: account +#: field:account.partner.reconcile.process,next_partner_id:0 +msgid "Next Partner to Reconcile" +msgstr "" + +#. module: account +#: field:account.invoice.tax,account_id:0 +#: field:account.move.line,tax_code_id:0 +msgid "Tax Account" +msgstr "" + +#. module: account +#: view:account.automatic.reconcile:0 +msgid "Reconciliation Result" +msgstr "" + +#. module: account +#: model:account.financial.report,name:account.account_financial_report_balancesheet0 +#: model:ir.ui.menu,name:account.menu_account_report_bs +msgid "Balance Sheet" +msgstr "" + +#. module: account +#: view:account.general.journal:0 +#: model:ir.ui.menu,name:account.menu_account_general_journal +msgid "General Journals" +msgstr "" + +#. module: account +#: field:account.journal,allow_date:0 +msgid "Check Date in Period" +msgstr "" + +#. module: account +#: model:ir.ui.menu,name:account.final_accounting_reports +msgid "Accounting Reports" +msgstr "" + +#. module: account +#: field:account.move,line_id:0 +#: view:analytic.entries.report:0 +#: model:ir.actions.act_window,name:account.act_account_acount_move_line_open +#: model:ir.actions.act_window,name:account.action_move_line_form +msgid "Entries" +msgstr "" + +#. module: account +#: view:account.entries.report:0 +msgid "This Period" +msgstr "" + +#. module: account +#: field:account.analytic.line,product_uom_id:0 +#: field:account.move.line,product_uom_id:0 +msgid "UoM" +msgstr "" + +#. module: account +#: code:addons/account/wizard/account_invoice_refund.py:146 +#, python-format +msgid "No Period found on Invoice!" +msgstr "" + +#. module: account +#: view:account.tax.template:0 +msgid "Compute Code (if type=code)" +msgstr "" + +#. module: account +#: selection:account.analytic.journal,type:0 +#: view:account.journal:0 +#: selection:account.journal,type:0 +#: view:account.model:0 +#: selection:account.tax,type_tax_use:0 +#: view:account.tax.template:0 +#: selection:account.tax.template,type_tax_use:0 +msgid "Sale" +msgstr "" + +#. module: account +#: view:account.financial.report:0 +msgid "Report" +msgstr "" + +#. module: account +#: view:account.analytic.line:0 +#: field:account.bank.statement.line,amount:0 +#: report:account.invoice:0 +#: field:account.invoice.tax,amount:0 +#: view:account.move:0 +#: field:account.move,amount:0 +#: view:account.move.line:0 +#: field:account.tax,amount:0 +#: field:account.tax.template,amount:0 +#: view:analytic.entries.report:0 +#: field:analytic.entries.report,amount:0 +msgid "Amount" +msgstr "" + +#. module: account +#: model:process.transition,name:account.process_transition_customerinvoice0 +#: model:process.transition,name:account.process_transition_paymentorderreconcilation0 +#: model:process.transition,name:account.process_transition_statemententries0 +#: model:process.transition,name:account.process_transition_suppliercustomerinvoice0 +#: model:process.transition,name:account.process_transition_suppliervalidentries0 +#: model:process.transition,name:account.process_transition_validentries0 +msgid "Validation" +msgstr "" + +#. module: account +#: field:account.tax,child_depend:0 +#: field:account.tax.template,child_depend:0 +msgid "Tax on Children" +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_account_fiscal_position_tax_template +msgid "Template Tax Fiscal Position" +msgstr "" + +#. module: account +#: field:account.journal,update_posted:0 +msgid "Allow Cancelling Entries" +msgstr "" + +#. module: account +#: field:account.tax.code,sign:0 +msgid "Coefficent for parent" +msgstr "" + +#. module: account +#: view:account.analytic.account:0 +msgid "Analytic Accounts with a past deadline." +msgstr "" + +#. module: account +#: report:account.partner.balance:0 +msgid "(Account/Partner) Name" +msgstr "" + +#. module: account +#: view:account.bank.statement:0 +msgid "Transaction" +msgstr "" + +#. module: account +#: help:account.tax,base_code_id:0 +#: help:account.tax,ref_base_code_id:0 +#: help:account.tax,ref_tax_code_id:0 +#: help:account.tax,tax_code_id:0 +#: help:account.tax.template,base_code_id:0 +#: help:account.tax.template,ref_base_code_id:0 +#: help:account.tax.template,ref_tax_code_id:0 +#: help:account.tax.template,tax_code_id:0 +msgid "Use this code for the VAT declaration." +msgstr "" + +#. module: account +#: field:account.partner.reconcile.process,progress:0 +msgid "Progress" +msgstr "" + +#. module: account +#: view:report.hr.timesheet.invoice.journal:0 +msgid "Analytic Entries Stats" +msgstr "" + +#. module: account +#: field:wizard.multi.charts.accounts,bank_accounts_id:0 +msgid "Cash and Banks" +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_account_installer +msgid "account.installer" +msgstr "" + +#. module: account +#: field:account.tax.template,include_base_amount:0 +msgid "Include in Base Amount" +msgstr "" + +#. module: account +#: help:account.payment.term.line,days:0 +msgid "" +"Number of days to add before computation of the day of month.If Date=15/01, " +"Number of Days=22, Day of Month=-1, then the due date is 28/02." +msgstr "" + +#. module: account +#: view:account.payment.term.line:0 +msgid "Amount Computation" +msgstr "" + +#. module: account +#: view:account.journal:0 +msgid "Entry Controls" +msgstr "" + +#. module: account +#: view:account.analytic.chart:0 +#: view:project.account.analytic.line:0 +msgid "(Keep empty to open the current situation)" +msgstr "" + +#. module: account +#: field:account.analytic.balance,date1:0 +#: field:account.analytic.cost.ledger,date1:0 +#: field:account.analytic.cost.ledger.journal.report,date1:0 +#: field:account.analytic.inverted.balance,date1:0 +#: field:account.analytic.journal.report,date1:0 +msgid "Start of period" +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_account_common_account_report +msgid "Account Common Account Report" +msgstr "" + +#. module: account +#: field:account.bank.statement.line,name:0 +#: field:account.invoice,reference:0 +msgid "Communication" +msgstr "" + +#. module: account +#: model:ir.ui.menu,name:account.menu_analytic_accounting +msgid "Analytic Accounting" +msgstr "" + +#. module: account +#: field:account.partner.ledger,initial_balance:0 +#: field:account.report.general.ledger,initial_balance:0 +msgid "Include Initial Balances" +msgstr "" + +#. module: account +#: selection:account.invoice,type:0 +#: selection:account.invoice.report,type:0 +#: selection:report.invoice.created,type:0 +msgid "Customer Refund" +msgstr "Nota de Crédito de cliente" + +#. module: account +#: constraint:account.move:0 +msgid "" +"You can not create more than one move per period on centralized journal" +msgstr "" + +#. module: account +#: field:account.tax,ref_tax_sign:0 +#: field:account.tax,tax_sign:0 +#: field:account.tax.template,ref_tax_sign:0 +#: field:account.tax.template,tax_sign:0 +msgid "Tax Code Sign" +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_report_invoice_created +msgid "Report of Invoices Created within Last 15 days" +msgstr "" + +#. module: account +#: view:account.payment.term.line:0 +msgid " Number of Days: 14" +msgstr "" + +#. module: account +#: field:account.fiscalyear,end_journal_period_id:0 +msgid "End of Year Entries Journal" +msgstr "" + +#. module: account +#: code:addons/account/account.py:3446 +#: code:addons/account/account_bank_statement.py:338 +#: code:addons/account/account_invoice.py:427 +#: code:addons/account/account_invoice.py:527 +#: code:addons/account/account_invoice.py:542 +#: code:addons/account/account_invoice.py:550 +#: code:addons/account/account_invoice.py:572 +#: code:addons/account/wizard/account_move_journal.py:63 +#, python-format +msgid "Configuration Error !" +msgstr "" + +#. module: account +#: field:account.payment.term.line,value_amount:0 +msgid "Amount To Pay" +msgstr "" + +#. module: account +#: help:account.partner.reconcile.process,to_reconcile:0 +msgid "" +"This is the remaining partners for who you should check if there is " +"something to reconcile or not. This figure already count the current partner " +"as reconciled." +msgstr "" + +#. module: account +#: view:account.subscription.line:0 +msgid "Subscription lines" +msgstr "" + +#. module: account +#: field:account.entries.report,quantity:0 +msgid "Products Quantity" +msgstr "" + +#. module: account +#: view:account.entries.report:0 +#: selection:account.entries.report,move_state:0 +#: view:account.move:0 +#: selection:account.move,state:0 +#: view:account.move.line:0 +msgid "Unposted" +msgstr "" + +#. module: account +#: view:account.change.currency:0 +#: model:ir.actions.act_window,name:account.action_account_change_currency +#: model:ir.model,name:account.model_account_change_currency +msgid "Change Currency" +msgstr "" + +#. module: account +#: view:account.invoice:0 +msgid "This action will erase taxes" +msgstr "" + +#. module: account +#: model:process.node,note:account.process_node_accountingentries0 +#: model:process.node,note:account.process_node_supplieraccountingentries0 +msgid "Accounting entries." +msgstr "" + +#. module: account +#: view:account.invoice:0 +msgid "Payment Date" +msgstr "" + +#. module: account +#: view:account.analytic.account:0 +#: model:ir.actions.act_window,name:account.action_account_analytic_account_form +#: model:ir.ui.menu,name:account.account_analytic_def_account +msgid "Analytic Accounts" +msgstr "" + +#. module: account +#: view:account.invoice.report:0 +msgid "Customer Invoices And Refunds" +msgstr "Facturas y Notas de Crédito de clientes" + +#. module: account +#: field:account.analytic.line,amount_currency:0 +#: field:account.entries.report,amount_currency:0 +#: field:account.model.line,amount_currency:0 +#: field:account.move.line,amount_currency:0 +msgid "Amount Currency" +msgstr "" + +#. module: account +#: code:addons/account/wizard/account_validate_account_move.py:39 +#, python-format +msgid "" +"Specified Journal does not have any account move entries in draft state for " +"this period" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,name:account.action_view_move_line +msgid "Lines to reconcile" +msgstr "" + +#. module: account +#: report:account.analytic.account.balance:0 +#: report:account.analytic.account.inverted.balance:0 +#: report:account.analytic.account.quantity_cost_ledger:0 +#: report:account.invoice:0 +#: field:account.invoice.line,quantity:0 +#: field:account.model.line,quantity:0 +#: field:account.move.line,quantity:0 +#: view:analytic.entries.report:0 +#: field:analytic.entries.report,unit_amount:0 +#: field:report.account.sales,quantity:0 +#: field:report.account_type.sales,quantity:0 +msgid "Quantity" +msgstr "" + +#. module: account +#: view:account.move.line:0 +msgid "Number (Move)" +msgstr "" + +#. module: account +#: view:analytic.entries.report:0 +msgid "Analytic Entries during last 7 days" +msgstr "" + +#. module: account +#: selection:account.financial.report,style_overwrite:0 +msgid "Normal Text" +msgstr "" + +#. module: account +#: view:account.invoice.refund:0 +msgid "Refund Invoice Options" +msgstr "Opciones de Nota de Crédito" + +#. module: account +#: help:account.automatic.reconcile,power:0 +msgid "" +"Number of partial amounts that can be combined to find a balance point can " +"be chosen as the power of the automatic reconciliation" +msgstr "" + +#. module: account +#: help:account.payment.term.line,sequence:0 +msgid "" +"The sequence field is used to order the payment term lines from the lowest " +"sequences to the higher ones" +msgstr "" + +#. module: account +#: view:account.fiscal.position.template:0 +#: field:account.fiscal.position.template,name:0 +msgid "Fiscal Position Template" +msgstr "" + +#. module: account +#: view:account.analytic.chart:0 +#: view:account.chart:0 +#: view:account.tax.chart:0 +msgid "Open Charts" +msgstr "" + +#. module: account +#: view:account.fiscalyear.close.state:0 +msgid "" +"If no additional entries should be recorded on a fiscal year, you can close " +"it from here. It will close all opened periods in this year that will make " +"impossible any new entry record. Close a fiscal year when you need to " +"finalize your end of year results definitive " +msgstr "" + +#. module: account +#: field:account.central.journal,amount_currency:0 +#: field:account.common.journal.report,amount_currency:0 +#: field:account.general.journal,amount_currency:0 +#: field:account.partner.ledger,amount_currency:0 +#: field:account.print.journal,amount_currency:0 +#: field:account.report.general.ledger,amount_currency:0 +msgid "With Currency" +msgstr "" + +#. module: account +#: view:account.bank.statement:0 +msgid "Open CashBox" +msgstr "" + +#. module: account +#: selection:account.financial.report,style_overwrite:0 +msgid "Automatic formatting" +msgstr "" + +#. module: account +#: code:addons/account/account.py:963 +#, python-format +msgid "" +"No fiscal year defined for this date !\n" +"Please create one from the configuration of the accounting menu." +msgstr "" + +#. module: account +#: view:account.move.line.reconcile:0 +msgid "Reconcile With Write-Off" +msgstr "" + +#. module: account +#: selection:account.payment.term.line,value:0 +#: selection:account.tax,type:0 +msgid "Fixed Amount" +msgstr "" + +#. module: account +#: view:account.subscription:0 +msgid "Valid Up to" +msgstr "" + +#. module: account +#: view:account.journal:0 +msgid "Invoicing Data" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,name:account.action_account_automatic_reconcile +msgid "Account Automatic Reconcile" +msgstr "" + +#. module: account +#: view:account.move:0 +#: view:account.move.line:0 +msgid "Journal Item" +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_account_move_journal +msgid "Move journal" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,name:account.action_account_fiscalyear_close +#: model:ir.ui.menu,name:account.menu_wizard_fy_close +msgid "Generate Opening Entries" +msgstr "" + +#. module: account +#: code:addons/account/account_move_line.py:759 +#, python-format +msgid "Already Reconciled!" +msgstr "" + +#. module: account +#: help:account.tax,type:0 +msgid "The computation method for the tax amount." +msgstr "" + +#. module: account +#: view:account.payment.term.line:0 +msgid "Due Date Computation" +msgstr "" + +#. module: account +#: field:report.invoice.created,create_date:0 +msgid "Create Date" +msgstr "" + +#. module: account +#: view:account.analytic.journal:0 +#: model:ir.actions.act_window,name:account.action_account_analytic_journal_form +#: model:ir.ui.menu,name:account.account_def_analytic_journal +msgid "Analytic Journals" +msgstr "" + +#. module: account +#: field:account.account,child_id:0 +msgid "Child Accounts" +msgstr "" + +#. module: account +#: code:addons/account/account_move_line.py:1214 +#, python-format +msgid "Move name (id): %s (%s)" +msgstr "" + +#. module: account +#: view:account.move.line.reconcile:0 +#: code:addons/account/account_move_line.py:857 +#, python-format +msgid "Write-Off" +msgstr "" + +#. module: account +#: field:res.partner,debit:0 +msgid "Total Payable" +msgstr "" + +#. module: account +#: model:account.account.type,name:account.data_account_type_income +#: model:account.financial.report,name:account.account_financial_report_income0 +msgid "Income" +msgstr "" + +#. module: account +#: selection:account.bank.statement.line,type:0 +#: view:account.invoice:0 +#: view:account.invoice.report:0 +#: code:addons/account/account_invoice.py:339 +#, python-format +msgid "Supplier" +msgstr "" + +#. module: account +#: selection:account.entries.report,month:0 +#: selection:account.invoice.report,month:0 +#: selection:analytic.entries.report,month:0 +#: selection:report.account.sales,month:0 +#: selection:report.account_type.sales,month:0 +msgid "March" +msgstr "" + +#. module: account +#: view:account.account.template:0 +msgid "Account Template" +msgstr "" + +#. module: account +#: report:account.journal.period.print.sale.purchase:0 +msgid "VAT" +msgstr "" + +#. module: account +#: report:account.analytic.account.journal:0 +msgid "Account n°" +msgstr "" + +#. module: account +#: code:addons/account/account_invoice.py:88 +#, python-format +msgid "Free Reference" +msgstr "" + +#. module: account +#: field:account.payment.term.line,value:0 +msgid "Valuation" +msgstr "" + +#. module: account +#: selection:account.aged.trial.balance,result_selection:0 +#: selection:account.common.partner.report,result_selection:0 +#: selection:account.partner.balance,result_selection:0 +#: selection:account.partner.ledger,result_selection:0 +#: code:addons/account/report/account_partner_balance.py:301 +#, python-format +msgid "Receivable and Payable Accounts" +msgstr "" + +#. module: account +#: field:account.fiscal.position.account.template,position_id:0 +msgid "Fiscal Mapping" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,name:account.action_account_state_open +#: model:ir.model,name:account.model_account_state_open +msgid "Account State Open" +msgstr "" + +#. module: account +#: report:account.analytic.account.quantity_cost_ledger:0 +msgid "Max Qty:" +msgstr "" + +#. module: account +#: view:account.invoice.refund:0 +msgid "Refund Invoice" +msgstr "Reintegrar factura" + +#. module: account +#: field:account.invoice,address_invoice_id:0 +msgid "Invoice Address" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,help:account.action_account_entries_report_all +msgid "" +"From this view, have an analysis of your different financial accounts. The " +"document shows your debit and credit taking in consideration some criteria " +"you can choose by using the search tool." +msgstr "" + +#. module: account +#: model:ir.actions.act_window,help:account.action_tax_code_list +msgid "" +"The tax code definition depends on the tax declaration of your country. " +"OpenERP allows you to define the tax structure and manage it from this menu. " +"You can define both numeric and alphanumeric tax codes." +msgstr "" + +#. module: account +#: help:account.partner.reconcile.process,progress:0 +msgid "" +"Shows you the progress made today on the reconciliation process. Given by \n" +"Partners Reconciled Today \\ (Remaining Partners + Partners Reconciled Today)" +msgstr "" + +#. module: account +#: help:account.payment.term.line,value:0 +msgid "" +"Select here the kind of valuation related to this payment term line. Note " +"that you should have your last line with the type 'Balance' to ensure that " +"the whole amount will be threated." +msgstr "" + +#. module: account +#: field:account.invoice,period_id:0 +#: field:account.invoice.report,period_id:0 +#: field:report.account.sales,period_id:0 +#: field:report.account_type.sales,period_id:0 +msgid "Force Period" +msgstr "" + +#. module: account +#: view:account.invoice.report:0 +#: field:account.invoice.report,nbr:0 +msgid "# of Lines" +msgstr "" + +#. module: account +#: field:account.aged.trial.balance,filter:0 +#: field:account.balance.report,filter:0 +#: field:account.central.journal,filter:0 +#: field:account.common.account.report,filter:0 +#: field:account.common.journal.report,filter:0 +#: field:account.common.partner.report,filter:0 +#: field:account.common.report,filter:0 +#: field:account.general.journal,filter:0 +#: field:account.partner.balance,filter:0 +#: field:account.partner.ledger,filter:0 +#: field:account.print.journal,filter:0 +#: field:account.report.general.ledger,filter:0 +#: field:account.vat.declaration,filter:0 +#: field:accounting.report,filter:0 +#: field:accounting.report,filter_cmp:0 +msgid "Filter by" +msgstr "" + +#. module: account +#: code:addons/account/account.py:2256 +#, python-format +msgid "You have a wrong expression \"%(...)s\" in your model !" +msgstr "" + +#. module: account +#: field:account.bank.statement.line,date:0 +msgid "Entry Date" +msgstr "" + +#. module: account +#: code:addons/account/account_move_line.py:1155 +#: code:addons/account/account_move_line.py:1238 +#, python-format +msgid "You can not use an inactive account!" +msgstr "" + +#. module: account +#: code:addons/account/account_move_line.py:830 +#, python-format +msgid "Entries are not of the same account or already reconciled ! " +msgstr "" + +#. module: account +#: help:account.bank.statement,balance_end:0 +msgid "Balance as calculated based on Starting Balance and transaction lines" +msgstr "" + +#. module: account +#: code:addons/account/wizard/account_change_currency.py:64 +#: code:addons/account/wizard/account_change_currency.py:70 +#, python-format +msgid "Current currency is not configured properly !" +msgstr "" + +#. module: account +#: field:account.tax,account_collected_id:0 +#: field:account.tax.template,account_collected_id:0 +msgid "Invoice Tax Account" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,name:account.action_account_general_journal +#: model:ir.model,name:account.model_account_general_journal +msgid "Account General Journal" +msgstr "" + +#. module: account +#: field:account.payment.term.line,days:0 +msgid "Number of Days" +msgstr "" + +#. module: account +#: code:addons/account/account_bank_statement.py:402 +#: code:addons/account/account_invoice.py:392 +#: code:addons/account/wizard/account_period_close.py:51 +#, python-format +msgid "Invalid action !" +msgstr "" + +#. module: account +#: code:addons/account/wizard/account_move_journal.py:102 +#, python-format +msgid "Period: %s" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,name:account.action_review_financial_journals_installer +msgid "Review your Financial Journals" +msgstr "" + +#. module: account +#: help:account.tax,name:0 +msgid "This name will be displayed on reports" +msgstr "" + +#. module: account +#: report:account.analytic.account.cost_ledger:0 +#: report:account.analytic.account.quantity_cost_ledger:0 +msgid "Printing date" +msgstr "" + +#. module: account +#: selection:account.account.type,close_method:0 +#: selection:account.tax,type:0 +#: selection:account.tax.template,type:0 +msgid "None" +msgstr "" + +#. module: account +#: view:analytic.entries.report:0 +msgid " 365 Days " +msgstr "" + +#. module: account +#: model:ir.actions.act_window,name:account.action_invoice_tree3 +#: model:ir.ui.menu,name:account.menu_action_invoice_tree3 +msgid "Customer Refunds" +msgstr "Notas de Crédito de clientes" + +#. module: account +#: field:account.account,foreign_balance:0 +msgid "Foreign Balance" +msgstr "" + +#. module: account +#: field:account.journal.period,name:0 +msgid "Journal-Period Name" +msgstr "" + +#. module: account +#: field:account.invoice.tax,factor_base:0 +msgid "Multipication factor for Base code" +msgstr "" + +#. module: account +#: code:addons/account/wizard/account_report_common.py:150 +#, python-format +msgid "not implemented" +msgstr "" + +#. module: account +#: help:account.journal,company_id:0 +msgid "Company related to this journal" +msgstr "" + +#. module: account +#: code:addons/account/wizard/account_invoice_state.py:44 +#, python-format +msgid "" +"Selected Invoice(s) cannot be confirmed as they are not in 'Draft' or 'Pro-" +"Forma' state!" +msgstr "" + +#. module: account +#: view:account.subscription:0 +msgid "Running Subscription" +msgstr "" + +#. module: account +#: report:account.invoice:0 +msgid "Fiscal Position Remark :" +msgstr "" + +#. module: account +#: view:analytic.entries.report:0 +#: model:ir.actions.act_window,name:account.action_analytic_entries_report +#: model:ir.ui.menu,name:account.menu_action_analytic_entries_report +msgid "Analytic Entries Analysis" +msgstr "" + +#. module: account +#: selection:account.aged.trial.balance,direction_selection:0 +msgid "Past" +msgstr "" + +#. module: account +#: constraint:account.account:0 +msgid "" +"Configuration Error! \n" +"You can not define children to an account with internal type different of " +"\"View\"! " +msgstr "" + +#. module: account +#: help:res.partner.bank,journal_id:0 +msgid "" +"This journal will be created automatically for this bank account when you " +"save the record" +msgstr "" + +#. module: account +#: view:account.analytic.line:0 +msgid "Analytic Entry" +msgstr "" + +#. module: account +#: view:res.company:0 +#: field:res.company,overdue_msg:0 +msgid "Overdue Payments Message" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,help:account.action_account_moves_all_a +msgid "" +"This view can be used by accountants in order to quickly record entries in " +"OpenERP. If you want to record a supplier invoice, start by recording the " +"line of the expense account. OpenERP will propose to you automatically the " +"Tax related to this account and the counterpart \"Account Payable\"." +msgstr "" + +#. module: account +#: field:account.entries.report,date_created:0 +msgid "Date Created" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,name:account.action_account_analytic_account_line_extended_form +msgid "account.analytic.line.extended" +msgstr "" + +#. module: account +#: view:account.invoice:0 +msgid "(keep empty to use the current period)" +msgstr "" + +#. module: account +#: model:process.transition,note:account.process_transition_supplierreconcilepaid0 +msgid "" +"As soon as the reconciliation is done, the invoice's state turns to “done” " +"(i.e. paid) in the system." +msgstr "" + +#. module: account +#: view:account.chart.template:0 +#: field:account.chart.template,account_root_id:0 +msgid "Root Account" +msgstr "" + +#. module: account +#: field:res.partner,last_reconciliation_date:0 +msgid "Latest Reconciliation Date" +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_account_analytic_line +msgid "Analytic Line" +msgstr "" + +#. module: account +#: field:product.template,taxes_id:0 +msgid "Customer Taxes" +msgstr "" + +#. module: account +#: help:account.model,name:0 +msgid "This is a model for recurring accounting entries" +msgstr "" + +#. module: account +#: field:wizard.multi.charts.accounts,sale_tax_rate:0 +msgid "Sales Tax(%)" +msgstr "" + +#. module: account +#: view:account.addtmpl.wizard:0 +msgid "Create an Account Based on this Template" +msgstr "" + +#. module: account +#: view:account.account.type:0 +#: view:account.tax.code:0 +msgid "Reporting Configuration" +msgstr "" + +#. module: account +#: field:account.tax,type:0 +#: field:account.tax.template,type:0 +msgid "Tax Type" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,name:account.action_account_template_form +#: model:ir.ui.menu,name:account.menu_action_account_template_form +msgid "Account Templates" +msgstr "" + +#. module: account +#: help:wizard.multi.charts.accounts,complete_tax_set:0 +msgid "" +"This boolean helps you to choose if you want to propose to the user to " +"encode the sales and purchase rates or use the usual m2o fields. This last " +"choice assumes that the set of tax defined for the chosen template is " +"complete" +msgstr "" + +#. module: account +#: report:account.vat.declaration:0 +msgid "Tax Statement" +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_res_company +msgid "Companies" +msgstr "" + +#. module: account +#: view:account.invoice.report:0 +msgid "Open and Paid Invoices" +msgstr "" + +#. module: account +#: selection:account.financial.report,display_detail:0 +msgid "Display children flat" +msgstr "" + +#. module: account +#: code:addons/account/account.py:629 +#, python-format +msgid "" +"You can not remove/desactivate an account which is set on a customer or " +"supplier." +msgstr "" + +#. module: account +#: help:account.fiscalyear.close.state,fy_id:0 +msgid "Select a fiscal year to close" +msgstr "" + +#. module: account +#: help:account.chart.template,tax_template_ids:0 +msgid "List of all the taxes that have to be installed by the wizard" +msgstr "" + +#. module: account +#: model:ir.actions.report.xml,name:account.account_intracom +msgid "IntraCom" +msgstr "" + +#. module: account +#: view:account.move.line.reconcile.writeoff:0 +msgid "Information addendum" +msgstr "" + +#. module: account +#: field:account.chart,fiscalyear:0 +msgid "Fiscal year" +msgstr "" + +#. module: account +#: view:account.move.reconcile:0 +msgid "Partial Reconcile Entries" +msgstr "" + +#. module: account +#: view:account.addtmpl.wizard:0 +#: view:account.aged.trial.balance:0 +#: view:account.analytic.balance:0 +#: view:account.analytic.chart:0 +#: view:account.analytic.cost.ledger:0 +#: view:account.analytic.cost.ledger.journal.report:0 +#: view:account.analytic.inverted.balance:0 +#: view:account.analytic.journal.report:0 +#: view:account.automatic.reconcile:0 +#: view:account.bank.statement:0 +#: view:account.change.currency:0 +#: view:account.chart:0 +#: view:account.common.report:0 +#: view:account.fiscalyear.close:0 +#: view:account.fiscalyear.close.state:0 +#: view:account.invoice:0 +#: view:account.invoice.refund:0 +#: view:account.journal.select:0 +#: view:account.move:0 +#: view:account.move.bank.reconcile:0 +#: view:account.move.line.reconcile:0 +#: view:account.move.line.reconcile.select:0 +#: view:account.move.line.reconcile.writeoff:0 +#: view:account.move.line.unreconcile.select:0 +#: view:account.open.closed.fiscalyear:0 +#: view:account.partner.reconcile.process:0 +#: view:account.period.close:0 +#: view:account.subscription.generate:0 +#: view:account.tax.chart:0 +#: view:account.unreconcile:0 +#: view:account.unreconcile.reconcile:0 +#: view:account.use.model:0 +#: view:account.vat.declaration:0 +#: code:addons/account/wizard/account_move_journal.py:105 +#: view:project.account.analytic.line:0 +#: view:validate.account.move:0 +#: view:validate.account.move.lines:0 +#, python-format +msgid "Cancel" +msgstr "" + +#. module: account +#: selection:account.account,type:0 +#: selection:account.account.template,type:0 +#: model:account.account.type,name:account.data_account_type_receivable +#: selection:account.entries.report,type:0 +msgid "Receivable" +msgstr "" + +#. module: account +#: constraint:account.move.line:0 +msgid "Company must be the same for its related account and period." +msgstr "" + +#. module: account +#: view:account.invoice:0 +msgid "Other Info" +msgstr "" + +#. module: account +#: field:account.journal,default_credit_account_id:0 +msgid "Default Credit Account" +msgstr "" + +#. module: account +#: help:account.analytic.line,currency_id:0 +msgid "The related account currency if not equal to the company one." +msgstr "" + +#. module: account +#: view:account.analytic.account:0 +msgid "Current" +msgstr "" + +#. module: account +#: view:account.bank.statement:0 +msgid "CashBox" +msgstr "" + +#. module: account +#: model:account.account.type,name:account.account_type_cash_equity +msgid "Equity" +msgstr "" + +#. module: account +#: selection:account.tax,type:0 +msgid "Percentage" +msgstr "" + +#. module: account +#: selection:account.report.general.ledger,sortby:0 +msgid "Journal & Partner" +msgstr "" + +#. module: account +#: field:account.automatic.reconcile,power:0 +msgid "Power" +msgstr "" + +#. module: account +#: code:addons/account/account.py:3368 +#, python-format +msgid "Cannot generate an unused journal code." +msgstr "" + +#. module: account +#: view:project.account.analytic.line:0 +msgid "View Account Analytic Lines" +msgstr "" + +#. module: account +#: field:account.invoice,internal_number:0 +#: field:report.invoice.created,number:0 +msgid "Invoice Number" +msgstr "" + +#. module: account +#: help:account.tax,include_base_amount:0 +msgid "" +"Indicates if the amount of tax must be included in the base amount for the " +"computation of the next taxes" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,name:account.action_account_partner_reconcile +msgid "Reconciliation: Go to Next Partner" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,name:account.action_account_analytic_invert_balance +#: model:ir.actions.report.xml,name:account.account_analytic_account_inverted_balance +msgid "Inverted Analytic Balance" +msgstr "" + +#. module: account +#: field:account.tax.template,applicable_type:0 +msgid "Applicable Type" +msgstr "" + +#. module: account +#: field:account.invoice.line,invoice_id:0 +msgid "Invoice Reference" +msgstr "" + +#. module: account +#: help:account.tax.template,sequence:0 +msgid "" +"The sequence field is used to order the taxes lines from lower sequences to " +"higher ones. The order is important if you have a tax that has several tax " +"children. In this case, the evaluation order is important." +msgstr "" + +#. module: account +#: selection:account.account,type:0 +#: selection:account.account.template,type:0 +#: view:account.journal:0 +msgid "Liquidity" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,name:account.action_account_analytic_journal_open_form +#: model:ir.ui.menu,name:account.account_analytic_journal_entries +msgid "Analytic Journal Items" +msgstr "" + +#. module: account +#: view:account.fiscalyear.close:0 +msgid "" +"This wizard will generate the end of year journal entries of selected fiscal " +"year. Note that you can run this wizard many times for the same fiscal year: " +"it will simply replace the old opening entries with the new ones." +msgstr "" + +#. module: account +#: model:ir.ui.menu,name:account.menu_finance_bank_and_cash +msgid "Bank and Cash" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,help:account.action_analytic_entries_report +msgid "" +"From this view, have an analysis of your different analytic entries " +"following the analytic account you defined matching your business need. Use " +"the tool search to analyse information about analytic entries generated in " +"the system." +msgstr "" + +#. module: account +#: sql_constraint:account.journal:0 +msgid "The name of the journal must be unique per company !" +msgstr "" + +#. module: account +#: field:account.account.template,nocreate:0 +msgid "Optional create" +msgstr "" + +#. module: account +#: code:addons/account/account.py:664 +#, python-format +msgid "" +"You cannot change the owner company of an account that already contains " +"journal items." +msgstr "" + +#. module: account +#: code:addons/account/wizard/account_report_aged_partner_balance.py:58 +#, python-format +msgid "Enter a Start date !" +msgstr "" + +#. module: account +#: report:account.invoice:0 +#: selection:account.invoice,type:0 +#: selection:account.invoice.report,type:0 +#: selection:report.invoice.created,type:0 +msgid "Supplier Refund" +msgstr "Nota de Crédito de proveedor" + +#. module: account +#: field:account.bank.statement,move_line_ids:0 +msgid "Entry lines" +msgstr "" + +#. module: account +#: field:account.move.line,centralisation:0 +msgid "Centralisation" +msgstr "" + +#. module: account +#: view:account.account:0 +#: view:account.account.template:0 +#: view:account.analytic.account:0 +#: view:account.analytic.journal:0 +#: view:account.analytic.line:0 +#: view:account.bank.statement:0 +#: view:account.chart.template:0 +#: view:account.entries.report:0 +#: view:account.financial.report:0 +#: view:account.fiscalyear:0 +#: view:account.invoice:0 +#: view:account.invoice.report:0 +#: view:account.journal:0 +#: view:account.model:0 +#: view:account.move:0 +#: view:account.move.line:0 +#: view:account.subscription:0 +#: view:account.tax.code.template:0 +#: view:analytic.entries.report:0 +msgid "Group By..." +msgstr "" + +#. module: account +#: field:account.journal.column,readonly:0 +msgid "Readonly" +msgstr "" + +#. module: account +#: view:account.payment.term.line:0 +msgid " Valuation: Balance" +msgstr "" + +#. module: account +#: field:account.invoice.line,uos_id:0 +msgid "Unit of Measure" +msgstr "" + +#. module: account +#: constraint:account.payment.term.line:0 +msgid "" +"Percentages for Payment Term Line must be between 0 and 1, Example: 0.02 for " +"2% " +msgstr "" + +#. module: account +#: field:account.installer,has_default_company:0 +msgid "Has Default Company" +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_account_sequence_fiscalyear +msgid "account.sequence.fiscalyear" +msgstr "" + +#. module: account +#: report:account.analytic.account.journal:0 +#: view:account.analytic.journal:0 +#: field:account.analytic.line,journal_id:0 +#: field:account.journal,analytic_journal_id:0 +#: model:ir.actions.act_window,name:account.action_account_analytic_journal +#: model:ir.actions.report.xml,name:account.analytic_journal_print +#: model:ir.model,name:account.model_account_analytic_journal +msgid "Analytic Journal" +msgstr "" + +#. module: account +#: code:addons/account/account.py:622 +#, python-format +msgid "You can not desactivate an account that contains some journal items." +msgstr "" + +#. module: account +#: view:account.entries.report:0 +msgid "Reconciled" +msgstr "" + +#. module: account +#: report:account.invoice:0 +#: field:account.invoice.tax,base:0 +msgid "Base" +msgstr "" + +#. module: account +#: field:account.model,name:0 +msgid "Model Name" +msgstr "" + +#. module: account +#: field:account.chart.template,property_account_expense_categ:0 +msgid "Expense Category Account" +msgstr "" + +#. module: account +#: view:account.bank.statement:0 +msgid "Cash Transactions" +msgstr "" + +#. module: account +#: code:addons/account/wizard/account_state_open.py:37 +#, python-format +msgid "Invoice is already reconciled" +msgstr "" + +#. module: account +#: view:account.account:0 +#: view:account.account.template:0 +#: view:account.bank.statement:0 +#: field:account.bank.statement.line,note:0 +#: view:account.fiscal.position:0 +#: field:account.fiscal.position,note:0 +#: field:account.fiscal.position.template,note:0 +#: view:account.invoice.line:0 +#: field:account.invoice.line,note:0 +msgid "Notes" +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_analytic_entries_report +msgid "Analytic Entries Statistics" +msgstr "" + +#. module: account +#: code:addons/account/account.py:624 +#, python-format +msgid "You can not remove an account containing journal items." +msgstr "" + +#. module: account +#: code:addons/account/account_analytic_line.py:145 +#: code:addons/account/account_move_line.py:933 +#, python-format +msgid "Entries: " +msgstr "" + +#. module: account +#: view:account.use.model:0 +msgid "Create manual recurring entries in a chosen journal." +msgstr "" + +#. module: account +#: help:res.partner.bank,currency_id:0 +msgid "Currency of the related account journal." +msgstr "" + +#. module: account +#: code:addons/account/account.py:1563 +#, python-format +msgid "Couldn't create move between different companies" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,help:account.action_account_type_form +msgid "" +"An account type is used to determine how an account is used in each journal. " +"The deferral method of an account type determines the process for the annual " +"closing. Reports such as the Balance Sheet and the Profit and Loss report " +"use the category (profit/loss or balance sheet). For example, the account " +"type could be linked to an asset account, expense account or payable " +"account. From this view, you can create and manage the account types you " +"need for your company." +msgstr "" + +#. module: account +#: selection:account.account.type,report_type:0 +#: code:addons/account/account.py:183 +#, python-format +msgid "Balance Sheet (Asset account)" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,help:account.action_account_bank_reconcile_tree +msgid "" +"Bank Reconciliation consists of verifying that your bank statement " +"corresponds with the entries (or records) of that account in your accounting " +"system." +msgstr "" + +#. module: account +#: model:process.node,note:account.process_node_draftstatement0 +msgid "State is draft" +msgstr "" + +#. module: account +#: view:account.move.line:0 +#: code:addons/account/account_move_line.py:1043 +#, python-format +msgid "Total debit" +msgstr "" + +#. module: account +#: code:addons/account/account_move_line.py:808 +#, python-format +msgid "Entry \"%s\" is not valid !" +msgstr "" + +#. module: account +#: report:account.invoice:0 +msgid "Fax :" +msgstr "" + +#. module: account +#: view:wizard.multi.charts.accounts:0 +msgid "" +"This will automatically configure your chart of accounts, bank accounts, " +"taxes and journals according to the selected template" +msgstr "" + +#. module: account +#: help:res.partner,property_account_receivable:0 +msgid "" +"This account will be used instead of the default one as the receivable " +"account for the current partner" +msgstr "" + +#. module: account +#: field:account.tax,python_applicable:0 +#: field:account.tax,python_compute:0 +#: selection:account.tax,type:0 +#: selection:account.tax.template,applicable_type:0 +#: field:account.tax.template,python_applicable:0 +#: field:account.tax.template,python_compute:0 +#: selection:account.tax.template,type:0 +msgid "Python Code" +msgstr "" + +#. module: account +#: view:account.entries.report:0 +msgid "Journal Entries with period in current period" +msgstr "" + +#. module: account +#: help:account.journal,update_posted:0 +msgid "" +"Check this box if you want to allow the cancellation the entries related to " +"this journal or of the invoice related to this journal" +msgstr "" + +#. module: account +#: view:account.fiscalyear.close:0 +msgid "Create" +msgstr "" + +#. module: account +#: model:process.transition.action,name:account.process_transition_action_createentries0 +msgid "Create entry" +msgstr "" + +#. module: account +#: selection:account.account.type,report_type:0 +#: code:addons/account/account.py:182 +#, python-format +msgid "Profit & Loss (Expense account)" +msgstr "" + +#. module: account +#: code:addons/account/account.py:622 +#: code:addons/account/account.py:624 +#: code:addons/account/account.py:963 +#: code:addons/account/account.py:1052 +#: code:addons/account/account.py:1129 +#: code:addons/account/account.py:1344 +#: code:addons/account/account.py:1351 +#: code:addons/account/account.py:2280 +#: code:addons/account/account.py:2596 +#: code:addons/account/account_analytic_line.py:92 +#: code:addons/account/account_analytic_line.py:101 +#: code:addons/account/account_bank_statement.py:301 +#: code:addons/account/account_bank_statement.py:314 +#: code:addons/account/account_bank_statement.py:352 +#: code:addons/account/account_cash_statement.py:292 +#: code:addons/account/account_cash_statement.py:314 +#: code:addons/account/account_invoice.py:808 +#: code:addons/account/account_invoice.py:839 +#: code:addons/account/account_invoice.py:1030 +#: code:addons/account/account_move_line.py:1200 +#: code:addons/account/account_move_line.py:1216 +#: code:addons/account/account_move_line.py:1218 +#: code:addons/account/wizard/account_invoice_refund.py:108 +#: code:addons/account/wizard/account_invoice_refund.py:110 +#: code:addons/account/wizard/account_open_closed_fiscalyear.py:39 +#: code:addons/account/wizard/account_use_model.py:44 +#, python-format +msgid "Error !" +msgstr "" + +#. module: account +#: field:account.financial.report,style_overwrite:0 +msgid "Financial Report Style" +msgstr "" + +#. module: account +#: selection:account.financial.report,sign:0 +msgid "Preserve balance sign" +msgstr "" + +#. module: account +#: view:account.vat.declaration:0 +#: model:ir.actions.report.xml,name:account.account_vat_declaration +#: model:ir.ui.menu,name:account.menu_account_vat_declaration +msgid "Taxes Report" +msgstr "" + +#. module: account +#: selection:account.journal.period,state:0 +msgid "Printed" +msgstr "" + +#. module: account +#: code:addons/account/account_move_line.py:584 +#: code:addons/account/account_move_line.py:591 +#, python-format +msgid "Error :" +msgstr "" + +#. module: account +#: view:account.analytic.line:0 +msgid "Project line" +msgstr "" + +#. module: account +#: field:account.invoice.tax,manual:0 +msgid "Manual" +msgstr "" + +#. module: account +#: view:account.automatic.reconcile:0 +msgid "" +"For an invoice to be considered as paid, the invoice entries must be " +"reconciled with counterparts, usually payments. With the automatic " +"reconciliation functionality, OpenERP makes its own search for entries to " +"reconcile in a series of accounts. It finds entries for each partner where " +"the amounts correspond." +msgstr "" + +#. module: account +#: view:account.move:0 +#: field:account.move,to_check:0 +msgid "To Review" +msgstr "" + +#. module: account +#: help:account.partner.ledger,initial_balance:0 +#: help:account.report.general.ledger,initial_balance:0 +msgid "" +"If you selected to filter by date or period, this field allow you to add a " +"row to display the amount of debit/credit/balance that precedes the filter " +"you've set." +msgstr "" + +#. module: account +#: view:account.bank.statement:0 +#: view:account.move:0 +#: model:ir.actions.act_window,name:account.action_move_journal_line +#: model:ir.ui.menu,name:account.menu_action_move_journal_line_form +#: model:ir.ui.menu,name:account.menu_finance_entries +msgid "Journal Entries" +msgstr "" + +#. module: account +#: help:account.partner.ledger,page_split:0 +msgid "Display Ledger Report with One partner per page" +msgstr "" + +#. module: account +#: code:addons/account/account_move_line.py:1218 +#, python-format +msgid "" +"You can not do this modification on a reconciled entry! You can just change " +"some non legal fields or you must unreconcile first!\n" +"%s" +msgstr "" + +#. module: account +#: report:account.general.ledger:0 +#: report:account.general.ledger_landscape:0 +#: report:account.third_party_ledger:0 +#: report:account.third_party_ledger_other:0 +msgid "JRNL" +msgstr "" + +#. module: account +#: view:account.partner.balance:0 +#: view:account.partner.ledger:0 +msgid "" +"This report is an analysis done by a partner. It is a PDF report containing " +"one line per partner representing the cumulative credit balance" +msgstr "" + +#. module: account +#: code:addons/account/wizard/account_validate_account_move.py:61 +#, python-format +msgid "" +"Selected Entry Lines does not have any account move enties in draft state" +msgstr "" + +#. module: account +#: selection:account.aged.trial.balance,target_move:0 +#: selection:account.balance.report,target_move:0 +#: selection:account.central.journal,target_move:0 +#: selection:account.chart,target_move:0 +#: selection:account.common.account.report,target_move:0 +#: selection:account.common.journal.report,target_move:0 +#: selection:account.common.partner.report,target_move:0 +#: selection:account.common.report,target_move:0 +#: selection:account.general.journal,target_move:0 +#: selection:account.move.journal,target_move:0 +#: selection:account.partner.balance,target_move:0 +#: selection:account.partner.ledger,target_move:0 +#: selection:account.print.journal,target_move:0 +#: selection:account.report.general.ledger,target_move:0 +#: selection:account.tax.chart,target_move:0 +#: selection:account.vat.declaration,target_move:0 +#: selection:accounting.report,target_move:0 +#: code:addons/account/report/common_report_header.py:67 +#, python-format +msgid "All Entries" +msgstr "" + +#. module: account +#: constraint:product.template:0 +msgid "" +"Error: The default UOM and the purchase UOM must be in the same category." +msgstr "" + +#. module: account +#: view:account.journal.select:0 +msgid "Journal Select" +msgstr "" + +#. module: account +#: view:account.bank.statement:0 +#: code:addons/account/account.py:420 +#: code:addons/account/account.py:432 +#, python-format +msgid "Opening Balance" +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_account_move_reconcile +msgid "Account Reconciliation" +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_account_fiscal_position_tax +msgid "Taxes Fiscal Position" +msgstr "" + +#. module: account +#: report:account.general.ledger:0 +#: report:account.general.ledger_landscape:0 +#: view:account.report.general.ledger:0 +#: model:ir.actions.act_window,name:account.action_account_general_ledger_menu +#: model:ir.actions.report.xml,name:account.account_general_ledger +#: model:ir.actions.report.xml,name:account.account_general_ledger_landscape +#: model:ir.ui.menu,name:account.menu_general_ledger +msgid "General Ledger" +msgstr "" + +#. module: account +#: model:process.transition,note:account.process_transition_paymentorderbank0 +msgid "The payment order is sent to the bank." +msgstr "" + +#. module: account +#: view:account.balance.report:0 +msgid "" +"This report allows you to print or generate a pdf of your trial balance " +"allowing you to quickly check the balance of each of your accounts in a " +"single report" +msgstr "" + +#. module: account +#: help:account.move,to_check:0 +msgid "" +"Check this box if you are unsure of that journal entry and if you want to " +"note it as 'to be reviewed' by an accounting expert." +msgstr "" + +#. module: account +#: field:account.chart.template,complete_tax_set:0 +#: field:wizard.multi.charts.accounts,complete_tax_set:0 +msgid "Complete Set of Taxes" +msgstr "" + +#. module: account +#: view:account.chart.template:0 +msgid "Properties" +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_account_tax_chart +msgid "Account tax chart" +msgstr "" + +#. module: account +#: constraint:res.partner.bank:0 +msgid "" +"\n" +"Please define BIC/Swift code on bank for bank type IBAN Account to make " +"valid payments" +msgstr "" + +#. module: account +#: report:account.analytic.account.cost_ledger:0 +#: report:account.analytic.account.quantity_cost_ledger:0 +#: report:account.central.journal:0 +#: report:account.general.journal:0 +#: report:account.invoice:0 +#: report:account.journal.period.print:0 +#: report:account.journal.period.print.sale.purchase:0 +#: report:account.partner.balance:0 +msgid "Total:" +msgstr "" + +#. module: account +#: code:addons/account/account.py:2229 +#, python-format +msgid "" +"You can specify year, month and date in the name of the model using the " +"following labels:\n" +"\n" +"%(year)s: To Specify Year \n" +"%(month)s: To Specify Month \n" +"%(date)s: Current Date\n" +"\n" +"e.g. My model on %(date)s" +msgstr "" + +#. module: account +#: help:report.invoice.created,origin:0 +msgid "Reference of the document that generated this invoice report." +msgstr "" + +#. module: account +#: field:account.tax.code,child_ids:0 +#: field:account.tax.code.template,child_ids:0 +msgid "Child Codes" +msgstr "" + +#. module: account +#: view:account.tax.template:0 +msgid "Taxes used in Sales" +msgstr "" + +#. module: account +#: code:addons/account/account_invoice.py:495 +#: code:addons/account/wizard/account_invoice_refund.py:145 +#, python-format +msgid "Data Insufficient !" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,name:account.action_invoice_tree1 +#: model:ir.ui.menu,name:account.menu_action_invoice_tree1 +msgid "Customer Invoices" +msgstr "" + +#. module: account +#: field:account.move.line.reconcile,writeoff:0 +msgid "Write-Off amount" +msgstr "" + +#. module: account +#: view:account.analytic.line:0 +msgid "Sales" +msgstr "" + +#. module: account +#: view:account.journal.column:0 +#: model:ir.model,name:account.model_account_journal_column +msgid "Journal Column" +msgstr "" + +#. module: account +#: selection:account.invoice.report,state:0 +#: selection:account.journal.period,state:0 +#: selection:account.subscription,state:0 +#: selection:report.invoice.created,state:0 +msgid "Done" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,help:account.action_bank_tree +msgid "" +"Configure your company's bank account and select those that must appear on " +"the report footer. You can reorder banks in the list view. If you use the " +"accounting application of OpenERP, journals and accounts will be created " +"automatically based on these data." +msgstr "" + +#. module: account +#: model:process.transition,note:account.process_transition_invoicemanually0 +msgid "A statement with manual entries becomes a draft statement." +msgstr "" + +#. module: account +#: view:account.aged.trial.balance:0 +msgid "" +"Aged Partner Balance is a more detailed report of your receivables by " +"intervals. When opening that report, OpenERP asks for the name of the " +"company, the fiscal period and the size of the interval to be analyzed (in " +"days). OpenERP then calculates a table of credit balance by period. So if " +"you request an interval of 30 days OpenERP generates an analysis of " +"creditors for the past month, past two months, and so on. " +msgstr "" + +#. module: account +#: field:account.invoice,origin:0 +#: field:report.invoice.created,origin:0 +msgid "Source Document" +msgstr "" + +#. module: account +#: code:addons/account/account.py:1432 +#, python-format +msgid "You can not delete a posted journal entry \"%s\"!" +msgstr "" + +#. module: account +#: selection:account.partner.ledger,filter:0 +#: code:addons/account/report/account_partner_ledger.py:59 +#: model:ir.actions.act_window,name:account.act_account_acount_move_line_open_unreconciled +#, python-format +msgid "Unreconciled Entries" +msgstr "" + +#. module: account +#: model:ir.ui.menu,name:account.menu_menu_Bank_process +msgid "Statements Reconciliation" +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_accounting_report +msgid "Accounting Report" +msgstr "" + +#. module: account +#: report:account.invoice:0 +msgid "Taxes:" +msgstr "" + +#. module: account +#: help:account.tax,amount:0 +msgid "For taxes of type percentage, enter % ratio between 0-1." +msgstr "" + +#. module: account +#: model:ir.actions.act_window,help:account.action_subscription_form +msgid "" +"A recurring entry is a miscellaneous entry that occurs on a recurrent basis " +"from a specific date, i.e. corresponding to the signature of a contract or " +"an agreement with a customer or a supplier. With Define Recurring Entries, " +"you can create such entries to automate the postings in the system." +msgstr "" + +#. module: account +#: model:ir.actions.act_window,name:account.action_account_report_tree_hierarchy +msgid "Financial Reports Hierarchy" +msgstr "" + +#. module: account +#: field:account.entries.report,product_uom_id:0 +#: view:analytic.entries.report:0 +#: field:analytic.entries.report,product_uom_id:0 +msgid "Product UOM" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,help:account.action_view_bank_statement_tree +msgid "" +"A Cash Register allows you to manage cash entries in your cash journals. " +"This feature provides an easy way to follow up cash payments on a daily " +"basis. You can enter the coins that are in your cash box, and then post " +"entries when money comes in or goes out of the cash box." +msgstr "" + +#. module: account +#: help:account.invoice.refund,date:0 +msgid "" +"This date will be used as the invoice date for Refund Invoice and Period " +"will be chosen accordingly!" +msgstr "" +"Esta fecha se utilizará como la fecha de facturación de la Nota de Crédito y " +"el período será elegido en consecuencia." + +#. module: account +#: model:ir.actions.act_window,name:account.act_account_invoice_partner_relation +msgid "Monthly Turnover" +msgstr "" + +#. module: account +#: view:account.move:0 +#: view:account.move.line:0 +msgid "Analytic Lines" +msgstr "" + +#. module: account +#: field:account.analytic.journal,line_ids:0 +#: field:account.tax.code,line_ids:0 +msgid "Lines" +msgstr "" + +#. module: account +#: view:account.tax.template:0 +msgid "Account Tax Template" +msgstr "" + +#. module: account +#: view:account.journal.select:0 +msgid "Are you sure you want to open Journal Entries?" +msgstr "" + +#. module: account +#: view:account.state.open:0 +msgid "Are you sure you want to open this invoice ?" +msgstr "" + +#. module: account +#: code:addons/account/account_invoice.py:528 +#: code:addons/account/account_invoice.py:543 +#, python-format +msgid "" +"Can not find a chart of account, you should create one from the " +"configuration of the accounting menu." +msgstr "" + +#. module: account +#: field:account.chart.template,property_account_expense_opening:0 +msgid "Opening Entries Expense Account" +msgstr "" + +#. module: account +#: code:addons/account/account_move_line.py:999 +#, python-format +msgid "Accounting Entries" +msgstr "" + +#. module: account +#: field:account.account.template,parent_id:0 +msgid "Parent Account Template" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,name:account.action_account_configuration_installer +msgid "Configure your Chart of Accounts" +msgstr "" + +#. module: account +#: view:account.bank.statement:0 +#: field:account.bank.statement.line,statement_id:0 +#: field:account.move.line,statement_id:0 +#: model:process.process,name:account.process_process_statementprocess0 +msgid "Statement" +msgstr "" + +#. module: account +#: help:account.journal,default_debit_account_id:0 +msgid "It acts as a default account for debit amount" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,help:account.action_account_journal_period_tree +msgid "" +"You can search for individual account entries through useful information. To " +"search for account entries, open a journal, then select a record line." +msgstr "" + +#. module: account +#: view:account.entries.report:0 +msgid "Posted entries" +msgstr "" + +#. module: account +#: help:account.payment.term.line,value_amount:0 +msgid "For percent enter a ratio between 0-1." +msgstr "" + +#. module: account +#: report:account.invoice:0 +#: view:account.invoice:0 +#: field:account.invoice,date_invoice:0 +#: field:report.invoice.created,date_invoice:0 +msgid "Invoice Date" +msgstr "" + +#. module: account +#: view:account.invoice.report:0 +msgid "Group by year of Invoice Date" +msgstr "" + +#. module: account +#: help:res.partner,credit:0 +msgid "Total amount this customer owes you." +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_ir_sequence +msgid "ir.sequence" +msgstr "" + +#. module: account +#: field:account.journal.period,icon:0 +msgid "Icon" +msgstr "" + +#. module: account +#: view:account.automatic.reconcile:0 +#: view:account.use.model:0 +msgid "Ok" +msgstr "" + +#. module: account +#: field:account.chart.template,tax_code_root_id:0 +msgid "Root Tax Code" +msgstr "" + +#. module: account +#: help:account.journal,centralisation:0 +msgid "" +"Check this box to determine that each entry of this journal won't create a " +"new counterpart but will share the same counterpart. This is used in fiscal " +"year closing." +msgstr "" + +#. module: account +#: field:account.bank.statement,closing_date:0 +msgid "Closed On" +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_account_bank_statement_line +msgid "Bank Statement Line" +msgstr "" + +#. module: account +#: field:account.automatic.reconcile,date2:0 +msgid "Ending Date" +msgstr "" + +#. module: account +#: field:wizard.multi.charts.accounts,purchase_tax:0 +msgid "Default Purchase Tax" +msgstr "" + +#. module: account +#: field:account.chart.template,property_account_income_opening:0 +msgid "Opening Entries Income Account" +msgstr "" + +#. module: account +#: view:account.bank.statement:0 +msgid "Confirm" +msgstr "" + +#. module: account +#: help:account.tax,domain:0 +#: help:account.tax.template,domain:0 +msgid "" +"This field is only used if you develop your own module allowing developers " +"to create specific taxes in a custom domain." +msgstr "" + +#. module: account +#: code:addons/account/account.py:1088 +#, python-format +msgid "You should have chosen periods that belongs to the same company" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,name:account.action_review_payment_terms_installer +msgid "Review your Payment Terms" +msgstr "" + +#. module: account +#: field:account.fiscalyear.close,report_name:0 +msgid "Name of new entries" +msgstr "" + +#. module: account +#: view:account.use.model:0 +msgid "Create Entries" +msgstr "" + +#. module: account +#: view:res.partner:0 +msgid "Information About the Bank" +msgstr "" + +#. module: account +#: model:ir.ui.menu,name:account.menu_finance_reporting +msgid "Reporting" +msgstr "" + +#. module: account +#: code:addons/account/account_move_line.py:759 +#: code:addons/account/account_move_line.py:842 +#: code:addons/account/wizard/account_invoice_state.py:44 +#: code:addons/account/wizard/account_invoice_state.py:68 +#: code:addons/account/wizard/account_state_open.py:37 +#: code:addons/account/wizard/account_validate_account_move.py:39 +#: code:addons/account/wizard/account_validate_account_move.py:61 +#, python-format +msgid "Warning" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,name:account.action_analytic_open +msgid "Contracts/Analytic Accounts" +msgstr "" + +#. module: account +#: field:account.bank.statement,ending_details_ids:0 +msgid "Closing Cashbox" +msgstr "" + +#. module: account +#: view:account.journal:0 +#: field:res.partner.bank,journal_id:0 +msgid "Account Journal" +msgstr "" + +#. module: account +#: model:process.node,name:account.process_node_paidinvoice0 +#: model:process.node,name:account.process_node_supplierpaidinvoice0 +msgid "Paid invoice" +msgstr "" + +#. module: account +#: help:account.partner.reconcile.process,next_partner_id:0 +msgid "" +"This field shows you the next partner that will be automatically chosen by " +"the system to go through the reconciliation process, based on the latest day " +"it have been reconciled." +msgstr "" + +#. module: account +#: field:account.move.line.reconcile.writeoff,comment:0 +msgid "Comment" +msgstr "" + +#. module: account +#: field:account.tax,domain:0 +#: field:account.tax.template,domain:0 +msgid "Domain" +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_account_use_model +msgid "Use model" +msgstr "" + +#. module: account +#: code:addons/account/account.py:429 +#, python-format +msgid "Unable to adapt the initial balance (negative value)!" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,help:account.action_account_moves_purchase +msgid "" +"This view is used by accountants in order to record entries massively in " +"OpenERP. If you want to record a supplier invoice, start by recording the " +"line of the expense account, OpenERP will propose to you automatically the " +"Tax related to this account and the counter-part \"Account Payable\"." +msgstr "" + +#. module: account +#: view:account.invoice.line:0 +#: field:account.invoice.tax,invoice_id:0 +#: model:ir.model,name:account.model_account_invoice_line +msgid "Invoice Line" +msgstr "" + +#. module: account +#: view:account.invoice.report:0 +msgid "Customer And Supplier Refunds" +msgstr "Devoluciones de clientes y proveedores" + +#. module: account +#: field:account.financial.report,sign:0 +msgid "Sign on Reports" +msgstr "" + +#. module: account +#: code:addons/account/wizard/account_fiscalyear_close.py:73 +#, python-format +msgid "The periods to generate opening entries were not found" +msgstr "" + +#. module: account +#: model:account.account.type,name:account.data_account_type_view +msgid "Root/View" +msgstr "" + +#. module: account +#: code:addons/account/account.py:3121 +#, python-format +msgid "OPEJ" +msgstr "" + +#. module: account +#: report:account.invoice:0 +#: view:account.invoice:0 +msgid "PRO-FORMA" +msgstr "" + +#. module: account +#: selection:account.entries.report,move_line_state:0 +#: view:account.move.line:0 +#: selection:account.move.line,state:0 +msgid "Unbalanced" +msgstr "" + +#. module: account +#: selection:account.move.line,centralisation:0 +msgid "Normal" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,name:account.action_email_templates +#: model:ir.ui.menu,name:account.menu_email_templates +msgid "Email Templates" +msgstr "" + +#. module: account +#: view:account.move.line:0 +msgid "Optional Information" +msgstr "" + +#. module: account +#: code:addons/account/wizard/account_fiscalyear_close.py:84 +#, python-format +msgid "The journal must have default credit and debit account" +msgstr "" + +#. module: account +#: report:account.general.journal:0 +msgid ":" +msgstr "" + +#. module: account +#: selection:account.account,currency_mode:0 +msgid "At Date" +msgstr "" + +#. module: account +#: help:account.move.line,date_maturity:0 +msgid "" +"This field is used for payable and receivable journal entries. You can put " +"the limit date for the payment of this line." +msgstr "" + +#. module: account +#: model:ir.ui.menu,name:account.menu_multi_currency +msgid "Multi-Currencies" +msgstr "" + +#. module: account +#: field:account.model.line,date_maturity:0 +msgid "Maturity Date" +msgstr "" + +#. module: account +#: code:addons/account/account_move_line.py:1302 +#, python-format +msgid "Bad account !" +msgstr "" + +#. module: account +#: code:addons/account/account.py:3108 +#, python-format +msgid "Sales Journal" +msgstr "" + +#. module: account +#: code:addons/account/wizard/account_move_journal.py:104 +#, python-format +msgid "Open Journal Items !" +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_account_invoice_tax +msgid "Invoice Tax" +msgstr "" + +#. module: account +#: code:addons/account/account_move_line.py:1277 +#, python-format +msgid "No piece number !" +msgstr "" + +#. module: account +#: view:account.financial.report:0 +#: model:ir.ui.menu,name:account.menu_account_report_tree_hierarchy +msgid "Account Reports Hierarchy" +msgstr "" + +#. module: account +#: help:account.account.template,chart_template_id:0 +msgid "" +"This optional field allow you to link an account template to a specific " +"chart template that may differ from the one its root parent belongs to. This " +"allow you to define chart templates that extend another and complete it with " +"few new accounts (You don't need to define the whole structure that is " +"common to both several times)." +msgstr "" + +#. module: account +#: view:account.move:0 +msgid "Unposted Journal Entries" +msgstr "" + +#. module: account +#: view:product.product:0 +#: view:product.template:0 +msgid "Sales Properties" +msgstr "" + +#. module: account +#: model:ir.ui.menu,name:account.menu_manual_reconcile +msgid "Manual Reconciliation" +msgstr "" + +#. module: account +#: report:account.overdue:0 +msgid "Total amount due:" +msgstr "" + +#. module: account +#: field:account.analytic.chart,to_date:0 +#: field:project.account.analytic.line,to_date:0 +msgid "To" +msgstr "" + +#. module: account +#: selection:account.move.line,centralisation:0 +#: code:addons/account/account.py:1518 +#, python-format +msgid "Currency Adjustment" +msgstr "" + +#. module: account +#: field:account.fiscalyear.close,fy_id:0 +#: field:account.fiscalyear.close.state,fy_id:0 +msgid "Fiscal Year to close" +msgstr "" + +#. module: account +#: view:account.invoice.cancel:0 +#: model:ir.actions.act_window,name:account.action_account_invoice_cancel +msgid "Cancel Selected Invoices" +msgstr "" + +#. module: account +#: help:account.account.type,report_type:0 +msgid "" +"This field is used to generate legal reports: profit and loss, balance sheet." +msgstr "" + +#. module: account +#: model:ir.actions.act_window,help:account.action_review_payment_terms_installer +msgid "" +"Payment terms define the conditions to pay a customer or supplier invoice in " +"one or several payments. Customers periodic reminders will use the payment " +"terms for each letter. Each customer or supplier can be assigned to one of " +"these payment terms." +msgstr "" + +#. module: account +#: selection:account.entries.report,month:0 +#: selection:account.invoice.report,month:0 +#: selection:analytic.entries.report,month:0 +#: selection:report.account.sales,month:0 +#: selection:report.account_type.sales,month:0 +msgid "May" +msgstr "" + +#. module: account +#: view:account.account:0 +#: view:account.account.template:0 +#: selection:account.aged.trial.balance,result_selection:0 +#: selection:account.common.partner.report,result_selection:0 +#: selection:account.partner.balance,result_selection:0 +#: selection:account.partner.ledger,result_selection:0 +#: code:addons/account/report/account_partner_balance.py:299 +#, python-format +msgid "Payable Accounts" +msgstr "" + +#. module: account +#: code:addons/account/account_invoice.py:732 +#, python-format +msgid "Global taxes defined, but they are not in invoice lines !" +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_account_chart_template +msgid "Templates for Account Chart" +msgstr "" + +#. module: account +#: help:account.model.line,sequence:0 +msgid "" +"The sequence field is used to order the resources from lower sequences to " +"higher ones." +msgstr "" + +#. module: account +#: field:account.tax.code,code:0 +#: field:account.tax.code.template,code:0 +msgid "Case Code" +msgstr "" + +#. module: account +#: view:validate.account.move:0 +msgid "Post Journal Entries of a Journal" +msgstr "" + +#. module: account +#: view:product.product:0 +msgid "Sale Taxes" +msgstr "" + +#. module: account +#: field:account.financial.report,name:0 +msgid "Report Name" +msgstr "" + +#. module: account +#: model:account.account.type,name:account.data_account_type_cash +#: selection:account.analytic.journal,type:0 +#: selection:account.bank.accounts.wizard,account_type:0 +#: selection:account.entries.report,type:0 +#: selection:account.journal,type:0 +#: code:addons/account/account.py:3003 +#, python-format +msgid "Cash" +msgstr "" + +#. module: account +#: field:account.fiscal.position.account,account_dest_id:0 +#: field:account.fiscal.position.account.template,account_dest_id:0 +msgid "Account Destination" +msgstr "" + +#. module: account +#: code:addons/account/account.py:1431 +#: code:addons/account/account.py:1460 +#: code:addons/account/account.py:1467 +#: code:addons/account/account_invoice.py:920 +#: code:addons/account/account_move_line.py:1104 +#: code:addons/account/wizard/account_automatic_reconcile.py:152 +#: code:addons/account/wizard/account_fiscalyear_close.py:73 +#: code:addons/account/wizard/account_fiscalyear_close.py:83 +#: code:addons/account/wizard/account_fiscalyear_close.py:86 +#: code:addons/account/wizard/account_move_journal.py:165 +#: code:addons/account/wizard/account_report_aged_partner_balance.py:56 +#: code:addons/account/wizard/account_report_aged_partner_balance.py:58 +#, python-format +msgid "UserError" +msgstr "" + +#. module: account +#: model:process.node,note:account.process_node_supplierpaymentorder0 +msgid "Payment of invoices" +msgstr "" + +#. module: account +#: field:account.bank.statement.line,sequence:0 +#: field:account.financial.report,sequence:0 +#: field:account.invoice.tax,sequence:0 +#: view:account.journal:0 +#: field:account.journal.column,sequence:0 +#: field:account.model.line,sequence:0 +#: field:account.payment.term.line,sequence:0 +#: field:account.sequence.fiscalyear,sequence_id:0 +#: field:account.tax,sequence:0 +#: field:account.tax.code,sequence:0 +#: field:account.tax.template,sequence:0 +msgid "Sequence" +msgstr "" + +#. module: account +#: constraint:product.category:0 +msgid "Error ! You cannot create recursive categories." +msgstr "" + +#. module: account +#: help:account.model.line,quantity:0 +msgid "The optional quantity on entries." +msgstr "" + +#. module: account +#: view:account.financial.report:0 +msgid "Parent Report" +msgstr "" + +#. module: account +#: view:account.state.open:0 +msgid "Yes" +msgstr "" + +#. module: account +#: view:report.account_type.sales:0 +msgid "Sales by Account type" +msgstr "" + +#. module: account +#: help:account.invoice,move_id:0 +msgid "Link to the automatically generated Journal Items." +msgstr "" + +#. module: account +#: selection:account.installer,period:0 +msgid "Monthly" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,help:account.action_account_journal_view +msgid "" +"Here you can customize an existing journal view or create a new view. " +"Journal views determine the way you can record entries in your journal. " +"Select the fields you want to appear in a journal and determine the sequence " +"in which they will appear. Then you can create a new journal and link your " +"view to it." +msgstr "" + +#. module: account +#: model:account.account.type,name:account.data_account_type_asset +msgid "Asset" +msgstr "" + +#. module: account +#: view:analytic.entries.report:0 +msgid " 7 Days " +msgstr "" + +#. module: account +#: field:account.bank.statement,balance_end:0 +msgid "Computed Balance" +msgstr "" + +#. module: account +#: field:account.account,parent_id:0 +#: field:account.financial.report,parent_id:0 +msgid "Parent" +msgstr "" + +#. module: account +#: help:account.payment.term.line,days2:0 +msgid "" +"Day of the month, set -1 for the last day of the current month. If it's " +"positive, it gives the day of the next month. Set 0 for net days (otherwise " +"it's based on the beginning of the month)." +msgstr "" + +#. module: account +#: model:ir.ui.menu,name:account.menu_finance_legal_statement +msgid "Legal Reports" +msgstr "" + +#. module: account +#: field:account.tax.code,sum_period:0 +msgid "Period Sum" +msgstr "" + +#. module: account +#: help:account.tax,sequence:0 +msgid "" +"The sequence field is used to order the tax lines from the lowest sequences " +"to the higher ones. The order is important if you have a tax with several " +"tax children. In this case, the evaluation order is important." +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_account_cashbox_line +msgid "CashBox Line" +msgstr "" + +#. module: account +#: view:account.partner.ledger:0 +#: report:account.third_party_ledger:0 +#: report:account.third_party_ledger_other:0 +#: model:ir.actions.report.xml,name:account.account_3rdparty_ledger +#: model:ir.actions.report.xml,name:account.account_3rdparty_ledger_other +#: model:ir.ui.menu,name:account.menu_account_partner_ledger +msgid "Partner Ledger" +msgstr "" + +#. module: account +#: selection:account.tax.template,type:0 +msgid "Fixed" +msgstr "" + +#. module: account +#: code:addons/account/account.py:629 +#: code:addons/account/account.py:642 +#: code:addons/account/account.py:645 +#: code:addons/account/account.py:664 +#: code:addons/account/account.py:787 +#: code:addons/account/account.py:1077 +#: code:addons/account/account_invoice.py:732 +#: code:addons/account/account_invoice.py:735 +#: code:addons/account/account_invoice.py:738 +#: code:addons/account/account_move_line.py:97 +#: code:addons/account/account_move_line.py:750 +#: code:addons/account/account_move_line.py:803 +#, python-format +msgid "Warning !" +msgstr "" + +#. module: account +#: field:account.entries.report,move_line_state:0 +msgid "State of Move Line" +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_account_move_line_reconcile +msgid "Account move line reconcile" +msgstr "" + +#. module: account +#: view:account.subscription.generate:0 +#: model:ir.model,name:account.model_account_subscription_generate +msgid "Subscription Compute" +msgstr "" + +#. module: account +#: field:account.bank.statement.line,partner_id:0 +#: view:account.entries.report:0 +#: field:account.entries.report,partner_id:0 +#: report:account.general.ledger:0 +#: report:account.general.ledger_landscape:0 +#: view:account.invoice:0 +#: field:account.invoice,partner_id:0 +#: field:account.invoice.line,partner_id:0 +#: view:account.invoice.report:0 +#: field:account.invoice.report,partner_id:0 +#: report:account.journal.period.print:0 +#: report:account.journal.period.print.sale.purchase:0 +#: field:account.model.line,partner_id:0 +#: view:account.move:0 +#: field:account.move,partner_id:0 +#: view:account.move.line:0 +#: field:account.move.line,partner_id:0 +#: view:analytic.entries.report:0 +#: field:analytic.entries.report,partner_id:0 +#: model:ir.model,name:account.model_res_partner +#: field:report.invoice.created,partner_id:0 +msgid "Partner" +msgstr "" + +#. module: account +#: help:account.change.currency,currency_id:0 +msgid "Select a currency to apply on the invoice" +msgstr "" + +#. module: account +#: code:addons/account/account.py:3446 +#, python-format +msgid "" +"The bank account defined on the selected chart of accounts hasn't a code." +msgstr "" + +#. module: account +#: code:addons/account/wizard/account_invoice_refund.py:108 +#, python-format +msgid "Can not %s draft/proforma/cancel invoice." +msgstr "" + +#. module: account +#: code:addons/account/account_invoice.py:810 +#, python-format +msgid "No Invoice Lines !" +msgstr "" + +#. module: account +#: view:account.financial.report:0 +msgid "Report Type" +msgstr "" + +#. module: account +#: view:account.analytic.account:0 +#: view:account.bank.statement:0 +#: field:account.bank.statement,state:0 +#: field:account.entries.report,move_state:0 +#: view:account.fiscalyear:0 +#: field:account.fiscalyear,state:0 +#: view:account.invoice:0 +#: field:account.invoice,state:0 +#: view:account.invoice.report:0 +#: field:account.journal.period,state:0 +#: field:account.move,state:0 +#: view:account.move.line:0 +#: field:account.move.line,state:0 +#: field:account.period,state:0 +#: view:account.subscription:0 +#: field:account.subscription,state:0 +#: field:report.invoice.created,state:0 +msgid "State" +msgstr "" + +#. module: account +#: help:account.open.closed.fiscalyear,fyear_id:0 +msgid "" +"Select Fiscal Year which you want to remove entries for its End of year " +"entries journal" +msgstr "" + +#. module: account +#: field:account.tax.template,type_tax_use:0 +msgid "Tax Use In" +msgstr "" + +#. module: account +#: code:addons/account/account_bank_statement.py:315 +#, python-format +msgid "" +"The statement balance is incorrect !\n" +"The expected balance (%.2f) is different than the computed one. (%.2f)" +msgstr "" + +#. module: account +#: code:addons/account/account_bank_statement.py:353 +#, python-format +msgid "The account entries lines are not in valid state." +msgstr "" + +#. module: account +#: model:ir.actions.act_window,help:account.action_account_analytic_account_tree2 +msgid "" +"The normal chart of accounts has a structure defined by the legal " +"requirement of the country. The analytic chart of accounts structure should " +"reflect your own business needs in term of costs/revenues reporting. They " +"are usually structured by contracts, projects, products or departements. " +"Most of the OpenERP operations (invoices, timesheets, expenses, etc) " +"generate analytic entries on the related account." +msgstr "" + +#. module: account +#: field:account.account.type,close_method:0 +msgid "Deferral Method" +msgstr "" + +#. module: account +#: code:addons/account/account_invoice.py:379 +#, python-format +msgid "Invoice '%s' is paid." +msgstr "" + +#. module: account +#: model:process.node,note:account.process_node_electronicfile0 +msgid "Automatic entry" +msgstr "" + +#. module: account +#: constraint:account.tax.code.template:0 +msgid "Error ! You can not create recursive Tax Codes." +msgstr "" + +#. module: account +#: help:account.journal,group_invoice_lines:0 +msgid "" +"If this box is checked, the system will try to group the accounting lines " +"when generating them from invoices." +msgstr "" + +#. module: account +#: help:account.account,reconcile:0 +msgid "" +"Check this box if this account allows reconciliation of journal items." +msgstr "" + +#. module: account +#: help:account.period,state:0 +msgid "" +"When monthly periods are created. The state is 'Draft'. At the end of " +"monthly period it is in 'Done' state." +msgstr "" + +#. module: account +#: report:account.analytic.account.inverted.balance:0 +msgid "Inverted Analytic Balance -" +msgstr "" + +#. module: account +#: view:account.move.bank.reconcile:0 +msgid "Open for Bank Reconciliation" +msgstr "" + +#. module: account +#: view:account.analytic.line:0 +#: model:ir.actions.act_window,name:account.action_account_analytic_line_form +msgid "Analytic Entries" +msgstr "" + +#. module: account +#: view:report.account_type.sales:0 +msgid "This Months Sales by type" +msgstr "" + +#. module: account +#: view:account.analytic.account:0 +msgid "Associated Partner" +msgstr "" + +#. module: account +#: code:addons/account/account_invoice.py:1332 +#, python-format +msgid "You must first select a partner !" +msgstr "" + +#. module: account +#: view:account.invoice:0 +#: field:account.invoice,comment:0 +msgid "Additional Information" +msgstr "" + +#. module: account +#: help:account.invoice,state:0 +msgid "" +" * The 'Draft' state is used when a user is encoding a new and unconfirmed " +"Invoice. \n" +"* The 'Pro-forma' when invoice is in Pro-forma state,invoice does not have " +"an invoice number. \n" +"* The 'Open' state is used when user create invoice,a invoice number is " +"generated.Its in open state till user does not pay invoice. \n" +"* The 'Paid' state is set automatically when the invoice is paid. Its " +"related journal entries may or may not be reconciled. \n" +"* The 'Cancelled' state is used when user cancel invoice." +msgstr "" + +#. module: account +#: view:account.invoice.report:0 +#: field:account.invoice.report,residual:0 +msgid "Total Residual" +msgstr "" + +#. module: account +#: model:process.node,note:account.process_node_invoiceinvoice0 +#: model:process.node,note:account.process_node_supplierinvoiceinvoice0 +msgid "Invoice's state is Open" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,help:account.action_tax_code_tree +msgid "" +"The chart of taxes is used to generate your periodical tax statement. You " +"will see the taxes with codes related to your legal statement according to " +"your country." +msgstr "" + +#. module: account +#: code:addons/account/account_invoice.py:428 +#, python-format +msgid "" +"Can not find a chart of accounts for this company, you should create one." +msgstr "" + +#. module: account +#: view:account.invoice:0 +msgid "Proforma" +msgstr "" + +#. module: account +#: report:account.analytic.account.cost_ledger:0 +msgid "J.C. /Move name" +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_account_open_closed_fiscalyear +msgid "Choose Fiscal Year" +msgstr "" + +#. module: account +#: code:addons/account/account.py:3111 +#, python-format +msgid "Purchase Refund Journal" +msgstr "Diario de reembolso de compras" + +#. module: account +#: help:account.tax.template,amount:0 +msgid "For Tax Type percent enter % ratio between 0-1." +msgstr "" + +#. module: account +#: view:account.analytic.account:0 +msgid "Current Accounts" +msgstr "" + +#. module: account +#: view:account.invoice.report:0 +msgid "Group by Invoice Date" +msgstr "" + +#. module: account +#: view:account.invoice.refund:0 +msgid "" +"Modify Invoice: Cancels the current invoice and creates a new copy of it " +"ready for editing." +msgstr "" + +#. module: account +#: field:account.automatic.reconcile,period_id:0 +#: view:account.bank.statement:0 +#: field:account.bank.statement,period_id:0 +#: view:account.entries.report:0 +#: field:account.entries.report,period_id:0 +#: view:account.fiscalyear:0 +#: report:account.general.ledger_landscape:0 +#: view:account.invoice:0 +#: view:account.invoice.report:0 +#: field:account.journal.period,period_id:0 +#: report:account.journal.period.print:0 +#: report:account.journal.period.print.sale.purchase:0 +#: view:account.move:0 +#: field:account.move,period_id:0 +#: view:account.move.line:0 +#: field:account.move.line,period_id:0 +#: view:account.period:0 +#: field:account.subscription,period_nbr:0 +#: field:account.tax.chart,period_id:0 +#: field:account.treasury.report,period_id:0 +#: field:validate.account.move,period_id:0 +msgid "Period" +msgstr "" + +#. module: account +#: help:account.account,adjusted_balance:0 +msgid "" +"Total amount (in Company currency) for transactions held in secondary " +"currency for this account." +msgstr "" + +#. module: account +#: report:account.invoice:0 +msgid "Net Total:" +msgstr "" + +#. module: account +#: model:ir.ui.menu,name:account.menu_finance_generic_reporting +msgid "Generic Reporting" +msgstr "" + +#. module: account +#: field:account.move.line.reconcile.writeoff,journal_id:0 +msgid "Write-Off Journal" +msgstr "" + +#. module: account +#: help:res.partner,property_payment_term:0 +msgid "" +"This payment term will be used instead of the default one for the current " +"partner" +msgstr "" + +#. module: account +#: view:account.tax.template:0 +msgid "Compute Code for Taxes Included Prices" +msgstr "" + +#. module: account +#: code:addons/account/account_invoice.py:1030 +#, python-format +msgid "" +"You can not cancel an invoice which is partially paid! You need to " +"unreconcile related payment entries first!" +msgstr "" + +#. module: account +#: field:account.chart.template,property_account_income_categ:0 +msgid "Income Category Account" +msgstr "" + +#. module: account +#: field:account.account,adjusted_balance:0 +msgid "Adjusted Balance" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,name:account.action_account_fiscal_position_template_form +#: model:ir.ui.menu,name:account.menu_action_account_fiscal_position_form_template +msgid "Fiscal Position Templates" +msgstr "" + +#. module: account +#: view:account.entries.report:0 +msgid "Int.Type" +msgstr "" + +#. module: account +#: field:account.move.line,tax_amount:0 +msgid "Tax/Base Amount" +msgstr "" + +#. module: account +#: view:account.payment.term.line:0 +msgid " Valuation: Percent" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,help:account.action_invoice_tree3 +msgid "" +"With Customer Refunds you can manage the credit notes for your customers. A " +"refund is a document that credits an invoice completely or partially. You " +"can easily generate refunds and reconcile them directly from the invoice " +"form." +msgstr "" +"Con las Notas de crédito a clientes puede gestionar las devoluciones de sus " +"clientes. Una Nota de Crédito es un documento que reembolsa una factura " +"completa o parcialmente. Puede generar fácilmente Notas de Crédito y " +"conciliarlas directamente desde el formulario de factura." + +#. module: account +#: model:ir.actions.act_window,help:account.action_account_vat_declaration +msgid "" +"This menu print a VAT declaration based on invoices or payments. You can " +"select one or several periods of the fiscal year. Information required for a " +"tax declaration is automatically generated by OpenERP from invoices (or " +"payments, in some countries). This data is updated in real time. That’s very " +"useful because it enables you to preview at any time the tax that you owe at " +"the start and end of the month or quarter." +msgstr "" + +#. module: account +#: report:account.invoice:0 +msgid "Tel. :" +msgstr "" + +#. module: account +#: field:account.account,company_currency_id:0 +msgid "Company Currency" +msgstr "" + +#. module: account +#: field:account.aged.trial.balance,chart_account_id:0 +#: field:account.balance.report,chart_account_id:0 +#: field:account.central.journal,chart_account_id:0 +#: field:account.common.account.report,chart_account_id:0 +#: field:account.common.journal.report,chart_account_id:0 +#: field:account.common.partner.report,chart_account_id:0 +#: field:account.common.report,chart_account_id:0 +#: field:account.general.journal,chart_account_id:0 +#: field:account.partner.balance,chart_account_id:0 +#: field:account.partner.ledger,chart_account_id:0 +#: field:account.print.journal,chart_account_id:0 +#: field:account.report.general.ledger,chart_account_id:0 +#: field:account.vat.declaration,chart_account_id:0 +#: field:accounting.report,chart_account_id:0 +msgid "Chart of Account" +msgstr "" + +#. module: account +#: model:process.node,name:account.process_node_paymententries0 +#: model:process.transition,name:account.process_transition_reconcilepaid0 +msgid "Payment" +msgstr "" + +#. module: account +#: field:account.bank.statement,balance_end_real:0 +#: field:account.treasury.report,ending_balance:0 +msgid "Ending Balance" +msgstr "" + +#. module: account +#: help:account.move.line,blocked:0 +msgid "" +"You can check this box to mark this journal item as a litigation with the " +"associated partner" +msgstr "" + +#. module: account +#: field:account.move.line,reconcile_partial_id:0 +#: view:account.move.line.reconcile:0 +msgid "Partial Reconcile" +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_account_analytic_inverted_balance +msgid "Account Analytic Inverted Balance" +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_account_common_report +msgid "Account Common Report" +msgstr "" + +#. module: account +#: view:account.invoice.report:0 +#: view:analytic.entries.report:0 +msgid "current month" +msgstr "" + +#. module: account +#: code:addons/account/account.py:1052 +#, python-format +msgid "" +"No period defined for this date: %s !\n" +"Please create one." +msgstr "" + +#. module: account +#: model:process.transition,name:account.process_transition_filestatement0 +msgid "Automatic import of the bank sta" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,name:account.action_account_journal_view +#: model:ir.ui.menu,name:account.menu_action_account_journal_view +msgid "Journal Views" +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_account_move_bank_reconcile +msgid "Move bank reconcile" +msgstr "" + +#. module: account +#: field:account.financial.report,account_type_ids:0 +#: model:ir.actions.act_window,name:account.action_account_type_form +#: model:ir.ui.menu,name:account.menu_action_account_type_form +msgid "Account Types" +msgstr "" + +#. module: account +#: view:account.payment.term.line:0 +msgid " Value amount: n.a" +msgstr "" + +#. module: account +#: view:account.automatic.reconcile:0 +#: view:account.move:0 +#: view:account.move.line:0 +#: view:account.move.line.reconcile:0 +#: view:account.move.line.reconcile.select:0 +#: code:addons/account/wizard/account_move_line_reconcile_select.py:45 +#: model:ir.ui.menu,name:account.periodical_processing_reconciliation +#: model:process.node,name:account.process_node_reconciliation0 +#: model:process.node,name:account.process_node_supplierreconciliation0 +#, python-format +msgid "Reconciliation" +msgstr "" + +#. module: account +#: view:account.chart.template:0 +#: field:account.chart.template,property_account_receivable:0 +msgid "Receivable Account" +msgstr "" + +#. module: account +#: view:account.invoice:0 +msgid "" +"This button only appears when the state of the invoice is 'paid' (showing " +"that it has been fully reconciled) and auto-computed boolean 'reconciled' is " +"False (depicting that it's not the case anymore). In other words, the " +"invoice has been dereconciled and it does not fit anymore the 'paid' state. " +"You should press this button to re-open it and let it continue its normal " +"process after having resolved the eventual exceptions it may have created." +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_account_fiscalyear_close_state +msgid "Fiscalyear Close state" +msgstr "" + +#. module: account +#: field:account.invoice.refund,journal_id:0 +msgid "Refund Journal" +msgstr "Diario reembolso" + +#. module: account +#: report:account.account.balance:0 +#: report:account.central.journal:0 +#: report:account.general.journal:0 +#: report:account.general.ledger:0 +#: report:account.general.ledger_landscape:0 +#: report:account.partner.balance:0 +msgid "Filter By" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,help:account.action_invoice_tree1 +msgid "" +"With Customer Invoices you can create and manage sales invoices issued to " +"your customers. OpenERP can also generate draft invoices automatically from " +"sales orders or deliveries. You should only confirm them before sending them " +"to your customers." +msgstr "" + +#. module: account +#: code:addons/account/wizard/account_period_close.py:51 +#, python-format +msgid "" +"In order to close a period, you must first post related journal entries." +msgstr "" + +#. module: account +#: view:account.entries.report:0 +#: view:board.board:0 +#: model:ir.actions.act_window,name:account.action_company_analysis_tree +msgid "Company Analysis" +msgstr "" + +#. module: account +#: help:account.invoice,account_id:0 +msgid "The partner account used for this invoice." +msgstr "" + +#. module: account +#: code:addons/account/account.py:3296 +#, python-format +msgid "Tax %.2f%%" +msgstr "" + +#. module: account +#: view:account.analytic.account:0 +msgid "Contacts" +msgstr "" + +#. module: account +#: field:account.tax.code,parent_id:0 +#: view:account.tax.code.template:0 +#: field:account.tax.code.template,parent_id:0 +msgid "Parent Code" +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_account_payment_term_line +msgid "Payment Term Line" +msgstr "" + +#. module: account +#: code:addons/account/account.py:3109 +#, python-format +msgid "Purchase Journal" +msgstr "" + +#. module: account +#: view:account.invoice.refund:0 +msgid "Refund Invoice: Creates the refund invoice, ready for editing." +msgstr "" +"NotadeCrédito: Crea la factura de reembolso, preparada para editarla." + +#. module: account +#: field:account.invoice.line,price_subtotal:0 +msgid "Subtotal" +msgstr "" + +#. module: account +#: view:account.vat.declaration:0 +msgid "Print Tax Statement" +msgstr "" + +#. module: account +#: view:account.model.line:0 +msgid "Journal Entry Model Line" +msgstr "" + +#. module: account +#: view:account.invoice:0 +#: field:account.invoice,date_due:0 +#: view:account.invoice.report:0 +#: field:account.invoice.report,date_due:0 +#: field:report.invoice.created,date_due:0 +msgid "Due Date" +msgstr "" + +#. module: account +#: model:ir.ui.menu,name:account.menu_account_supplier +#: model:ir.ui.menu,name:account.menu_finance_payables +msgid "Suppliers" +msgstr "" + +#. module: account +#: view:account.journal:0 +msgid "Accounts Type Allowed (empty for no control)" +msgstr "" + +#. module: account +#: view:res.partner:0 +msgid "Supplier Accounting Properties" +msgstr "" + +#. module: account +#: help:account.move.line,amount_residual:0 +msgid "" +"The residual amount on a receivable or payable of a journal entry expressed " +"in the company currency." +msgstr "" + +#. module: account +#: view:account.tax.code:0 +msgid "Statistics" +msgstr "" + +#. module: account +#: field:account.analytic.chart,from_date:0 +#: field:project.account.analytic.line,from_date:0 +msgid "From" +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_account_fiscalyear_close +msgid "Fiscalyear Close" +msgstr "" + +#. module: account +#: sql_constraint:account.account:0 +msgid "The code of the account must be unique per company !" +msgstr "" + +#. module: account +#: view:account.invoice:0 +#: model:ir.actions.act_window,name:account.act_account_journal_2_account_invoice_opened +msgid "Unpaid Invoices" +msgstr "" + +#. module: account +#: code:addons/account/account_invoice.py:495 +#, python-format +msgid "The payment term of supplier does not have a payment term line!" +msgstr "" + +#. module: account +#: field:account.move.line.reconcile,debit:0 +msgid "Debit amount" +msgstr "" + +#. module: account +#: view:board.board:0 +#: model:ir.actions.act_window,name:account.action_treasory_graph +msgid "Treasury" +msgstr "" + +#. module: account +#: view:account.aged.trial.balance:0 +#: view:account.analytic.balance:0 +#: view:account.analytic.cost.ledger:0 +#: view:account.analytic.cost.ledger.journal.report:0 +#: view:account.analytic.inverted.balance:0 +#: view:account.analytic.journal.report:0 +#: view:account.common.report:0 +msgid "Print" +msgstr "" + +#. module: account +#: view:account.journal:0 +msgid "Accounts Allowed (empty for no control)" +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_account_fiscal_position_account_template +msgid "Template Account Fiscal Mapping" +msgstr "" + +#. module: account +#: view:board.board:0 +msgid "Draft Customer Invoices" +msgstr "" + +#. module: account +#: model:ir.ui.menu,name:account.menu_configuration_misc +msgid "Miscellaneous" +msgstr "" + +#. module: account +#: help:res.partner,debit:0 +msgid "Total amount you have to pay to this supplier." +msgstr "" + +#. module: account +#: model:process.node,name:account.process_node_analytic0 +#: model:process.node,name:account.process_node_analyticcost0 +msgid "Analytic Costs" +msgstr "" + +#. module: account +#: field:account.analytic.journal,name:0 +#: report:account.general.journal:0 +#: field:account.journal,name:0 +msgid "Journal Name" +msgstr "" + +#. module: account +#: view:account.move.line:0 +msgid "Next Partner Entries to reconcile" +msgstr "" + +#. module: account +#: selection:account.financial.report,style_overwrite:0 +msgid "Smallest Text" +msgstr "" + +#. module: account +#: model:res.groups,name:account.group_account_invoice +msgid "Invoicing & Payments" +msgstr "" + +#. module: account +#: help:account.invoice,internal_number:0 +msgid "" +"Unique number of the invoice, computed automatically when the invoice is " +"created." +msgstr "" + +#. module: account +#: constraint:account.bank.statement.line:0 +msgid "" +"The amount of the voucher must be the same amount as the one on the " +"statement line" +msgstr "" + +#. module: account +#: model:account.account.type,name:account.data_account_type_expense +#: model:account.financial.report,name:account.account_financial_report_expense0 +msgid "Expense" +msgstr "" + +#. module: account +#: help:account.chart,fiscalyear:0 +msgid "Keep empty for all open fiscal years" +msgstr "" + +#. module: account +#: code:addons/account/account_move_line.py:1105 +#, python-format +msgid "The account move (%s) for centralisation has been confirmed!" +msgstr "" + +#. module: account +#: help:account.move.line,amount_currency:0 +msgid "" +"The amount expressed in an optional other currency if it is a multi-currency " +"entry." +msgstr "" + +#. module: account +#: code:addons/account/account.py:1307 +#, python-format +msgid "" +"You can not validate a non-balanced entry !\n" +"Make sure you have configured payment terms properly !\n" +"The latest payment term line should be of the type \"Balance\" !" +msgstr "" + +#. module: account +#: view:account.account:0 +#: report:account.analytic.account.journal:0 +#: field:account.bank.statement,currency:0 +#: report:account.central.journal:0 +#: view:account.entries.report:0 +#: field:account.entries.report,currency_id:0 +#: report:account.general.journal:0 +#: report:account.general.ledger:0 +#: report:account.general.ledger_landscape:0 +#: field:account.invoice,currency_id:0 +#: field:account.invoice.report,currency_id:0 +#: field:account.journal,currency:0 +#: report:account.journal.period.print:0 +#: report:account.journal.period.print.sale.purchase:0 +#: field:account.model.line,currency_id:0 +#: view:account.move:0 +#: view:account.move.line:0 +#: field:account.move.line,currency_id:0 +#: report:account.third_party_ledger:0 +#: report:account.third_party_ledger_other:0 +#: field:analytic.entries.report,currency_id:0 +#: model:ir.model,name:account.model_res_currency +#: field:report.account.sales,currency_id:0 +#: field:report.account_type.sales,currency_id:0 +#: field:report.invoice.created,currency_id:0 +#: field:res.partner.bank,currency_id:0 +msgid "Currency" +msgstr "" + +#. module: account +#: help:account.bank.statement.line,sequence:0 +msgid "" +"Gives the sequence order when displaying a list of bank statement lines." +msgstr "" + +#. module: account +#: model:process.transition,note:account.process_transition_validentries0 +msgid "Accountant validates the accounting entries coming from the invoice." +msgstr "" + +#. module: account +#: model:ir.actions.act_window,help:account.action_account_fiscalyear_form +msgid "" +"Define your company's financial year according to your needs. A financial " +"year is a period at the end of which a company's accounts are made up " +"(usually 12 months). The financial year is usually referred to by the date " +"in which it ends. For example, if a company's financial year ends November " +"30, 2011, then everything between December 1, 2010 and November 30, 2011 " +"would be referred to as FY 2011. You are not obliged to follow the actual " +"calendar year." +msgstr "" + +#. module: account +#: view:account.entries.report:0 +#: model:ir.actions.act_window,name:account.act_account_acount_move_line_reconcile_open +msgid "Reconciled entries" +msgstr "" + +#. module: account +#: field:account.invoice,address_contact_id:0 +msgid "Contact Address" +msgstr "" + +#. module: account +#: code:addons/account/account.py:2256 +#, python-format +msgid "Wrong model !" +msgstr "" + +#. module: account +#: field:account.invoice.refund,period:0 +msgid "Force period" +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_account_partner_balance +msgid "Print Account Partner Balance" +msgstr "" + +#. module: account +#: help:account.financial.report,sign:0 +msgid "" +"For accounts that are typically more debited than credited and that you " +"would like to print as negative amounts in your reports, you should reverse " +"the sign of the balance; e.g.: Expense account. The same applies for " +"accounts that are typically more credited than debited and that you would " +"like to print as positive amounts in your reports; e.g.: Income account." +msgstr "" + +#. module: account +#: field:res.partner,contract_ids:0 +msgid "Contracts" +msgstr "" + +#. module: account +#: field:account.cashbox.line,ending_id:0 +#: field:account.cashbox.line,starting_id:0 +#: field:account.entries.report,reconcile_id:0 +#: field:account.financial.report,balance:0 +msgid "unknown" +msgstr "" + +#. module: account +#: field:account.fiscalyear.close,journal_id:0 +#: code:addons/account/account.py:3113 +#, python-format +msgid "Opening Entries Journal" +msgstr "" + +#. module: account +#: model:process.transition,note:account.process_transition_customerinvoice0 +msgid "Draft invoices are checked, validated and printed." +msgstr "" + +#. module: account +#: help:account.chart.template,property_reserve_and_surplus_account:0 +msgid "" +"This Account is used for transferring Profit/Loss(If It is Profit: Amount " +"will be added, Loss: Amount will be deducted.), Which is calculated from " +"Profilt & Loss Report" +msgstr "" + +#. module: account +#: code:addons/account/account_invoice.py:808 +#, python-format +msgid "Please define sequence on the journal related to this invoice." +msgstr "" + +#. module: account +#: view:account.move:0 +#: field:account.move,narration:0 +#: view:account.move.line:0 +#: field:account.move.line,narration:0 +msgid "Internal Note" +msgstr "" + +#. module: account +#: view:report.account.sales:0 +msgid "This year's Sales by type" +msgstr "" + +#. module: account +#: view:account.analytic.cost.ledger.journal.report:0 +msgid "Cost Ledger for Period" +msgstr "" + +#. module: account +#: help:account.tax,child_depend:0 +#: help:account.tax.template,child_depend:0 +msgid "" +"Set if the tax computation is based on the computation of child taxes rather " +"than on the total amount." +msgstr "" + +#. module: account +#: selection:account.tax,applicable_type:0 +msgid "Given by Python Code" +msgstr "" + +#. module: account +#: field:account.analytic.journal,code:0 +msgid "Journal Code" +msgstr "" + +#. module: account +#: help:account.tax.code,sign:0 +msgid "" +"You can specify here the coefficient that will be used when consolidating " +"the amount of this case into its parent. For example, set 1/-1 if you want " +"to add/substract it." +msgstr "" + +#. module: account +#: view:account.invoice:0 +#: field:account.move.line,amount_residual:0 +#: field:account.move.line,amount_residual_currency:0 +msgid "Residual Amount" +msgstr "" + +#. module: account +#: field:account.invoice,move_lines:0 +#: field:account.move.reconcile,line_id:0 +msgid "Entry Lines" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,name:account.action_view_financial_accounts_installer +msgid "Review your Financial Accounts" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,name:account.action_open_journal_button +#: model:ir.actions.act_window,name:account.action_validate_account_move +msgid "Open Journal" +msgstr "" + +#. module: account +#: report:account.analytic.account.journal:0 +msgid "KI" +msgstr "" + +#. module: account +#: report:account.analytic.account.cost_ledger:0 +#: report:account.analytic.account.journal:0 +#: report:account.analytic.account.quantity_cost_ledger:0 +msgid "Period from" +msgstr "" + +#. module: account +#: code:addons/account/account.py:3110 +#, python-format +msgid "Sales Refund Journal" +msgstr "Diario de reembolso de ventas" + +#. module: account +#: view:account.move:0 +#: view:account.move.line:0 +#: view:account.payment.term:0 +msgid "Information" +msgstr "" + +#. module: account +#: model:process.node,note:account.process_node_bankstatement0 +msgid "Registered payment" +msgstr "" + +#. module: account +#: view:account.fiscalyear.close.state:0 +msgid "Close states of Fiscal year and periods" +msgstr "" + +#. module: account +#: view:account.analytic.line:0 +msgid "Product Information" +msgstr "" + +#. module: account +#: report:account.analytic.account.journal:0 +#: view:account.move:0 +#: view:account.move.line:0 +#: model:ir.ui.menu,name:account.next_id_40 +msgid "Analytic" +msgstr "" + +#. module: account +#: model:process.node,name:account.process_node_invoiceinvoice0 +#: model:process.node,name:account.process_node_supplierinvoiceinvoice0 +msgid "Create Invoice" +msgstr "" + +#. module: account +#: field:wizard.multi.charts.accounts,purchase_tax_rate:0 +msgid "Purchase Tax(%)" +msgstr "" + +#. module: account +#: code:addons/account/account_invoice.py:810 +#, python-format +msgid "Please create some invoice lines." +msgstr "" + +#. module: account +#: report:account.overdue:0 +msgid "Dear Sir/Madam," +msgstr "" + +#. module: account +#: field:account.vat.declaration,display_detail:0 +msgid "Display Detail" +msgstr "" + +#. module: account +#: code:addons/account/account.py:3118 +#, python-format +msgid "SCNJ" +msgstr "" + +#. module: account +#: model:process.transition,note:account.process_transition_analyticinvoice0 +msgid "" +"Analytic costs (timesheets, some purchased products, ...) come from analytic " +"accounts. These generate draft invoices." +msgstr "" + +#. module: account +#: help:account.journal,view_id:0 +msgid "" +"Gives the view used when writing or browsing entries in this journal. The " +"view tells OpenERP which fields should be visible, required or readonly and " +"in which order. You can create your own view for a faster encoding in each " +"journal." +msgstr "" + +#. module: account +#: field:account.period,date_stop:0 +#: model:ir.ui.menu,name:account.menu_account_end_year_treatments +msgid "End of Period" +msgstr "" + +#. module: account +#: field:account.account,financial_report_ids:0 +#: field:account.account.template,financial_report_ids:0 +#: model:ir.actions.act_window,name:account.action_account_financial_report_tree +#: model:ir.actions.act_window,name:account.action_account_report +#: model:ir.actions.act_window,name:account.action_account_report_bs +#: model:ir.actions.act_window,name:account.action_account_report_pl +#: model:ir.ui.menu,name:account.menu_account_reports +msgid "Financial Reports" +msgstr "" + +#. module: account +#: report:account.account.balance:0 +#: field:account.aged.trial.balance,period_from:0 +#: field:account.balance.report,period_from:0 +#: report:account.central.journal:0 +#: field:account.central.journal,period_from:0 +#: field:account.common.account.report,period_from:0 +#: field:account.common.journal.report,period_from:0 +#: field:account.common.partner.report,period_from:0 +#: field:account.common.report,period_from:0 +#: report:account.general.journal:0 +#: field:account.general.journal,period_from:0 +#: report:account.general.ledger:0 +#: report:account.general.ledger_landscape:0 +#: report:account.partner.balance:0 +#: field:account.partner.balance,period_from:0 +#: field:account.partner.ledger,period_from:0 +#: field:account.print.journal,period_from:0 +#: field:account.report.general.ledger,period_from:0 +#: report:account.third_party_ledger:0 +#: report:account.third_party_ledger_other:0 +#: report:account.vat.declaration:0 +#: field:account.vat.declaration,period_from:0 +#: field:accounting.report,period_from:0 +#: field:accounting.report,period_from_cmp:0 +msgid "Start Period" +msgstr "" + +#. module: account +#: field:account.aged.trial.balance,direction_selection:0 +msgid "Analysis Direction" +msgstr "" + +#. module: account +#: field:res.partner,ref_companies:0 +msgid "Companies that refers to partner" +msgstr "" + +#. module: account +#: view:account.journal:0 +#: field:account.journal.column,view_id:0 +#: view:account.journal.view:0 +#: field:account.journal.view,name:0 +#: model:ir.model,name:account.model_account_journal_view +msgid "Journal View" +msgstr "" + +#. module: account +#: view:account.move.line:0 +#: code:addons/account/account_move_line.py:1046 +#, python-format +msgid "Total credit" +msgstr "" + +#. module: account +#: model:process.transition,note:account.process_transition_suppliervalidentries0 +msgid "Accountant validates the accounting entries coming from the invoice. " +msgstr "" + +#. module: account +#: report:account.overdue:0 +msgid "Best regards." +msgstr "" + +#. module: account +#: view:account.invoice:0 +msgid "Unpaid" +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_account_tax_code_template +msgid "Tax Code Template" +msgstr "" + +#. module: account +#: report:account.overdue:0 +msgid "Document: Customer account statement" +msgstr "" + +#. module: account +#: field:account.account.type,report_type:0 +msgid "P&L / BS Category" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,help:account.action_invoice_tree4 +msgid "" +"With Supplier Refunds you can manage the credit notes you receive from your " +"suppliers. A refund is a document that credits an invoice completely or " +"partially. You can easily generate refunds and reconcile them directly from " +"the invoice form." +msgstr "" +"Con Notas de Crédito de proveedor puede gestionar las facturas de reembolso " +"que recibe de sus proveedores. Una Nota de Créito es un documento que " +"reembolsa una factura total o parcialmente. Puede fácilmente generar Notas " +"de Crédito y conciliarlas directamente desde el formulario de factura." + +#. module: account +#: view:account.account.template:0 +msgid "Receivale Accounts" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,name:account.action_bank_statement_periodic_tree +#: model:ir.actions.act_window,name:account.action_bank_statement_tree +#: model:ir.ui.menu,name:account.menu_bank_statement_tree +msgid "Bank Statements" +msgstr "" + +#. module: account +#: field:account.account,balance:0 +#: report:account.account.balance:0 +#: selection:account.account.type,close_method:0 +#: report:account.analytic.account.balance:0 +#: report:account.analytic.account.cost_ledger:0 +#: report:account.analytic.account.inverted.balance:0 +#: report:account.central.journal:0 +#: field:account.entries.report,balance:0 +#: report:account.general.journal:0 +#: report:account.general.ledger:0 +#: report:account.general.ledger_landscape:0 +#: field:account.invoice,residual:0 +#: field:account.move.line,balance:0 +#: report:account.partner.balance:0 +#: selection:account.payment.term.line,value:0 +#: selection:account.tax,type:0 +#: selection:account.tax.template,type:0 +#: report:account.third_party_ledger:0 +#: report:account.third_party_ledger_other:0 +#: field:account.treasury.report,balance:0 +#: field:report.account.receivable,balance:0 +#: field:report.aged.receivable,balance:0 +msgid "Balance" +msgstr "" + +#. module: account +#: model:process.node,note:account.process_node_supplierbankstatement0 +msgid "Manually or automatically entered in the system" +msgstr "" + +#. module: account +#: report:account.account.balance:0 +#: report:account.general.ledger_landscape:0 +msgid "Display Account" +msgstr "" + +#. module: account +#: view:account.account.type:0 +msgid "Closing Method" +msgstr "" + +#. module: account +#: selection:account.account,type:0 +#: selection:account.account.template,type:0 +#: model:account.account.type,name:account.data_account_type_payable +#: selection:account.entries.report,type:0 +msgid "Payable" +msgstr "" + +#. module: account +#: view:report.account.sales:0 +#: view:report.account_type.sales:0 +#: view:report.hr.timesheet.invoice.journal:0 +msgid "This Year" +msgstr "" + +#. module: account +#: view:board.board:0 +msgid "Account Board" +msgstr "" + +#. module: account +#: view:account.model:0 +#: field:account.model,legend:0 +msgid "Legend" +msgstr "" + +#. module: account +#: view:account.analytic.account:0 +msgid "Contract Data" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,help:account.action_account_moves_sale +msgid "" +"This view is used by accountants in order to record entries massively in " +"OpenERP. If you want to record a customer invoice, select the journal and " +"the period in the search toolbar. Then, start by recording the entry line of " +"the income account. OpenERP will propose to you automatically the Tax " +"related to this account and the counter-part \"Account receivable\"." +msgstr "" + +#. module: account +#: code:addons/account/wizard/account_automatic_reconcile.py:152 +#, python-format +msgid "You must select accounts to reconcile" +msgstr "" + +#. module: account +#: model:process.transition,note:account.process_transition_entriesreconcile0 +msgid "Accounting entries are the first input of the reconciliation." +msgstr "" + +#. module: account +#: model:ir.actions.act_window,help:account.action_account_period_form +msgid "" +"Here you can define a financial period, an interval of time in your " +"company's financial year. An accounting period typically is a month or a " +"quarter. It usually corresponds to the periods of the tax declaration. " +"Create and manage periods from here and decide whether a period should be " +"closed or left open depending on your company's activities over a specific " +"period." +msgstr "" + +#. module: account +#: report:account.third_party_ledger:0 +#: report:account.third_party_ledger_other:0 +msgid "Filters By" +msgstr "" + +#. module: account +#: model:process.node,note:account.process_node_manually0 +#: model:process.transition,name:account.process_transition_invoicemanually0 +msgid "Manual entry" +msgstr "" + +#. module: account +#: report:account.general.ledger:0 +#: report:account.general.ledger_landscape:0 +#: report:account.journal.period.print:0 +#: report:account.journal.period.print.sale.purchase:0 +#: field:account.move.line,move_id:0 +#: field:analytic.entries.report,move_id:0 +msgid "Move" +msgstr "" + +#. module: account +#: code:addons/account/account_move_line.py:1153 +#, python-format +msgid "You can not change the tax, you should remove and recreate lines !" +msgstr "" + +#. module: account +#: view:analytic.entries.report:0 +msgid "Analytic Entries of last 365 days" +msgstr "" + +#. module: account +#: report:account.central.journal:0 +msgid "A/C No." +msgstr "" + +#. module: account +#: model:ir.actions.act_window,name:account.act_account_journal_2_account_bank_statement +msgid "Bank statements" +msgstr "" + +#. module: account +#: help:account.addtmpl.wizard,cparent_id:0 +msgid "" +"Creates an account with the selected template under this existing parent." +msgstr "" + +#. module: account +#: selection:account.model.line,date_maturity:0 +msgid "Date of the day" +msgstr "" + +#. module: account +#: code:addons/account/wizard/account_move_bank_reconcile.py:49 +#, python-format +msgid "" +"You have to define the bank account\n" +"in the journal definition for reconciliation." +msgstr "" + +#. module: account +#: view:account.move.line.reconcile:0 +msgid "Reconciliation Transactions" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,name:account.action_account_common_menu +msgid "Common Report" +msgstr "" + +#. module: account +#: view:account.account:0 +#: field:account.account,child_consol_ids:0 +msgid "Consolidated Children" +msgstr "" + +#. module: account +#: code:addons/account/wizard/account_fiscalyear_close.py:87 +#, python-format +msgid "" +"The journal must have centralised counterpart without the Skipping draft " +"state option checked!" +msgstr "" + +#. module: account +#: view:account.invoice.report:0 +msgid "Customer And Supplier Invoices" +msgstr "" + +#. module: account +#: model:process.node,note:account.process_node_paymententries0 +#: model:process.transition,name:account.process_transition_paymentorderbank0 +#: model:process.transition,name:account.process_transition_paymentreconcile0 +msgid "Payment entries" +msgstr "" + +#. module: account +#: selection:account.entries.report,month:0 +#: selection:account.invoice.report,month:0 +#: selection:analytic.entries.report,month:0 +#: selection:report.account.sales,month:0 +#: selection:report.account_type.sales,month:0 +msgid "July" +msgstr "" + +#. module: account +#: view:account.account:0 +msgid "Chart of accounts" +msgstr "" + +#. module: account +#: field:account.subscription.line,subscription_id:0 +msgid "Subscription" +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_account_analytic_balance +msgid "Account Analytic Balance" +msgstr "" + +#. module: account +#: code:addons/account/account.py:412 +#, python-format +msgid "" +"No opening/closing period defined, please create one to set the initial " +"balance!" +msgstr "" + +#. module: account +#: report:account.account.balance:0 +#: field:account.aged.trial.balance,period_to:0 +#: field:account.balance.report,period_to:0 +#: report:account.central.journal:0 +#: field:account.central.journal,period_to:0 +#: field:account.common.account.report,period_to:0 +#: field:account.common.journal.report,period_to:0 +#: field:account.common.partner.report,period_to:0 +#: field:account.common.report,period_to:0 +#: report:account.general.journal:0 +#: field:account.general.journal,period_to:0 +#: report:account.general.ledger:0 +#: report:account.general.ledger_landscape:0 +#: report:account.partner.balance:0 +#: field:account.partner.balance,period_to:0 +#: field:account.partner.ledger,period_to:0 +#: field:account.print.journal,period_to:0 +#: field:account.report.general.ledger,period_to:0 +#: report:account.third_party_ledger:0 +#: report:account.third_party_ledger_other:0 +#: report:account.vat.declaration:0 +#: field:account.vat.declaration,period_to:0 +#: field:accounting.report,period_to:0 +#: field:accounting.report,period_to_cmp:0 +msgid "End Period" +msgstr "" + +#. module: account +#: field:account.move.line,date_maturity:0 +msgid "Due date" +msgstr "" + +#. module: account +#: view:account.move.journal:0 +msgid "Standard Entries" +msgstr "" + +#. module: account +#: help:account.journal,type:0 +msgid "" +"Select 'Sale' for customer invoices journals. Select 'Purchase' for supplier " +"invoices journals. Select 'Cash' or 'Bank' for journals that are used in " +"customer or supplier payments. Select 'General' for miscellaneous operations " +"journals. Select 'Opening/Closing Situation' for entries generated for new " +"fiscal years." +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_account_subscription +msgid "Account Subscription" +msgstr "" + +#. module: account +#: report:account.overdue:0 +msgid "Maturity date" +msgstr "" + +#. module: account +#: view:account.subscription:0 +msgid "Entry Subscription" +msgstr "" + +#. module: account +#: report:account.account.balance:0 +#: field:account.aged.trial.balance,date_from:0 +#: field:account.balance.report,date_from:0 +#: report:account.central.journal:0 +#: field:account.central.journal,date_from:0 +#: field:account.common.account.report,date_from:0 +#: field:account.common.journal.report,date_from:0 +#: field:account.common.partner.report,date_from:0 +#: field:account.common.report,date_from:0 +#: field:account.fiscalyear,date_start:0 +#: report:account.general.journal:0 +#: field:account.general.journal,date_from:0 +#: report:account.general.ledger:0 +#: report:account.general.ledger_landscape:0 +#: field:account.installer,date_start:0 +#: report:account.partner.balance:0 +#: field:account.partner.balance,date_from:0 +#: field:account.partner.ledger,date_from:0 +#: field:account.print.journal,date_from:0 +#: field:account.report.general.ledger,date_from:0 +#: field:account.subscription,date_start:0 +#: report:account.third_party_ledger:0 +#: report:account.third_party_ledger_other:0 +#: field:account.vat.declaration,date_from:0 +#: field:accounting.report,date_from:0 +#: field:accounting.report,date_from_cmp:0 +msgid "Start Date" +msgstr "" + +#. module: account +#: help:account.invoice,reconciled:0 +msgid "" +"It indicates that the invoice has been paid and the journal entry of the " +"invoice has been reconciled with one or several journal entries of payment." +msgstr "" + +#. module: account +#: view:account.invoice:0 +#: view:account.invoice.report:0 +#: model:process.node,name:account.process_node_supplierdraftinvoices0 +msgid "Draft Invoices" +msgstr "" + +#. module: account +#: selection:account.account.type,close_method:0 +#: view:account.entries.report:0 +#: view:account.move.line:0 +msgid "Unreconciled" +msgstr "" + +#. module: account +#: code:addons/account/account_invoice.py:828 +#, python-format +msgid "Bad total !" +msgstr "" + +#. module: account +#: field:account.journal,sequence_id:0 +msgid "Entry Sequence" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,help:account.action_account_period_tree +msgid "" +"A period is a fiscal period of time during which accounting entries should " +"be recorded for accounting related activities. Monthly period is the norm " +"but depending on your countries or company needs, you could also have " +"quarterly periods. Closing a period will make it impossible to record new " +"accounting entries, all new entries should then be made on the following " +"open period. Close a period when you do not want to record new entries and " +"want to lock this period for tax related calculation." +msgstr "" + +#. module: account +#: view:account.analytic.account:0 +msgid "Pending" +msgstr "" + +#. module: account +#: model:process.transition,name:account.process_transition_analyticinvoice0 +#: model:process.transition,name:account.process_transition_supplieranalyticcost0 +msgid "From analytic accounts" +msgstr "" + +#. module: account +#: field:account.period,name:0 +msgid "Period Name" +msgstr "" + +#. module: account +#: report:account.analytic.account.quantity_cost_ledger:0 +msgid "Code/Date" +msgstr "" + +#. module: account +#: field:account.account,active:0 +#: field:account.analytic.journal,active:0 +#: field:account.fiscal.position,active:0 +#: field:account.journal.period,active:0 +#: field:account.payment.term,active:0 +#: field:account.tax,active:0 +msgid "Active" +msgstr "" + +#. module: account +#: view:accounting.report:0 +msgid "Comparison" +msgstr "" + +#. module: account +#: code:addons/account/account_invoice.py:372 +#, python-format +msgid "Unknown Error" +msgstr "" + +#. module: account +#: help:res.partner,property_account_payable:0 +msgid "" +"This account will be used instead of the default one as the payable account " +"for the current partner" +msgstr "" + +#. module: account +#: field:account.period,special:0 +msgid "Opening/Closing Period" +msgstr "" + +#. module: account +#: field:account.account,currency_id:0 +#: field:account.account.template,currency_id:0 +#: field:account.bank.accounts.wizard,currency_id:0 +msgid "Secondary Currency" +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_validate_account_move +msgid "Validate Account Move" +msgstr "" + +#. module: account +#: field:account.account,credit:0 +#: report:account.account.balance:0 +#: report:account.analytic.account.balance:0 +#: report:account.analytic.account.cost_ledger:0 +#: report:account.analytic.account.inverted.balance:0 +#: report:account.central.journal:0 +#: field:account.entries.report,credit:0 +#: report:account.general.journal:0 +#: report:account.general.ledger:0 +#: report:account.general.ledger_landscape:0 +#: report:account.journal.period.print:0 +#: report:account.journal.period.print.sale.purchase:0 +#: field:account.model.line,credit:0 +#: field:account.move.line,credit:0 +#: report:account.partner.balance:0 +#: report:account.third_party_ledger:0 +#: report:account.third_party_ledger_other:0 +#: field:account.treasury.report,credit:0 +#: report:account.vat.declaration:0 +#: field:report.account.receivable,credit:0 +msgid "Credit" +msgstr "" + +#. module: account +#: help:account.invoice.refund,journal_id:0 +msgid "" +"You can select here the journal to use for the refund invoice that will be " +"created. If you leave that field empty, it will use the same journal as the " +"current invoice." +msgstr "" +"Puede seleccionar aquí el diario a usar para la Nota de Crédito que se " +"creará. Si deja este campo vacío, se usará el mismo diario que la factura " +"actual." + +#. module: account +#: selection:account.account.type,report_type:0 +#: code:addons/account/account.py:181 +#, python-format +msgid "Profit & Loss (Income account)" +msgstr "" + +#. module: account +#: constraint:account.account:0 +msgid "" +"Configuration Error! \n" +"You can not select an account type with a deferral method different of " +"\"Unreconciled\" for accounts with internal type \"Payable/Receivable\"! " +msgstr "" + +#. module: account +#: view:account.model:0 +msgid "Journal Entry Model" +msgstr "" + +#. module: account +#: code:addons/account/wizard/account_use_model.py:44 +#, python-format +msgid "" +"Maturity date of entry line generated by model line '%s' is based on partner " +"payment term!\n" +"Please define partner on it!" +msgstr "" + +#. module: account +#: field:account.cashbox.line,number:0 +#: field:account.invoice,number:0 +#: field:account.move,name:0 +msgid "Number" +msgstr "" + +#. module: account +#: report:account.analytic.account.journal:0 +#: selection:account.analytic.journal,type:0 +#: selection:account.bank.statement.line,type:0 +#: selection:account.journal,type:0 +msgid "General" +msgstr "" + +#. module: account +#: view:analytic.entries.report:0 +msgid "Analytic Entries of last 30 days" +msgstr "" + +#. module: account +#: selection:account.aged.trial.balance,filter:0 +#: selection:account.balance.report,filter:0 +#: selection:account.central.journal,filter:0 +#: view:account.chart:0 +#: selection:account.common.account.report,filter:0 +#: selection:account.common.journal.report,filter:0 +#: selection:account.common.partner.report,filter:0 +#: view:account.common.report:0 +#: selection:account.common.report,filter:0 +#: view:account.fiscalyear:0 +#: field:account.fiscalyear,period_ids:0 +#: selection:account.general.journal,filter:0 +#: field:account.installer,period:0 +#: selection:account.partner.balance,filter:0 +#: selection:account.partner.ledger,filter:0 +#: view:account.print.journal:0 +#: selection:account.print.journal,filter:0 +#: selection:account.report.general.ledger,filter:0 +#: report:account.vat.declaration:0 +#: view:account.vat.declaration:0 +#: selection:account.vat.declaration,filter:0 +#: view:accounting.report:0 +#: selection:accounting.report,filter:0 +#: selection:accounting.report,filter_cmp:0 +#: model:ir.actions.act_window,name:account.action_account_period_form +#: model:ir.ui.menu,name:account.menu_action_account_period_form +#: model:ir.ui.menu,name:account.next_id_23 +msgid "Periods" +msgstr "" + +#. module: account +#: field:account.invoice.report,currency_rate:0 +msgid "Currency Rate" +msgstr "" + +#. module: account +#: view:account.account:0 +#: field:account.account,tax_ids:0 +#: field:account.account.template,tax_ids:0 +msgid "Default Taxes" +msgstr "" + +#. module: account +#: selection:account.entries.report,month:0 +#: selection:account.invoice.report,month:0 +#: selection:analytic.entries.report,month:0 +#: selection:report.account.sales,month:0 +#: selection:report.account_type.sales,month:0 +msgid "April" +msgstr "" + +#. module: account +#: model:account.financial.report,name:account.account_financial_report_profitloss_toreport0 +msgid "Profit (Loss) to report" +msgstr "" + +#. module: account +#: view:account.move.line.reconcile.select:0 +msgid "Open for Reconciliation" +msgstr "" + +#. module: account +#: field:account.account,parent_left:0 +msgid "Parent Left" +msgstr "" + +#. module: account +#: help:account.invoice.refund,filter_refund:0 +msgid "" +"Refund invoice base on this type. You can not Modify and Cancel if the " +"invoice is already reconciled" +msgstr "" +"Nota de Crédito basada en este tipo. No puede modificar y cancelar si la " +"factura ya está conciliada." + +#. module: account +#: selection:account.financial.report,style_overwrite:0 +msgid "Title 2 (bold)" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,name:account.action_invoice_tree2 +#: model:ir.ui.menu,name:account.menu_action_invoice_tree2 +msgid "Supplier Invoices" +msgstr "" + +#. module: account +#: view:account.analytic.line:0 +#: field:account.analytic.line,product_id:0 +#: view:account.entries.report:0 +#: field:account.entries.report,product_id:0 +#: field:account.invoice.line,product_id:0 +#: view:account.invoice.report:0 +#: field:account.invoice.report,product_id:0 +#: field:account.move.line,product_id:0 +#: view:analytic.entries.report:0 +#: field:analytic.entries.report,product_id:0 +#: field:report.account.sales,product_id:0 +#: field:report.account_type.sales,product_id:0 +msgid "Product" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,help:account.action_validate_account_move +msgid "" +"The validation of journal entries process is also called 'ledger posting' " +"and is the process of transferring debit and credit amounts from a journal " +"of original entry to a ledger book." +msgstr "" + +#. module: account +#: help:account.bank.statement,state:0 +msgid "" +"When new statement is created the state will be 'Draft'.\n" +"And after getting confirmation from the bank it will be in 'Confirmed' state." +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_account_period +msgid "Account period" +msgstr "" + +#. module: account +#: view:account.subscription:0 +msgid "Remove Lines" +msgstr "" + +#. module: account +#: view:account.report.general.ledger:0 +msgid "" +"This report allows you to print or generate a pdf of your general ledger " +"with details of all your account journals" +msgstr "" + +#. module: account +#: selection:account.account,type:0 +#: selection:account.account.template,type:0 +#: selection:account.entries.report,type:0 +msgid "Regular" +msgstr "" + +#. module: account +#: view:account.account:0 +#: field:account.account,type:0 +#: view:account.account.template:0 +#: field:account.account.template,type:0 +#: field:account.entries.report,type:0 +msgid "Internal Type" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,name:account.action_subscription_form_running +msgid "Running Subscriptions" +msgstr "" + +#. module: account +#: view:report.account.sales:0 +#: view:report.account_type.sales:0 +#: view:report.hr.timesheet.invoice.journal:0 +msgid "This Month" +msgstr "" + +#. module: account +#: view:account.analytic.balance:0 +#: view:account.analytic.cost.ledger:0 +#: view:account.analytic.inverted.balance:0 +#: view:account.analytic.journal.report:0 +#: model:ir.actions.act_window,name:account.action_account_partner_ledger +msgid "Select Period" +msgstr "" + +#. module: account +#: view:account.entries.report:0 +#: selection:account.entries.report,move_state:0 +#: view:account.move:0 +#: selection:account.move,state:0 +#: view:account.move.line:0 +msgid "Posted" +msgstr "" + +#. module: account +#: report:account.account.balance:0 +#: field:account.aged.trial.balance,date_to:0 +#: field:account.balance.report,date_to:0 +#: report:account.central.journal:0 +#: field:account.central.journal,date_to:0 +#: field:account.common.account.report,date_to:0 +#: field:account.common.journal.report,date_to:0 +#: field:account.common.partner.report,date_to:0 +#: field:account.common.report,date_to:0 +#: field:account.fiscalyear,date_stop:0 +#: report:account.general.journal:0 +#: field:account.general.journal,date_to:0 +#: report:account.general.ledger:0 +#: report:account.general.ledger_landscape:0 +#: field:account.installer,date_stop:0 +#: report:account.partner.balance:0 +#: field:account.partner.balance,date_to:0 +#: field:account.partner.ledger,date_to:0 +#: field:account.print.journal,date_to:0 +#: field:account.report.general.ledger,date_to:0 +#: report:account.third_party_ledger:0 +#: report:account.third_party_ledger_other:0 +#: field:account.vat.declaration,date_to:0 +#: field:accounting.report,date_to:0 +#: field:accounting.report,date_to_cmp:0 +msgid "End Date" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,name:account.action_account_open_closed_fiscalyear +#: model:ir.ui.menu,name:account.menu_wizard_account_open_closed_fiscalyear +msgid "Cancel Opening Entries" +msgstr "" + +#. module: account +#: field:account.payment.term.line,days2:0 +msgid "Day of the Month" +msgstr "" + +#. module: account +#: field:account.fiscal.position.tax,tax_src_id:0 +#: field:account.fiscal.position.tax.template,tax_src_id:0 +msgid "Tax Source" +msgstr "" + +#. module: account +#: view:ir.sequence:0 +msgid "Fiscal Year Sequences" +msgstr "" + +#. module: account +#: selection:account.financial.report,display_detail:0 +msgid "No detail" +msgstr "" + +#. module: account +#: code:addons/account/account_analytic_line.py:102 +#, python-format +msgid "There is no income account defined for this product: \"%s\" (id:%d)" +msgstr "" + +#. module: account +#: constraint:account.move.line:0 +msgid "You can not create journal items on closed account." +msgstr "" + +#. module: account +#: field:account.account,unrealized_gain_loss:0 +#: model:ir.actions.act_window,name:account.action_account_gain_loss +#: model:ir.ui.menu,name:account.menu_unrealized_gains_losses +msgid "Unrealized Gain or Loss" +msgstr "" + +#. module: account +#: view:account.fiscalyear:0 +#: view:account.move:0 +#: view:account.move.line:0 +#: view:account.period:0 +msgid "States" +msgstr "" + +#. module: account +#: model:ir.actions.server,name:account.ir_actions_server_edi_invoice +msgid "Auto-email confirmed invoices" +msgstr "" + +#. module: account +#: field:account.invoice,check_total:0 +msgid "Verification Total" +msgstr "" + +#. module: account +#: report:account.analytic.account.balance:0 +#: report:account.analytic.account.inverted.balance:0 +#: report:account.analytic.account.quantity_cost_ledger:0 +#: view:account.analytic.line:0 +#: view:account.bank.statement:0 +#: field:account.invoice,amount_total:0 +#: field:report.account.sales,amount_total:0 +#: field:report.account_type.sales,amount_total:0 +#: field:report.invoice.created,amount_total:0 +msgid "Total" +msgstr "" + +#. module: account +#: code:addons/account/wizard/account_move_journal.py:97 +#, python-format +msgid "Journal: All" +msgstr "" + +#. module: account +#: field:account.account,company_id:0 +#: field:account.aged.trial.balance,company_id:0 +#: field:account.analytic.journal,company_id:0 +#: field:account.balance.report,company_id:0 +#: field:account.bank.statement,company_id:0 +#: field:account.bank.statement.line,company_id:0 +#: field:account.central.journal,company_id:0 +#: field:account.common.account.report,company_id:0 +#: field:account.common.journal.report,company_id:0 +#: field:account.common.partner.report,company_id:0 +#: field:account.common.report,company_id:0 +#: view:account.entries.report:0 +#: field:account.entries.report,company_id:0 +#: field:account.fiscal.position,company_id:0 +#: field:account.fiscalyear,company_id:0 +#: field:account.general.journal,company_id:0 +#: field:account.installer,company_id:0 +#: field:account.invoice,company_id:0 +#: field:account.invoice.line,company_id:0 +#: view:account.invoice.report:0 +#: field:account.invoice.report,company_id:0 +#: field:account.invoice.tax,company_id:0 +#: view:account.journal:0 +#: field:account.journal,company_id:0 +#: field:account.journal.period,company_id:0 +#: field:account.model,company_id:0 +#: field:account.move,company_id:0 +#: field:account.move.line,company_id:0 +#: field:account.partner.balance,company_id:0 +#: field:account.partner.ledger,company_id:0 +#: field:account.period,company_id:0 +#: field:account.print.journal,company_id:0 +#: field:account.report.general.ledger,company_id:0 +#: field:account.tax,company_id:0 +#: field:account.tax.code,company_id:0 +#: field:account.treasury.report,company_id:0 +#: field:account.vat.declaration,company_id:0 +#: field:accounting.report,company_id:0 +#: view:analytic.entries.report:0 +#: field:analytic.entries.report,company_id:0 +#: field:wizard.multi.charts.accounts,company_id:0 +msgid "Company" +msgstr "" + +#. module: account +#: model:ir.ui.menu,name:account.menu_action_subscription_form +msgid "Define Recurring Entries" +msgstr "" + +#. module: account +#: field:account.entries.report,date_maturity:0 +msgid "Date Maturity" +msgstr "" + +#. module: account +#: help:account.bank.statement,total_entry_encoding:0 +msgid "Total cash transactions" +msgstr "" + +#. module: account +#: help:account.partner.reconcile.process,today_reconciled:0 +msgid "" +"This figure depicts the total number of partners that have gone throught the " +"reconciliation process today. The current partner is counted as already " +"processed." +msgstr "" + +#. module: account +#: view:account.fiscalyear:0 +msgid "Create Monthly Periods" +msgstr "" + +#. module: account +#: field:account.tax.code.template,sign:0 +msgid "Sign For Parent" +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_account_balance_report +msgid "Trial Balance Report" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,name:account.action_bank_statement_draft_tree +msgid "Draft statements" +msgstr "" + +#. module: account +#: model:process.transition,note:account.process_transition_statemententries0 +msgid "" +"Manual or automatic creation of payment entries according to the statements" +msgstr "" + +#. module: account +#: field:account.analytic.balance,empty_acc:0 +msgid "Empty Accounts ? " +msgstr "" + +#. module: account +#: constraint:account.bank.statement:0 +msgid "The journal and period chosen have to belong to the same company." +msgstr "" + +#. module: account +#: view:account.invoice:0 +msgid "Invoice lines" +msgstr "" + +#. module: account +#: field:account.chart,period_to:0 +msgid "End period" +msgstr "" + +#. module: account +#: sql_constraint:account.journal:0 +msgid "The code of the journal must be unique per company !" +msgstr "" + +#. module: account +#: help:product.category,property_account_expense_categ:0 +#: help:product.template,property_account_expense:0 +msgid "" +"This account will be used to value outgoing stock for the current product " +"category using cost price" +msgstr "" + +#. module: account +#: view:wizard.multi.charts.accounts:0 +msgid "Generate Your Chart of Accounts from a Chart Template" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,help:account.action_account_invoice_report_all +msgid "" +"From this report, you can have an overview of the amount invoiced to your " +"customer as well as payment delays. The tool search can also be used to " +"personalise your Invoices reports and so, match this analysis to your needs." +msgstr "" + +#. module: account +#: view:account.automatic.reconcile:0 +#: view:account.move.line.reconcile.writeoff:0 +msgid "Write-Off Move" +msgstr "" + +#. module: account +#: model:process.node,note:account.process_node_paidinvoice0 +msgid "Invoice's state is Done" +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_report_account_sales +msgid "Report of the Sales by Account" +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_account_fiscal_position_account +msgid "Accounts Fiscal Position" +msgstr "" + +#. module: account +#: report:account.invoice:0 +#: view:account.invoice:0 +#: selection:account.invoice,type:0 +#: selection:account.invoice.report,type:0 +#: model:process.process,name:account.process_process_supplierinvoiceprocess0 +#: selection:report.invoice.created,type:0 +msgid "Supplier Invoice" +msgstr "" + +#. module: account +#: field:account.account,debit:0 +#: report:account.account.balance:0 +#: report:account.analytic.account.balance:0 +#: report:account.analytic.account.cost_ledger:0 +#: report:account.analytic.account.inverted.balance:0 +#: report:account.central.journal:0 +#: field:account.entries.report,debit:0 +#: report:account.general.journal:0 +#: report:account.general.ledger:0 +#: report:account.general.ledger_landscape:0 +#: report:account.journal.period.print:0 +#: report:account.journal.period.print.sale.purchase:0 +#: field:account.model.line,debit:0 +#: field:account.move.line,debit:0 +#: report:account.partner.balance:0 +#: report:account.third_party_ledger:0 +#: report:account.third_party_ledger_other:0 +#: field:account.treasury.report,debit:0 +#: report:account.vat.declaration:0 +#: field:report.account.receivable,debit:0 +msgid "Debit" +msgstr "" + +#. module: account +#: selection:account.financial.report,style_overwrite:0 +msgid "Title 3 (bold, smaller)" +msgstr "" + +#. module: account +#: field:account.invoice,invoice_line:0 +msgid "Invoice Lines" +msgstr "" + +#. module: account +#: constraint:account.account.template:0 +msgid "Error ! You can not create recursive account templates." +msgstr "" + +#. module: account +#: selection:account.print.journal,sort_selection:0 +msgid "Journal Entry Number" +msgstr "" + +#. module: account +#: view:account.subscription:0 +msgid "Recurring" +msgstr "" + +#. module: account +#: code:addons/account/account.py:642 +#, python-format +msgid "" +"You cannot change the type of account from 'Closed' to any other type which " +"contains journal items!" +msgstr "" + +#. module: account +#: code:addons/account/account_move_line.py:832 +#, python-format +msgid "Entry is already reconciled" +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_report_account_receivable +msgid "Receivable accounts" +msgstr "" + +#. module: account +#: selection:account.model.line,date_maturity:0 +msgid "Partner Payment Term" +msgstr "" + +#. module: account +#: field:temp.range,name:0 +msgid "Range" +msgstr "" + +#. module: account +#: view:account.analytic.line:0 +msgid "Analytic Journal Items related to a purchase journal." +msgstr "" + +#. module: account +#: help:account.account,type:0 +msgid "" +"The 'Internal Type' is used for features available on different types of " +"accounts: view can not have journal items, consolidation are accounts that " +"can have children accounts for multi-company consolidations, " +"payable/receivable are for partners accounts (for debit/credit " +"computations), closed for depreciated accounts." +msgstr "" + +#. module: account +#: selection:account.balance.report,display_account:0 +#: selection:account.common.account.report,display_account:0 +#: selection:account.report.general.ledger,display_account:0 +msgid "With movements" +msgstr "" + +#. module: account +#: view:account.analytic.account:0 +msgid "Account Data" +msgstr "" + +#. module: account +#: view:account.tax.code.template:0 +msgid "Account Tax Code Template" +msgstr "" + +#. module: account +#: model:process.node,name:account.process_node_manually0 +msgid "Manually" +msgstr "" + +#. module: account +#: selection:account.entries.report,month:0 +#: selection:account.invoice.report,month:0 +#: selection:analytic.entries.report,month:0 +#: selection:report.account.sales,month:0 +#: selection:report.account_type.sales,month:0 +msgid "December" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,name:account.action_account_analytic_journal_tree +#: model:ir.ui.menu,name:account.account_analytic_journal_print +msgid "Print Analytic Journals" +msgstr "" + +#. module: account +#: view:account.invoice.report:0 +msgid "Group by month of Invoice Date" +msgstr "" + +#. module: account +#: view:account.analytic.line:0 +msgid "Fin.Account" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,name:account.action_aged_receivable_graph +#: view:report.aged.receivable:0 +msgid "Aged Receivable" +msgstr "" + +#. module: account +#: field:account.tax,applicable_type:0 +msgid "Applicability" +msgstr "" + +#. module: account +#: code:addons/account/wizard/account_move_journal.py:165 +#, python-format +msgid "This period is already closed !" +msgstr "" + +#. module: account +#: help:account.move.line,currency_id:0 +msgid "The optional other currency if it is a multi-currency entry." +msgstr "" + +#. module: account +#: model:process.transition,note:account.process_transition_invoiceimport0 +msgid "" +"Import of the statement in the system from a supplier or customer invoice" +msgstr "" + +#. module: account +#: model:ir.ui.menu,name:account.menu_finance_periodical_processing_billing +msgid "Billing" +msgstr "" + +#. module: account +#: view:account.account:0 +#: view:account.analytic.account:0 +msgid "Parent Account" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,help:account.action_account_journal_form +msgid "" +"Create and manage your company's journals from this menu. A journal is used " +"to record transactions of all accounting data related to the day-to-day " +"business of your company using double-entry bookkeeping system. Depending on " +"the nature of its activities and the number of daily transactions, a company " +"may keep several types of specialized journals such as a cash journal, " +"purchase journal, sales journal..." +msgstr "" + +#. module: account +#: view:account.payment.term:0 +msgid "Description on Invoices" +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_account_analytic_chart +msgid "Account Analytic Chart" +msgstr "" + +#. module: account +#: help:account.invoice,residual:0 +msgid "Remaining amount due." +msgstr "" + +#. module: account +#: model:ir.ui.menu,name:account.menu_finance_statistic_report_statement +msgid "Statistic Reports" +msgstr "" + +#. module: account +#: code:addons/account/account_move_line.py:1155 +#: code:addons/account/account_move_line.py:1238 +#, python-format +msgid "Bad account!" +msgstr "" + +#. module: account +#: field:account.print.journal,sort_selection:0 +msgid "Entries Sorted by" +msgstr "" + +#. module: account +#: help:account.move,state:0 +msgid "" +"All manually created new journal entries are usually in the state " +"'Unposted', but you can set the option to skip that state on the related " +"journal. In that case, they will be behave as journal entries automatically " +"created by the system on document validation (invoices, bank statements...) " +"and will be created in 'Posted' state." +msgstr "" + +#. module: account +#: view:account.fiscal.position.template:0 +msgid "Accounts Mapping" +msgstr "" + +#. module: account +#: code:addons/account/account_invoice.py:364 +#, python-format +msgid "Invoice '%s' is waiting for validation." +msgstr "" + +#. module: account +#: selection:account.entries.report,month:0 +#: selection:account.invoice.report,month:0 +#: selection:analytic.entries.report,month:0 +#: selection:report.account.sales,month:0 +#: selection:report.account_type.sales,month:0 +msgid "November" +msgstr "" + +#. module: account +#: selection:account.invoice.refund,filter_refund:0 +msgid "Modify: refund invoice, reconcile and create a new draft invoice" +msgstr "" +"Modificar: Notade Crédito, reconcilia y crea una nueva factura borrador." + +#. module: account +#: help:account.invoice.line,account_id:0 +msgid "The income or expense account related to the selected product." +msgstr "" + +#. module: account +#: field:account.subscription,period_total:0 +msgid "Number of Periods" +msgstr "" + +#. module: account +#: report:account.general.journal:0 +#: model:ir.actions.report.xml,name:account.account_general_journal +msgid "General Journal" +msgstr "" + +#. module: account +#: view:account.invoice:0 +msgid "Search Invoice" +msgstr "" + +#. module: account +#: report:account.invoice:0 +#: view:account.invoice:0 +#: view:account.invoice.refund:0 +#: view:account.invoice.report:0 +#: model:ir.actions.act_window,name:account.action_account_invoice_refund +msgid "Refund" +msgstr "Nota de Crédito" + +#. module: account +#: model:email.template,body_text:account.email_template_edi_invoice +msgid "" +"\n" +"Hello${object.address_invoice_id.name and ' ' or " +"''}${object.address_invoice_id.name or ''},\n" +"\n" +"A new invoice is available for ${object.partner_id.name}:\n" +" | Invoice number: *${object.number}*\n" +" | Invoice total: *${object.amount_total} ${object.currency_id.name}*\n" +" | Invoice date: ${object.date_invoice}\n" +" % if object.origin:\n" +" | Order reference: ${object.origin}\n" +" % endif\n" +" | Your contact: ${object.user_id.name} ${object.user_id.user_email " +"and '<%s>'%(object.user_id.user_email) or ''}\n" +"\n" +"You can view the invoice document, download it and pay online using the " +"following link:\n" +" ${ctx.get('edi_web_url_view') or 'n/a'}\n" +"\n" +"% if object.company_id.paypal_account and object.type in ('out_invoice', " +"'in_refund'):\n" +"<% \n" +"comp_name = quote(object.company_id.name)\n" +"inv_number = quote(object.number)\n" +"paypal_account = quote(object.company_id.paypal_account)\n" +"inv_amount = quote(str(object.amount_total))\n" +"cur_name = quote(object.currency_id.name)\n" +"paypal_url = \"https://www.paypal.com/cgi-" +"bin/webscr?cmd=_xclick&business=%s&item_name=%s%%20Invoice%%20%s\"\\\n" +" " +"\"&invoice=%s&amount=%s¤cy_code=%s&button_subtype=services&no_note=1&bn" +"=OpenERP_Invoice_PayNow_%s\" % \\\n" +" " +"(paypal_account,comp_name,inv_number,inv_number,inv_amount,cur_name,cur_name)" +"\n" +"%>\n" +"It is also possible to directly pay with Paypal:\n" +" ${paypal_url}\n" +"% endif\n" +"\n" +"If you have any question, do not hesitate to contact us.\n" +"\n" +"\n" +"Thank you for choosing ${object.company_id.name}!\n" +"\n" +"\n" +"--\n" +"${object.user_id.name} ${object.user_id.user_email and " +"'<%s>'%(object.user_id.user_email) or ''}\n" +"${object.company_id.name}\n" +"% if object.company_id.street:\n" +"${object.company_id.street or ''}\n" +"% endif\n" +"% if object.company_id.street2:\n" +"${object.company_id.street2}\n" +"% endif\n" +"% if object.company_id.city or object.company_id.zip:\n" +"${object.company_id.zip or ''} ${object.company_id.city or ''}\n" +"% endif\n" +"% if object.company_id.country_id:\n" +"${object.company_id.state_id and ('%s, ' % object.company_id.state_id.name) " +"or ''} ${object.company_id.country_id.name or ''}\n" +"% endif\n" +"% if object.company_id.phone:\n" +"Phone: ${object.company_id.phone}\n" +"% endif\n" +"% if object.company_id.website:\n" +"${object.company_id.website or ''}\n" +"% endif\n" +" " +msgstr "" +"\n" +"Hola${object.address_invoice_id.name and ' ' or " +"''}${object.address_invoice_id.name or ''},\n" +"\n" +"Está disponible una nueva factura para ${object.partner_id.name}:\n" +" | Nº de factura: *${object.number}*\n" +" | Importe: *${object.amount_total} ${object.currency_id.name}*\n" +" | Fecha: ${object.date_invoice}\n" +" % if object.origin:\n" +" | Referencia: ${object.origin}\n" +" % endif\n" +" | Su contacto: ${object.user_id.name} ${object.user_id.user_email and " +"'<%s>'%(object.user_id.user_email) or ''}\n" +"\n" +"Puede ver el documento de la factura, descargarlo y pagarlo online siguiendo " +"el enlace:\n" +" ${ctx.get('edi_web_url_view') or 'n/a'}\n" +"\n" +"% if object.company_id.paypal_account and object.type in ('out_invoice', " +"'in_refund'):\n" +"<% \n" +"comp_name = quote(object.company_id.name)\n" +"inv_number = quote(object.number)\n" +"paypal_account = quote(object.company_id.paypal_account)\n" +"inv_amount = quote(str(object.amount_total))\n" +"cur_name = quote(object.currency_id.name)\n" +"paypal_url = \"https://www.paypal.com/cgi-" +"bin/webscr?cmd=_xclick&business=%s&item_name=%s%%20Invoice%%20%s\"\\\n" +" " +"\"&invoice=%s&amount=%s¤cy_code=%s&button_subtype=services&no_note=1&bn" +"=OpenERP_Invoice_PayNow_%s\" % \\\n" +" " +"(paypal_account,comp_name,inv_number,inv_number,inv_amount,cur_name,cur_name)" +"\n" +"%>\n" +"También puede pagar directamente mediante Paypal:\n" +" ${paypal_url}\n" +"% endif\n" +"\n" +"Si tiene cualquier consulta no dude en contactarnos.\n" +"\n" +"\n" +"¡Gracia por elegir ${object.company_id.name}!\n" +"\n" +"\n" +"--\n" +"${object.user_id.name} ${object.user_id.user_email and " +"'<%s>'%(object.user_id.user_email) or ''}\n" +"${object.company_id.name}\n" +"% if object.company_id.street:\n" +"${object.company_id.street or ''}\n" +"% endif\n" +"% if object.company_id.street2:\n" +"${object.company_id.street2}\n" +"% endif\n" +"% if object.company_id.city or object.company_id.zip:\n" +"${object.company_id.zip or ''} ${object.company_id.city or ''}\n" +"% endif\n" +"% if object.company_id.country_id:\n" +"${object.company_id.state_id and ('%s, ' % object.company_id.state_id.name) " +"or ''} ${object.company_id.country_id.name or ''}\n" +"% endif\n" +"% if object.company_id.phone:\n" +"Phone: ${object.company_id.phone}\n" +"% endif\n" +"% if object.company_id.website:\n" +"${object.company_id.website or ''}\n" +"% endif\n" +" " + +#. module: account +#: model:ir.model,name:account.model_res_partner_bank +msgid "Bank Accounts" +msgstr "" + +#. module: account +#: field:res.partner,credit:0 +msgid "Total Receivable" +msgstr "" + +#. module: account +#: view:account.account:0 +#: view:account.account.template:0 +#: view:account.journal:0 +#: view:account.move.line:0 +msgid "General Information" +msgstr "" + +#. module: account +#: view:account.move:0 +#: view:account.move.line:0 +msgid "Accounting Documents" +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_validate_account_move_lines +msgid "Validate Account Move Lines" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,name:account.action_account_analytic_cost_ledger_journal +#: model:ir.actions.report.xml,name:account.account_analytic_account_quantity_cost_ledger +msgid "Cost Ledger (Only quantities)" +msgstr "" + +#. module: account +#: model:process.node,note:account.process_node_supplierpaidinvoice0 +msgid "Invoice's state is Done." +msgstr "" + +#. module: account +#: model:process.transition,note:account.process_transition_reconcilepaid0 +msgid "As soon as the reconciliation is done, the invoice can be paid." +msgstr "" + +#. module: account +#: view:account.account.template:0 +msgid "Search Account Templates" +msgstr "" + +#. module: account +#: view:account.invoice.tax:0 +msgid "Manual Invoice Taxes" +msgstr "" + +#. module: account +#: field:account.account,parent_right:0 +msgid "Parent Right" +msgstr "" + +#. module: account +#: model:ir.model,name:account.model_account_addtmpl_wizard +msgid "account.addtmpl.wizard" +msgstr "" + +#. module: account +#: field:account.aged.trial.balance,result_selection:0 +#: field:account.common.partner.report,result_selection:0 +#: report:account.partner.balance:0 +#: field:account.partner.balance,result_selection:0 +#: field:account.partner.ledger,result_selection:0 +#: report:account.third_party_ledger:0 +#: report:account.third_party_ledger_other:0 +msgid "Partner's" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,name:account.action_account_fiscalyear_form +#: view:ir.sequence:0 +#: model:ir.ui.menu,name:account.menu_action_account_fiscalyear_form +msgid "Fiscal Years" +msgstr "" + +#. module: account +#: help:account.analytic.journal,active:0 +msgid "" +"If the active field is set to False, it will allow you to hide the analytic " +"journal without removing it." +msgstr "" + +#. module: account +#: field:account.analytic.line,ref:0 +msgid "Ref." +msgstr "" + +#. module: account +#: field:account.use.model,model:0 +#: model:ir.model,name:account.model_account_model +msgid "Account Model" +msgstr "" + +#. module: account +#: selection:account.entries.report,month:0 +#: selection:account.invoice.report,month:0 +#: selection:analytic.entries.report,month:0 +#: selection:report.account.sales,month:0 +#: selection:report.account_type.sales,month:0 +msgid "February" +msgstr "" + +#. module: account +#: help:account.bank.statement,name:0 +msgid "" +"if you give the Name other then /, its created Accounting Entries Move will " +"be with same name as statement name. This allows the statement entries to " +"have the same references than the statement itself" +msgstr "" + +#. module: account +#: field:account.bank.accounts.wizard,bank_account_id:0 +#: view:account.chart.template:0 +#: field:account.chart.template,bank_account_view_id:0 +#: field:account.invoice,partner_bank_id:0 +#: field:account.invoice.report,partner_bank_id:0 +msgid "Bank Account" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,name:account.action_account_central_journal +#: model:ir.model,name:account.model_account_central_journal +msgid "Account Central Journal" +msgstr "" + +#. module: account +#: report:account.overdue:0 +msgid "Maturity" +msgstr "" + +#. module: account +#: selection:account.aged.trial.balance,direction_selection:0 +msgid "Future" +msgstr "" + +#. module: account +#: view:account.move.line:0 +msgid "Search Journal Items" +msgstr "" + +#. module: account +#: help:account.tax,base_sign:0 +#: help:account.tax,ref_base_sign:0 +#: help:account.tax,ref_tax_sign:0 +#: help:account.tax,tax_sign:0 +#: help:account.tax.template,base_sign:0 +#: help:account.tax.template,ref_base_sign:0 +#: help:account.tax.template,ref_tax_sign:0 +#: help:account.tax.template,tax_sign:0 +msgid "Usually 1 or -1." +msgstr "" + +#. module: account +#: model:ir.actions.act_window,name:account.action_account_analytic_account_tree2 +#: model:ir.actions.act_window,name:account.action_account_analytic_chart +#: model:ir.ui.menu,name:account.menu_action_analytic_account_tree2 +msgid "Chart of Analytic Accounts" +msgstr "" + +#. module: account +#: field:account.chart.template,property_account_expense:0 +msgid "Expense Account on Product Template" +msgstr "" + +#. module: account +#: help:accounting.report,label_filter:0 +msgid "" +"This label will be displayed on report to show the balance computed for the " +"given comparison filter." +msgstr "" + +#. module: account +#: code:addons/account/wizard/account_report_aged_partner_balance.py:56 +#, python-format +msgid "You must enter a period length that cannot be 0 or below !" +msgstr "" + +#. module: account +#: model:ir.actions.act_window,help:account.action_account_form +msgid "" +"Create and manage the accounts you need to record journal entries. An " +"account is part of a ledger allowing your company to register all kinds of " +"debit and credit transactions. Companies present their annual accounts in " +"two main parts: the balance sheet and the income statement (profit and loss " +"account). The annual accounts of a company are required by law to disclose a " +"certain amount of information. They have to be certified by an external " +"auditor annually." +msgstr "" + +#. module: account +#: help:account.move.line,amount_residual_currency:0 +msgid "" +"The residual amount on a receivable or payable of a journal entry expressed " +"in its currency (maybe different of the company currency)." +msgstr "" diff --git a/addons/account/ir_sequence_view.xml b/addons/account/ir_sequence_view.xml index c09fb7abb37..bae969ed199 100644 --- a/addons/account/ir_sequence_view.xml +++ b/addons/account/ir_sequence_view.xml @@ -4,7 +4,6 @@ <record id="sequence_inherit_form" model="ir.ui.view"> <field name="name">ir.sequence.form</field> <field name="model">ir.sequence</field> - <field name="type">form</field> <field name="inherit_id" ref="base.sequence_view"/> <field name="arch" type="xml"> <page position="after"> diff --git a/addons/account/partner_view.xml b/addons/account/partner_view.xml index d44c7c460c7..d83571b314e 100644 --- a/addons/account/partner_view.xml +++ b/addons/account/partner_view.xml @@ -5,7 +5,6 @@ <record id="view_account_position_form" model="ir.ui.view"> <field name="name">account.fiscal.position.form</field> <field name="model">account.fiscal.position</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Fiscal Position"> <group col="4"> @@ -42,7 +41,6 @@ <record id="view_account_position_tree" model="ir.ui.view"> <field name="name">account.fiscal.position.tree</field> <field name="model">account.fiscal.position</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Fiscal Position"> <field name="name"/> @@ -70,7 +68,6 @@ <record id="view_partner_property_form" model="ir.ui.view"> <field name="name">res.partner.property.form.inherit</field> <field name="model">res.partner</field> - <field name="type">form</field> <field name="priority">2</field> <field name="inherit_id" ref="base.view_partner_form"/> <field name="arch" type="xml"> diff --git a/addons/account/product_view.xml b/addons/account/product_view.xml index 8591b28b173..659a4f6ac36 100644 --- a/addons/account/product_view.xml +++ b/addons/account/product_view.xml @@ -4,7 +4,6 @@ <record id="product_normal_form_view" model="ir.ui.view"> <field name="name">product.normal.form.inherit</field> <field name="model">product.product</field> - <field name="type">form</field> <field name="inherit_id" ref="product.product_normal_form_view"/> <field name="arch" type="xml"> <notebook position="inside"> @@ -27,7 +26,6 @@ <record id="product_template_form_view" model="ir.ui.view"> <field name="name">product.template.product.form.inherit</field> <field name="model">product.template</field> - <field name="type">form</field> <field name="inherit_id" ref="product.product_template_form_view"/> <field name="arch" type="xml"> <notebook position="inside"> @@ -48,7 +46,6 @@ <record id="view_category_property_form" model="ir.ui.view"> <field name="name">product.category.property.form.inherit</field> <field name="model">product.category</field> - <field name="type">form</field> <field name="inherit_id" ref="product.product_category_form_view"/> <field name="arch" type="xml"> <data> diff --git a/addons/account/project/project_view.xml b/addons/account/project/project_view.xml index b95e1c16bfd..e3b902a000f 100644 --- a/addons/account/project/project_view.xml +++ b/addons/account/project/project_view.xml @@ -5,7 +5,6 @@ <record id="view_account_analytic_account_list" model="ir.ui.view"> <field name="name">account.analytic.account.list</field> <field name="model">account.analytic.account</field> - <field name="type">tree</field> <field eval="8" name="priority"/> <field name="arch" type="xml"> <tree toolbar="1" colors="red:state=='pending';grey:state in ('cancelled','close');blue:type=='view'" string="Analytic Accounts"> @@ -27,7 +26,6 @@ <record id="view_account_analytic_account_search" model="ir.ui.view"> <field name="name">account.analytic.account.search</field> <field name="model">account.analytic.account</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Analytic Account"> <field name="name" filter_domain="['|', ('name','ilike',self), ('code','ilike',self)]" string="Analytic Account"/> @@ -49,7 +47,6 @@ <record id="view_account_analytic_account_tree" model="ir.ui.view"> <field name="name">account.analytic.account.tree</field> <field name="model">account.analytic.account</field> - <field name="type">tree</field> <field name="field_parent">child_complete_ids</field> <field name="arch" type="xml"> <tree colors="blue:state=='pending';grey:state in ('close','cancelled');blue:type=='view'" string="Analytic account" toolbar="1"> @@ -124,7 +121,6 @@ <record id="view_account_analytic_line_form" model="ir.ui.view"> <field name="name">account.analytic.line.form</field> <field name="model">account.analytic.line</field> - <field name="type">form</field> <field name="priority">1</field> <field name="arch" type="xml"> <form string="Analytic Entry" version="7.0"> @@ -166,7 +162,6 @@ <record id="view_account_analytic_line_tree" model="ir.ui.view"> <field name="name">account.analytic.line.tree</field> <field name="model">account.analytic.line</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree editable="top" string="Analytic Entries"> <field name="date"/> @@ -187,7 +182,6 @@ <record id="view_account_analytic_line_filter" model="ir.ui.view"> <field name="name">account.analytic.line.select</field> <field name="model">account.analytic.line</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Search Analytic Lines"> <field name="name" string="Analytic Line"/> @@ -239,7 +233,6 @@ <record id="account_analytic_line_extended_form" model="ir.ui.view"> <field name="name">account.analytic.line.extended_form</field> <field name="model">account.analytic.line</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Project line" version="7.0"> <group> @@ -288,7 +281,6 @@ <record id="view_account_analytic_journal_tree" model="ir.ui.view"> <field name="name">account.analytic.journal.tree</field> <field name="model">account.analytic.journal</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Analytic Journal"> <field name="code"/> @@ -301,7 +293,6 @@ <record id="view_analytic_journal_search" model="ir.ui.view"> <field name="name">account.analytic.journal.search</field> <field name="model">account.analytic.journal</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Analytic Journals"> <field name="name" filter_domain="['|', ('name','ilike',self), ('code','ilike',self)]" string="Analytic Journal"/> @@ -316,7 +307,6 @@ <record id="view_account_analytic_journal_form" model="ir.ui.view"> <field name="name">account.analytic.journal.form</field> <field name="model">account.analytic.journal</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Analytic Journal" version="7.0"> <group col="4"> @@ -381,7 +371,6 @@ <field name="name">account.journal.form.1</field> <field name="model">account.journal</field> <field name="inherit_id" ref="account.view_account_journal_form"/> - <field name="type">form</field> <field name="arch" type="xml"> <field name="type" position="after"> <field name="analytic_journal_id"/> @@ -392,7 +381,6 @@ <record id="analytic_accounts_graph" model="ir.ui.view"> <field name="name">analytic.accounts.graph</field> <field name="model">account.analytic.account</field> - <field name="type">graph</field> <field name="arch" type="xml"> <graph string="Analytic Account Statistics" type="bar"> <field name="complete_name"/> diff --git a/addons/account/project/wizard/account_analytic_balance_report_view.xml b/addons/account/project/wizard/account_analytic_balance_report_view.xml index be5cdf3b027..7090ea7897a 100644 --- a/addons/account/project/wizard/account_analytic_balance_report_view.xml +++ b/addons/account/project/wizard/account_analytic_balance_report_view.xml @@ -5,7 +5,6 @@ <record id="account_analytic_balance_view" model="ir.ui.view"> <field name="name">Account Analytic Balance</field> <field name="model">account.analytic.balance</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Select Period" version="7.0"> <header> diff --git a/addons/account/project/wizard/account_analytic_chart_view.xml b/addons/account/project/wizard/account_analytic_chart_view.xml index c8f2d811319..70769049002 100644 --- a/addons/account/project/wizard/account_analytic_chart_view.xml +++ b/addons/account/project/wizard/account_analytic_chart_view.xml @@ -5,7 +5,6 @@ <record id="account_analytic_chart_view" model="ir.ui.view"> <field name="name">Chart of Analytic Accounts</field> <field name="model">account.analytic.chart</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Analytic Account Charts" version="7.0"> <header> diff --git a/addons/account/project/wizard/account_analytic_cost_ledger_for_journal_report_view.xml b/addons/account/project/wizard/account_analytic_cost_ledger_for_journal_report_view.xml index b2d8c9c87b0..8a6657f7583 100644 --- a/addons/account/project/wizard/account_analytic_cost_ledger_for_journal_report_view.xml +++ b/addons/account/project/wizard/account_analytic_cost_ledger_for_journal_report_view.xml @@ -5,7 +5,6 @@ <record id="account_analytic_cost_ledger_journal_view" model="ir.ui.view"> <field name="name">Account Analytic Cost Ledger Journal</field> <field name="model">account.analytic.cost.ledger.journal.report</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Select period" version="7.0"> <header> diff --git a/addons/account/project/wizard/account_analytic_cost_ledger_view.xml b/addons/account/project/wizard/account_analytic_cost_ledger_view.xml index d3cde4e1138..7e2b7b7679e 100644 --- a/addons/account/project/wizard/account_analytic_cost_ledger_view.xml +++ b/addons/account/project/wizard/account_analytic_cost_ledger_view.xml @@ -5,7 +5,6 @@ <record id="account_analytic_cost_view" model="ir.ui.view"> <field name="name">Account Analytic Check</field> <field name="model">account.analytic.cost.ledger</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Select Period" version="7.0"> <header> diff --git a/addons/account/project/wizard/account_analytic_inverted_balance_report.xml b/addons/account/project/wizard/account_analytic_inverted_balance_report.xml index 3949ac22a83..7d414ee6525 100644 --- a/addons/account/project/wizard/account_analytic_inverted_balance_report.xml +++ b/addons/account/project/wizard/account_analytic_inverted_balance_report.xml @@ -5,7 +5,6 @@ <record id="account_analytic_invert_balance_view" model="ir.ui.view"> <field name="name">Account Analytic Inverted Balance</field> <field name="model">account.analytic.inverted.balance</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Select Period" version="7.0"> <header> diff --git a/addons/account/project/wizard/account_analytic_journal_report_view.xml b/addons/account/project/wizard/account_analytic_journal_report_view.xml index d3401717ade..e4c4cd314db 100644 --- a/addons/account/project/wizard/account_analytic_journal_report_view.xml +++ b/addons/account/project/wizard/account_analytic_journal_report_view.xml @@ -5,7 +5,6 @@ <record id="account_analytic_journal_view" model="ir.ui.view"> <field name="name">Account Analytic Journal</field> <field name="model">account.analytic.journal.report</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Select Period" version="7.0"> <header> diff --git a/addons/account/project/wizard/project_account_analytic_line_view.xml b/addons/account/project/wizard/project_account_analytic_line_view.xml index ced6602b36d..55124cc283f 100644 --- a/addons/account/project/wizard/project_account_analytic_line_view.xml +++ b/addons/account/project/wizard/project_account_analytic_line_view.xml @@ -5,7 +5,6 @@ <record id="view_project_account_analytic_line_form" model="ir.ui.view"> <field name="name">project.account.analytic.line.form</field> <field name="model">project.account.analytic.line</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="View Account Analytic Lines" version="7.0"> <header> diff --git a/addons/account/report/account_analytic_entries_report_view.xml b/addons/account/report/account_analytic_entries_report_view.xml index 35031180523..8963ba97376 100644 --- a/addons/account/report/account_analytic_entries_report_view.xml +++ b/addons/account/report/account_analytic_entries_report_view.xml @@ -4,7 +4,6 @@ <record id="view_analytic_entries_report_tree" model="ir.ui.view"> <field name="name">analytic.entries.report.tree</field> <field name="model">analytic.entries.report</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Analytic Entries Analysis"> <field name="date" invisible="1"/> @@ -31,7 +30,6 @@ <record id="view_analytic_entries_report_search" model="ir.ui.view"> <field name="name">analytic.entries.report.search</field> <field name="model">analytic.entries.report</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Analytic Entries Analysis"> <field name="day" string="Day"/> @@ -59,7 +57,6 @@ <record id="view_account_analytic_entries_search" model="ir.ui.view"> <field name="name">account.analytic.entries.graph</field> <field name="model">analytic.entries.report</field> - <field name="type">graph</field> <field name="arch" type="xml"> <graph string="Analytic Entries Analysis" type="bar"> <field name="user_id"/> diff --git a/addons/account/report/account_entries_report_view.xml b/addons/account/report/account_entries_report_view.xml index 8c445052094..667c61ab78f 100644 --- a/addons/account/report/account_entries_report_view.xml +++ b/addons/account/report/account_entries_report_view.xml @@ -4,7 +4,6 @@ <record id="view_account_entries_report_tree" model="ir.ui.view"> <field name="name">account.entries.report.tree</field> <field name="model">account.entries.report</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree colors="blue:move_state == 'draft';black:move_state == 'posted'" string="Entries Analysis"> <field name="date" invisible="1"/> @@ -38,7 +37,6 @@ <record id="view_account_entries_report_graph" model="ir.ui.view"> <field name="name">account.entries.report.graph</field> <field name="model">account.entries.report</field> - <field name="type">graph</field> <field name="arch" type="xml"> <graph string="Entries Analysis" type="bar"> <field name="partner_id"/> @@ -51,7 +49,6 @@ <record id="view_company_analysis_tree" model="ir.ui.view"> <field name="name">account.company.analysis.tree</field> <field name="model">account.entries.report</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Company Analysis" > <field name="user_type"/> @@ -64,7 +61,6 @@ <record id="view_account_entries_report_search" model="ir.ui.view"> <field name="name">account.entries.report.search</field> <field name="model">account.entries.report</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Entries Analysis"> <field name="date"/> diff --git a/addons/account/report/account_invoice_report_view.xml b/addons/account/report/account_invoice_report_view.xml index e3e0b210f20..c22d5d55f45 100644 --- a/addons/account/report/account_invoice_report_view.xml +++ b/addons/account/report/account_invoice_report_view.xml @@ -4,7 +4,6 @@ <record id="view_account_invoice_report_tree" model="ir.ui.view"> <field name="name">account.invoice.report.tree</field> <field name="model">account.invoice.report</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree colors="blue:state == 'draft';gray:state in ('cancel','paid');black:state in ('proforma','proforma2')" string="Invoices Analysis"> <field name="date" invisible="1"/> @@ -40,7 +39,6 @@ <record id="view_account_invoice_report_graph" model="ir.ui.view"> <field name="name">account.invoice.report.graph</field> <field name="model">account.invoice.report</field> - <field name="type">graph</field> <field name="arch" type="xml"> <graph string="Invoices Analysis" type="bar"> <field name="product_id"/> @@ -52,7 +50,6 @@ <record id="view_account_invoice_report_search" model="ir.ui.view"> <field name="name">account.invoice.report.search</field> <field name="model">account.invoice.report</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Invoices Analysis"> <field name="date"/> diff --git a/addons/account/report/account_report_view.xml b/addons/account/report/account_report_view.xml index c9c667ae70e..a947cce4f57 100644 --- a/addons/account/report/account_report_view.xml +++ b/addons/account/report/account_report_view.xml @@ -7,7 +7,6 @@ <record id="view_crm_case_user_graph" model="ir.ui.view"> <field name="name">report.account.receivable.graph</field> <field name="model">report.account.receivable</field> - <field name="type">graph</field> <field name="arch" type="xml"> <graph string="Accounts by Type" type="bar"> <field name="name"/> @@ -18,7 +17,6 @@ <record id="view_crm_case_user_tree" model="ir.ui.view"> <field name="name">report.account.receivable.tree</field> <field name="model">report.account.receivable</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Accounts by Type"> <field name="name"/> @@ -32,7 +30,6 @@ <record id="view_crm_case_user_form" model="ir.ui.view"> <field name="name">report.account.receivable.form</field> <field name="model">report.account.receivable</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Accounts by Type" version="7.0"> <group> @@ -55,7 +52,6 @@ <record id="view_aged_recv_graph" model="ir.ui.view"> <field name="name">report.aged.receivable.graph</field> <field name="model">report.aged.receivable</field> - <field name="type">graph</field> <field name="arch" type="xml"> <graph string="Aged Receivable" type="bar"> <field name="name"/> @@ -67,7 +63,6 @@ <record id="view_aged_recv_tree" model="ir.ui.view"> <field name="name">report.aged.receivable.tree</field> <field name="model">report.aged.receivable</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Aged Receivable"> <field name="name"/> @@ -88,7 +83,6 @@ <record id="board_view_created_invoice" model="ir.ui.view"> <field name="name">report.invoice.created.tree</field> <field name="model">report.invoice.created</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree colors="blue:state == 'draft';black:state in ('proforma','proforma2','open');gray:state in('paid','cancel') " string="Invoices"> <field name="create_date"/> @@ -119,7 +113,6 @@ <record id="view_report_account_sales_tree" model="ir.ui.view"> <field name="name">report.account.sales.tree</field> <field name="model">report.account.sales</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Sales by Account"> <field name="name"/> @@ -136,7 +129,6 @@ <record id="view_report_account_sales_graph" model="ir.ui.view"> <field name="name">report.account.sales.graph</field> <field name="model">report.account.sales</field> - <field name="type">graph</field> <field name="arch" type="xml"> <graph string="Sales by Account" type="pie"> <field name="account_id"/> @@ -148,7 +140,6 @@ <record id="view_report_account_sales_search" model="ir.ui.view"> <field name="name">report.account.sales.search</field> <field name="model">report.account.sales</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Sales by Account"> <field name="name" string="Year"/> @@ -168,7 +159,6 @@ <record id="view_report_account_type_sales_tree" model="ir.ui.view"> <field name="name">report.account_type.sales.tree</field> <field name="model">report.account_type.sales</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Sales by Account Type"> <field name="name"/> @@ -186,7 +176,6 @@ <record id="view_report_account_type_sales_form" model="ir.ui.view"> <field name="name">report.account_type.sales.form</field> <field name="model">report.account_type.sales</field> - <field name="type">form</field> <field name="arch" type="xml"> <tree string="Sales by Account Type"> <field name="name"/> @@ -199,7 +188,6 @@ <record id="view_report_account_type_sales_graph" model="ir.ui.view"> <field name="name">report.account_type.sales.graph</field> <field name="model">report.account_type.sales</field> - <field name="type">graph</field> <field name="arch" type="xml"> <graph string="Sales by Account" type="pie"> <field name="user_type"/> @@ -211,7 +199,6 @@ <record id="view_report_account_type_sales_search" model="ir.ui.view"> <field name="name">report.account_type.sales.search</field> <field name="model">report.account_type.sales</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Sales by Account"> <field name="name" string="Year"/> diff --git a/addons/account/report/account_treasury_report_view.xml b/addons/account/report/account_treasury_report_view.xml index f0096b561bb..ee21b9e5ec6 100644 --- a/addons/account/report/account_treasury_report_view.xml +++ b/addons/account/report/account_treasury_report_view.xml @@ -4,7 +4,6 @@ <record id="view_account_treasury_report_tree" model="ir.ui.view"> <field name="name">account.treasury.report.tree</field> <field name="model">account.treasury.report</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Treasury Analysis"> <field name="date" invisible="1"/> @@ -22,7 +21,6 @@ <record id="view_account_treasury_report_graph" model="ir.ui.view"> <field name="name">account.treasury.report.graph</field> <field name="model">account.treasury.report</field> - <field name="type">graph</field> <field name="arch" type="xml"> <graph string="Treasury Analysis" type="bar"> <field name="period_id"/> @@ -33,7 +31,6 @@ <record id="view_account_treasury_report_search" model="ir.ui.view"> <field name="name">account.treasury.report.search</field> <field name="model">account.treasury.report</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Treasury Analysis"> <field name="fiscalyear_id"/> diff --git a/addons/account/res_config_view.xml b/addons/account/res_config_view.xml index ebcd99a6915..79a65f70414 100644 --- a/addons/account/res_config_view.xml +++ b/addons/account/res_config_view.xml @@ -13,7 +13,6 @@ <record id="view_account_config_settings" model="ir.ui.view"> <field name="name">account settings</field> <field name="model">account.config.settings</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Configure Accounting" version="7.0" class="oe_form_configuration"> <header> diff --git a/addons/account/wizard/account_automatic_reconcile_view.xml b/addons/account/wizard/account_automatic_reconcile_view.xml index be1776497b3..7840f5a9719 100644 --- a/addons/account/wizard/account_automatic_reconcile_view.xml +++ b/addons/account/wizard/account_automatic_reconcile_view.xml @@ -5,7 +5,6 @@ <record id="account_automatic_reconcile_view" model="ir.ui.view"> <field name="name">Account Automatic Reconcile</field> <field name="model">account.automatic.reconcile</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Reconciliation" version="7.0"> <separator string="Reconciliation"/> @@ -51,7 +50,6 @@ <record id="account_automatic_reconcile_view1" model="ir.ui.view"> <field name="name">Automatic reconcile unreconcile</field> <field name="model">account.automatic.reconcile</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Reconciliation Result" version="7.0"> <group> diff --git a/addons/account/wizard/account_change_currency_view.xml b/addons/account/wizard/account_change_currency_view.xml index 7e33e61eec8..1da342b4236 100644 --- a/addons/account/wizard/account_change_currency_view.xml +++ b/addons/account/wizard/account_change_currency_view.xml @@ -4,7 +4,6 @@ <record id="view_account_change_currency" model="ir.ui.view"> <field name="name">Change Currency</field> <field name="model">account.change.currency</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Invoice Currency" version="7.0"> <group string="This wizard will change the currency of the invoice"> diff --git a/addons/account/wizard/account_chart_view.xml b/addons/account/wizard/account_chart_view.xml index ee4bdc199c5..7533cb117eb 100644 --- a/addons/account/wizard/account_chart_view.xml +++ b/addons/account/wizard/account_chart_view.xml @@ -4,7 +4,6 @@ <record id="view_account_chart" model="ir.ui.view"> <field name="name">account.chart.form</field> <field name="model">account.chart</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Account charts" version="7.0"> <group> diff --git a/addons/account/wizard/account_financial_report_view.xml b/addons/account/wizard/account_financial_report_view.xml index 39c4fac83fd..8388284be4a 100644 --- a/addons/account/wizard/account_financial_report_view.xml +++ b/addons/account/wizard/account_financial_report_view.xml @@ -5,7 +5,6 @@ <record id="accounting_report_view" model="ir.ui.view"> <field name="name">Accounting Report</field> <field name="model">accounting.report</field> - <field name="type">form</field> <field name="inherit_id" ref="account.account_common_report_view"/> <field name="arch" type="xml"> <xpath expr="//field[@name='target_move']" position="after"> diff --git a/addons/account/wizard/account_fiscalyear_close_state.xml b/addons/account/wizard/account_fiscalyear_close_state.xml index a4b558ab163..a4863f17ec5 100644 --- a/addons/account/wizard/account_fiscalyear_close_state.xml +++ b/addons/account/wizard/account_fiscalyear_close_state.xml @@ -4,7 +4,6 @@ <record id="view_account_fiscalyear_close_state" model="ir.ui.view"> <field name="name">account.fiscalyear.close.state.form</field> <field name="model">account.fiscalyear.close.state</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Close states of Fiscal year and periods" version="7.0"> <group> diff --git a/addons/account/wizard/account_fiscalyear_close_view.xml b/addons/account/wizard/account_fiscalyear_close_view.xml index 8c4df8548f6..4708c7bb4f4 100644 --- a/addons/account/wizard/account_fiscalyear_close_view.xml +++ b/addons/account/wizard/account_fiscalyear_close_view.xml @@ -4,7 +4,6 @@ <record id="view_account_fiscalyear_close" model="ir.ui.view"> <field name="name">account.fiscalyear.close.form</field> <field name="model">account.fiscalyear.close</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Generate Fiscal Year Opening Entries" version="7.0"> <separator string="Generate Fiscal Year Opening Entries"/> diff --git a/addons/account/wizard/account_invoice_refund_view.xml b/addons/account/wizard/account_invoice_refund_view.xml index 08db574e9ac..78a9b085bf1 100644 --- a/addons/account/wizard/account_invoice_refund_view.xml +++ b/addons/account/wizard/account_invoice_refund_view.xml @@ -5,7 +5,6 @@ <record id="view_account_invoice_refund" model="ir.ui.view"> <field name="name">account.invoice.refund.form</field> <field name="model">account.invoice.refund</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Credit Note" version="7.0"> <separator string="Credit Note Options"/> diff --git a/addons/account/wizard/account_invoice_state_view.xml b/addons/account/wizard/account_invoice_state_view.xml index 0ea2eefebc5..11703a4f259 100644 --- a/addons/account/wizard/account_invoice_state_view.xml +++ b/addons/account/wizard/account_invoice_state_view.xml @@ -4,7 +4,6 @@ <record id="account_invoice_confirm_view" model="ir.ui.view"> <field name="name">account.invoice.confirm.form</field> <field name="model">account.invoice.confirm</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Confirm Draft Invoices" version="7.0"> <separator string="Confirm Draft Invoices"/> @@ -26,7 +25,6 @@ <record id="account_invoice_cancel_view" model="ir.ui.view"> <field name="name">account.invoice.cancel.form</field> <field name="model">account.invoice.cancel</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Cancel Selected Invoices" version="7.0"> <separator string="Cancel Selected Invoices"/> diff --git a/addons/account/wizard/account_journal_select_view.xml b/addons/account/wizard/account_journal_select_view.xml index af0b50168de..ec1bee35901 100644 --- a/addons/account/wizard/account_journal_select_view.xml +++ b/addons/account/wizard/account_journal_select_view.xml @@ -5,7 +5,6 @@ <record id="open_journal_button_view" model="ir.ui.view"> <field name="name">Open Journal Button</field> <field name="model">account.journal.select</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Journal Select" version="7.0"> <label string="Are you sure you want to open Journal Entries?"/> diff --git a/addons/account/wizard/account_move_bank_reconcile_view.xml b/addons/account/wizard/account_move_bank_reconcile_view.xml index bd0a25bcf70..39d31753c76 100644 --- a/addons/account/wizard/account_move_bank_reconcile_view.xml +++ b/addons/account/wizard/account_move_bank_reconcile_view.xml @@ -4,7 +4,6 @@ <record id="view_account_move_bank_reconcile" model="ir.ui.view"> <field name="name">account.move.bank.reconcile.form</field> <field name="model">account.move.bank.reconcile</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Bank reconciliation" version="7.0"> <group> diff --git a/addons/account/wizard/account_move_journal_view.xml b/addons/account/wizard/account_move_journal_view.xml index 72ee1a525d9..17250e74c9d 100644 --- a/addons/account/wizard/account_move_journal_view.xml +++ b/addons/account/wizard/account_move_journal_view.xml @@ -5,7 +5,6 @@ <record id="view_account_move_journal_form" model="ir.ui.view"> <field name="name">account.move.journal.form</field> <field name="model">account.move.journal</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Standard Entries"> <field name="target_move"/> diff --git a/addons/account/wizard/account_move_line_reconcile_select_view.xml b/addons/account/wizard/account_move_line_reconcile_select_view.xml index 1e36cc8bafe..e7c6268c14e 100644 --- a/addons/account/wizard/account_move_line_reconcile_select_view.xml +++ b/addons/account/wizard/account_move_line_reconcile_select_view.xml @@ -4,7 +4,6 @@ <record id="view_account_move_line_reconcile_select" model="ir.ui.view"> <field name="name">account.move.line.reconcile.select.form</field> <field name="model">account.move.line.reconcile.select</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Reconciliation" version="7.0"> <group> diff --git a/addons/account/wizard/account_move_line_select_view.xml b/addons/account/wizard/account_move_line_select_view.xml index ade86e29c50..50233858d9d 100644 --- a/addons/account/wizard/account_move_line_select_view.xml +++ b/addons/account/wizard/account_move_line_select_view.xml @@ -5,7 +5,6 @@ <record id="account_move_line_select_button_view" model="ir.ui.view"> <field name="name">Open Move Line Button</field> <field name="model">account.move.line.select</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Account Select" version="7.0"> <label string="Are you sure you want to open Account move line entries?"/> diff --git a/addons/account/wizard/account_move_line_unreconcile_select_view.xml b/addons/account/wizard/account_move_line_unreconcile_select_view.xml index 63ba44ba8a7..757ebbffa8f 100644 --- a/addons/account/wizard/account_move_line_unreconcile_select_view.xml +++ b/addons/account/wizard/account_move_line_unreconcile_select_view.xml @@ -4,7 +4,6 @@ <record id="view_account_move_line_unreconcile_select" model="ir.ui.view"> <field name="name">account.move.line.unreconcile.select.form</field> <field name="model">account.move.line.unreconcile.select</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Unreconciliation" version="7.0"> <group> diff --git a/addons/account/wizard/account_open_closed_fiscalyear_view.xml b/addons/account/wizard/account_open_closed_fiscalyear_view.xml index 7f950e4cf53..c2c271af41b 100644 --- a/addons/account/wizard/account_open_closed_fiscalyear_view.xml +++ b/addons/account/wizard/account_open_closed_fiscalyear_view.xml @@ -4,7 +4,6 @@ <record id="view_account_open_closed_fiscalyear" model="ir.ui.view"> <field name="name">account.open.closed.fiscalyear.form</field> <field name="model">account.open.closed.fiscalyear</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Choose Fiscal Year " version="7.0"> <group> diff --git a/addons/account/wizard/account_period_close_view.xml b/addons/account/wizard/account_period_close_view.xml index c6aa828e3ce..98f485d07df 100644 --- a/addons/account/wizard/account_period_close_view.xml +++ b/addons/account/wizard/account_period_close_view.xml @@ -5,7 +5,6 @@ <record id="view_account_period_close" model="ir.ui.view"> <field name="name">account.period.close.form</field> <field name="model">account.period.close</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Close Period" version="7.0"> <group string="Are you sure?"> diff --git a/addons/account/wizard/account_reconcile_partner_process_view.xml b/addons/account/wizard/account_reconcile_partner_process_view.xml index ffa298bf22d..3dcfceb2159 100644 --- a/addons/account/wizard/account_reconcile_partner_process_view.xml +++ b/addons/account/wizard/account_reconcile_partner_process_view.xml @@ -4,7 +4,6 @@ <record id="account_partner_reconcile_view" model="ir.ui.view"> <field name="name">Partner Reconcilation Process</field> <field name="model">account.partner.reconcile.process</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Partner Reconciliation" version="7.0"> <group col="4"> diff --git a/addons/account/wizard/account_reconcile_view.xml b/addons/account/wizard/account_reconcile_view.xml index d6344f2cbc1..184ce1aaab0 100644 --- a/addons/account/wizard/account_reconcile_view.xml +++ b/addons/account/wizard/account_reconcile_view.xml @@ -5,7 +5,6 @@ <record id="view_account_move_line_reconcile_full" model="ir.ui.view"> <field name="name">account.move.line.reconcile.full.form</field> <field name="model">account.move.line.reconcile</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Reconciliation" version="7.0"> <group col="4" string="Reconciliation Transactions"> @@ -48,7 +47,6 @@ <record id="account_move_line_reconcile_writeoff" model="ir.ui.view"> <field name="name">account.move.line.reconcile.writeoff.form</field> <field name="model">account.move.line.reconcile.writeoff</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Information addendum" version="7.0"> <header> diff --git a/addons/account/wizard/account_report_account_balance_view.xml b/addons/account/wizard/account_report_account_balance_view.xml index c42e0bc38ad..b2c8ccd3011 100644 --- a/addons/account/wizard/account_report_account_balance_view.xml +++ b/addons/account/wizard/account_report_account_balance_view.xml @@ -6,7 +6,6 @@ <record id="account_report_balance_view" model="ir.ui.view"> <field name="name">Trial Balance</field> <field name="model">account.balance.report</field> - <field name="type">form</field> <field name="inherit_id" ref="account_common_report_view" /> <field name="arch" type="xml"> <data> diff --git a/addons/account/wizard/account_report_aged_partner_balance_view.xml b/addons/account/wizard/account_report_aged_partner_balance_view.xml index 0e82603ced1..77ebf02570f 100644 --- a/addons/account/wizard/account_report_aged_partner_balance_view.xml +++ b/addons/account/wizard/account_report_aged_partner_balance_view.xml @@ -5,7 +5,6 @@ <record id="account_aged_balance_view" model="ir.ui.view"> <field name="name">Aged Partner Balance</field> <field name="model">account.aged.trial.balance</field> - <field name="type">form</field> <!--<field name="inherit_id" ref="account_common_report_view" />--> <field name="arch" type="xml"> <form string="Report Options" version="7.0"> diff --git a/addons/account/wizard/account_report_central_journal_view.xml b/addons/account/wizard/account_report_central_journal_view.xml index b139f0f2c43..2819d93471d 100644 --- a/addons/account/wizard/account_report_central_journal_view.xml +++ b/addons/account/wizard/account_report_central_journal_view.xml @@ -6,7 +6,6 @@ <field name="name">Account central Journal</field> <field name="model">account.central.journal</field> <field name="inherit_id" ref="account_common_report_view" /> - <field name="type">form</field> <field name="arch" type="xml"> <field name="target_move" position="after"> <field name="amount_currency"/> diff --git a/addons/account/wizard/account_report_common_view.xml b/addons/account/wizard/account_report_common_view.xml index 18953270e09..688f9e6de47 100644 --- a/addons/account/wizard/account_report_common_view.xml +++ b/addons/account/wizard/account_report_common_view.xml @@ -5,7 +5,6 @@ <record id="account_common_report_view" model="ir.ui.view"> <field name="name">Common Report</field> <field name="model">account.common.report</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Report Options" version="7.0"> <label string=""/> <!-- binding for inherited views --> diff --git a/addons/account/wizard/account_report_general_journal_view.xml b/addons/account/wizard/account_report_general_journal_view.xml index 93c82cd5810..fc57789d0b7 100644 --- a/addons/account/wizard/account_report_general_journal_view.xml +++ b/addons/account/wizard/account_report_general_journal_view.xml @@ -5,7 +5,6 @@ <record id="account_report_general_journal_view" model="ir.ui.view"> <field name="name">Account General Journal</field> <field name="model">account.general.journal</field> - <field name="type">form</field> <field name="inherit_id" ref="account_common_report_view" /> <field name="arch" type="xml"> <data> diff --git a/addons/account/wizard/account_report_general_ledger_view.xml b/addons/account/wizard/account_report_general_ledger_view.xml index 5078eeac88b..b636101ee79 100644 --- a/addons/account/wizard/account_report_general_ledger_view.xml +++ b/addons/account/wizard/account_report_general_ledger_view.xml @@ -5,7 +5,6 @@ <record id="account_report_general_ledger_view" model="ir.ui.view"> <field name="name">General Ledger</field> <field name="model">account.report.general.ledger</field> - <field name="type">form</field> <field name="inherit_id" ref="account_common_report_view" /> <field name="arch" type="xml"> <data> @@ -26,7 +25,6 @@ <record id="account_report_general_ledger_view_inherit" model="ir.ui.view"> <field name="name">General Ledger</field> <field name="model">account.report.general.ledger</field> - <field name="type">form</field> <field name="inherit_id" ref="account_report_general_ledger_view" /> <field name="arch" type="xml"> <field name="fiscalyear_id" position="replace"> diff --git a/addons/account/wizard/account_report_partner_balance_view.xml b/addons/account/wizard/account_report_partner_balance_view.xml index 3d3e020050c..6df8dd474c6 100644 --- a/addons/account/wizard/account_report_partner_balance_view.xml +++ b/addons/account/wizard/account_report_partner_balance_view.xml @@ -5,7 +5,6 @@ <record id="account_partner_balance_view" model="ir.ui.view"> <field name="name">Partner Balance</field> <field name="model">account.partner.balance</field> - <field name="type">form</field> <field name="inherit_id" ref="account_common_report_view" /> <field name="arch" type="xml"> <data> diff --git a/addons/account/wizard/account_report_partner_ledger_view.xml b/addons/account/wizard/account_report_partner_ledger_view.xml index 1bc223a956d..f3dd9a80f09 100644 --- a/addons/account/wizard/account_report_partner_ledger_view.xml +++ b/addons/account/wizard/account_report_partner_ledger_view.xml @@ -5,7 +5,6 @@ <record id="account_partner_ledger_view" model="ir.ui.view"> <field name="name">Partner Ledger</field> <field name="model">account.partner.ledger</field> - <field name="type">form</field> <field name="inherit_id" ref="account_common_report_view" /> <field name="arch" type="xml"> <data> diff --git a/addons/account/wizard/account_report_print_journal_view.xml b/addons/account/wizard/account_report_print_journal_view.xml index 9a2ef25a1fe..ae8049d579e 100644 --- a/addons/account/wizard/account_report_print_journal_view.xml +++ b/addons/account/wizard/account_report_print_journal_view.xml @@ -5,7 +5,6 @@ <record id="account_report_print_journal" model="ir.ui.view"> <field name="name">Account Print Journal</field> <field name="model">account.print.journal</field> - <field name="type">form</field> <field name="inherit_id" ref="account_common_report_view" /> <field name="arch" type="xml"> <data> diff --git a/addons/account/wizard/account_state_open_view.xml b/addons/account/wizard/account_state_open_view.xml index 5e53fb66d0f..5139ccc7137 100644 --- a/addons/account/wizard/account_state_open_view.xml +++ b/addons/account/wizard/account_state_open_view.xml @@ -5,7 +5,6 @@ <record id="view_account_state_open" model="ir.ui.view"> <field name="name">Account State Open</field> <field name="model">account.state.open</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Open Invoice" version="7.0"> <label string="Are you sure you want to open this invoice ?"/> diff --git a/addons/account/wizard/account_subscription_generate_view.xml b/addons/account/wizard/account_subscription_generate_view.xml index e32439537d7..c988d73c2aa 100644 --- a/addons/account/wizard/account_subscription_generate_view.xml +++ b/addons/account/wizard/account_subscription_generate_view.xml @@ -5,7 +5,6 @@ <record id="view_account_subscription_generate" model="ir.ui.view"> <field name="name">account.subscription.generate.form</field> <field name="model">account.subscription.generate</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Subscription Compute" version="7.0"> <group> diff --git a/addons/account/wizard/account_tax_chart_view.xml b/addons/account/wizard/account_tax_chart_view.xml index 08091ce1bda..66f0b957b43 100644 --- a/addons/account/wizard/account_tax_chart_view.xml +++ b/addons/account/wizard/account_tax_chart_view.xml @@ -5,7 +5,6 @@ <record id="view_account_tax_chart" model="ir.ui.view"> <field name="name">account.tax.chart.form</field> <field name="model">account.tax.chart</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Account tax charts" version="7.0"> <group> diff --git a/addons/account/wizard/account_unreconcile_view.xml b/addons/account/wizard/account_unreconcile_view.xml index dc3cf7b748a..785469aad51 100644 --- a/addons/account/wizard/account_unreconcile_view.xml +++ b/addons/account/wizard/account_unreconcile_view.xml @@ -5,7 +5,6 @@ <record id="account_unreconcile_view" model="ir.ui.view"> <field name="name">Unreconcile Entries</field> <field name="model">account.unreconcile</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Unreconciliation" version="7.0"> <separator string="Unreconciliate Transactions"/> @@ -40,7 +39,6 @@ <record id="account_unreconcile_reconcile_view" model="ir.ui.view"> <field name="name">Unreconcile Entries</field> <field name="model">account.unreconcile.reconcile</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Unreconciliation" version="7.0"> <header> diff --git a/addons/account/wizard/account_use_model_view.xml b/addons/account/wizard/account_use_model_view.xml index 6170ca4fe12..7e3e70af202 100644 --- a/addons/account/wizard/account_use_model_view.xml +++ b/addons/account/wizard/account_use_model_view.xml @@ -5,7 +5,6 @@ <record id="view_account_use_model" model="ir.ui.view"> <field name="name">account.use.model.form</field> <field name="model">account.use.model</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Create Entries From Models" version="7.0"> <group> @@ -35,7 +34,6 @@ <record id="view_account_use_model_create_entry" model="ir.ui.view"> <field name="name">account.use.model.create.entry.form</field> <field name="model">account.use.model</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Use Model" version="7.0"> <label string = "Are you sure you want to create entries?"/> diff --git a/addons/account/wizard/account_validate_move_view.xml b/addons/account/wizard/account_validate_move_view.xml index 991921710a7..6a9b1e159f0 100644 --- a/addons/account/wizard/account_validate_move_view.xml +++ b/addons/account/wizard/account_validate_move_view.xml @@ -6,7 +6,6 @@ <record id="validate_account_move_view" model="ir.ui.view"> <field name="name">Post Journal Entries</field> <field name="model">validate.account.move</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Post Journal Entries" version="7.0"> <group> @@ -43,7 +42,6 @@ <record id="validate_account_move_line_view" model="ir.ui.view"> <field name="name">Post Journal Entries</field> <field name="model">validate.account.move.lines</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Post Journal Entries" version="7.0"> <separator string="Post Journal Entries"/> diff --git a/addons/account/wizard/account_vat_view.xml b/addons/account/wizard/account_vat_view.xml index 0a53a6207c5..83667914a6a 100644 --- a/addons/account/wizard/account_vat_view.xml +++ b/addons/account/wizard/account_vat_view.xml @@ -5,7 +5,6 @@ <record id="view_account_vat_declaration" model="ir.ui.view"> <field name="name">Account Tax Declaration</field> <field name="model">account.vat.declaration</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Taxes Report" version="7.0"> <label colspan="4" string="This menu prints a tax declaration based on invoices or payments. Select one or several periods of the fiscal year. The information required for a tax declaration is automatically generated by OpenERP from invoices (or payments, in some countries). This data is updated in real time. That’s very useful because it enables you to preview at any time the tax that you owe at the start and end of the month or quarter."/> diff --git a/addons/account/wizard/pos_box.xml b/addons/account/wizard/pos_box.xml index 46f4eeb3699..469a46ebcc5 100644 --- a/addons/account/wizard/pos_box.xml +++ b/addons/account/wizard/pos_box.xml @@ -4,7 +4,6 @@ <record model="ir.ui.view" id="cash_box_in_form"> <field name="name">cash_box_in</field> <field name="model">cash.box.in</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Put Money In" version="7.0"> <separator string="Fill in this form if you put money in the cash register:" colspan="4" /> @@ -33,7 +32,6 @@ <record model="ir.ui.view" id="cash_box_out_form"> <field name="name">cash_box_out</field> <field name="model">cash.box.out</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Take Money Out" version="7.0"> <separator string="Describe why you take money from the cash register:"/> diff --git a/addons/account_analytic_analysis/account_analytic_analysis_menu.xml b/addons/account_analytic_analysis/account_analytic_analysis_menu.xml index 537397fd369..9e5be21cf70 100644 --- a/addons/account_analytic_analysis/account_analytic_analysis_menu.xml +++ b/addons/account_analytic_analysis/account_analytic_analysis_menu.xml @@ -16,7 +16,6 @@ <record id="view_account_analytic_account_overdue_search" model="ir.ui.view"> <field name="name">account.analytic.account.search</field> <field name="model">account.analytic.account</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Analytic Account"> <field name="name" filter_domain="['|', ('name','ilike',self),('code','ilike',self)]" string="Contract"/> diff --git a/addons/account_analytic_analysis/account_analytic_analysis_view.xml b/addons/account_analytic_analysis/account_analytic_analysis_view.xml index 32839063f02..cd043749309 100644 --- a/addons/account_analytic_analysis/account_analytic_analysis_view.xml +++ b/addons/account_analytic_analysis/account_analytic_analysis_view.xml @@ -16,7 +16,6 @@ <record id="account_analytic_account_form_form" model="ir.ui.view"> <field name="name">account.analytic.account.invoice.form.inherit</field> <field name="model">account.analytic.account</field> - <field name="type">form</field> <field name="inherit_id" ref="analytic.view_account_analytic_account_form"/> <field eval="40" name="priority"/> <field name="arch" type="xml"> @@ -101,7 +100,6 @@ <field name="name">account.analytic.account.tree</field> <field name="model">account.analytic.account</field> <field name="inherit_id" ref="account.view_account_analytic_account_list"/> - <field name="type">tree</field> <field name="arch" type="xml"> <field name="date" position="before"> <field name="last_invoice_date"/> diff --git a/addons/account_analytic_analysis/cron_account_analytic_account.py b/addons/account_analytic_analysis/cron_account_analytic_account.py index caa9067b227..065fdc5b907 100644 --- a/addons/account_analytic_analysis/cron_account_analytic_account.py +++ b/addons/account_analytic_analysis/cron_account_analytic_account.py @@ -53,7 +53,7 @@ class analytic_account(osv.osv): ('name', 'not ilike', 'maintenance'), ('partner_id', '!=', False), ('user_id', '!=', False), - ('user_id.user_email', '!=', False), + ('user_id.email', '!=', False), ('state', 'in', ('draft', 'open')), '|', ('date', '<', time.strftime('%Y-%m-%d')), ('date', '=', False), ] @@ -70,7 +70,7 @@ class analytic_account(osv.osv): for user, data in users.iteritems(): subject = '[OPENERP] Reporting: Analytic Accounts' body = Template(MAKO_TEMPLATE).render_unicode(user=user, partners=data) - tools.email_send('noreply@openerp.com', [user.user_email, ], subject, body) + tools.email_send('noreply@openerp.com', [user.email, ], subject, body) return True diff --git a/addons/account_analytic_default/account_analytic_default_view.xml b/addons/account_analytic_default/account_analytic_default_view.xml index 3e2ba0fe5f3..ff09fb4b0db 100644 --- a/addons/account_analytic_default/account_analytic_default_view.xml +++ b/addons/account_analytic_default/account_analytic_default_view.xml @@ -4,7 +4,6 @@ <record id="view_account_analytic_default_tree" model="ir.ui.view"> <field name="name">account.analytic.default.tree</field> <field name="model">account.analytic.default</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Analytic Defaults"> <field name="sequence"/> @@ -22,7 +21,6 @@ <record id="view_account_analytic_default_form" model="ir.ui.view"> <field name="name">account.analytic.default.form</field> <field name="model">account.analytic.default</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Analytic Defaults" version="7.0"> <group col="4"> @@ -43,7 +41,6 @@ <record id="view_account_analytic_default_form_search" model="ir.ui.view"> <field name="name">account.analytic.default.search</field> <field name="model">account.analytic.default</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Accounts"> <field name="date_stop"/> diff --git a/addons/account_analytic_plans/account_analytic_plans_view.xml b/addons/account_analytic_plans/account_analytic_plans_view.xml index 045a0eb0cbb..76d6aeed7b8 100644 --- a/addons/account_analytic_plans/account_analytic_plans_view.xml +++ b/addons/account_analytic_plans/account_analytic_plans_view.xml @@ -7,7 +7,6 @@ <record model="ir.ui.view" id="view_account_journal_form_inherit"> <field name="name">account.journal.form.inherit</field> <field name="model">account.journal</field> - <field name="type">form</field> <field name="inherit_id" ref="account.view_account_journal_form"/> <field name="arch" type="xml"> <field name="centralisation" position="before"> @@ -19,7 +18,6 @@ <record id="view_move_form_inherit" model="ir.ui.view"> <field name="name">account.move.form.inherit</field> <field name="model">account.move</field> - <field name="type">form</field> <field name="inherit_id" ref="account.view_move_form"/> <field name="arch" type="xml"> <xpath expr="/form/sheet/notebook/page/field[@name='line_id']/tree/field[@name='analytic_account_id']" position="replace"> @@ -43,7 +41,6 @@ <record model="ir.ui.view" id="view_move_line_form_inherit"> <field name="name">account.move.line.form.inherit</field> <field name="model">account.move.line</field> - <field name="type">form</field> <field name="inherit_id" ref="account.view_move_line_form"/> <field name="arch" type="xml"> <field name="analytic_account_id" position="replace"> @@ -55,7 +52,6 @@ <record model="ir.ui.view" id="view_move_line_form_1_inherit"> <field name="name">account.move.line.form.inherit1</field> <field name="model">account.move.line</field> - <field name="type">form</field> <field name="priority">2</field> <field name="inherit_id" ref="account.view_move_line_form2"/> <field name="arch" type="xml"> @@ -68,7 +64,6 @@ <record model="ir.ui.view" id="view_move_line_tree_inherit"> <field name="name">account.move.line.tree.inherit</field> <field name="model">account.move.line</field> - <field name="type">tree</field> <field name="priority">2</field> <field name="inherit_id" ref="account.view_move_line_tree"/> <field name="arch" type="xml"> @@ -84,7 +79,6 @@ <field name="name">account.invoice.line.form.inherit</field> <field name="model">account.invoice.line</field> <field name="inherit_id" ref="account.view_invoice_line_form"/> - <field name="type">form</field> <field name="arch" type="xml"> <field name="account_analytic_id" position="replace"> <field name="analytics_id" context="{'journal_id':parent.journal_id}" domain="[('plan_id','<>',False)]" groups="analytic.group_analytic_accounting"/> @@ -95,7 +89,6 @@ <record model="ir.ui.view" id="invoice_supplier_form_inherit"> <field name="name">account.invoice.supplier.form.inherit</field> <field name="model">account.invoice</field> - <field name="type">form</field> <field name="inherit_id" ref="account.invoice_supplier_form"/> <field name="priority">2</field> <field name="arch" type="xml"> @@ -109,7 +102,6 @@ <record model="ir.ui.view" id="account_analytic_plan_instance_form"> <field name="name">account.analytic.plan.instance.form</field> <field name="model">account.analytic.plan.instance</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Analytic Distribution" version="7.0"> <group col="4"> @@ -135,7 +127,6 @@ <record model="ir.ui.view" id="account_analytic_plan_instance_tree"> <field name="name">account.analytic.plan.instance.tree</field> <field name="model">account.analytic.plan.instance</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Analytic Distribution"> <field name="name"/> @@ -165,7 +156,6 @@ <record model="ir.ui.view" id="account_analytic_plan_instance_line_form"> <field name="name">account.analytic.plan.instance.line.form</field> <field name="model">account.analytic.plan.instance.line</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Analytic Distribution Line" version="7.0"> <group col="4"> @@ -180,7 +170,6 @@ <record model="ir.ui.view" id="account_analytic_plan_instance_line_tree"> <field name="name">account.analytic.plan.instance.line.tree</field> <field name="model">account.analytic.plan.instance.line</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Analytic Distribution Lines"> <field name="plan_id"/> @@ -193,7 +182,6 @@ <record model="ir.ui.view" id="account_analytic_plan_search"> <field name="name">account.analytic.plan.search</field> <field name="model">account.analytic.plan</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Analytic Plans"> <field name="name" string="Analytic Plan"/> @@ -204,7 +192,6 @@ <record model="ir.ui.view" id="account_analytic_plan_form"> <field name="name">account.analytic.plan.form</field> <field name="model">account.analytic.plan</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Analytic Plan" version="7.0"> <group col="4"> @@ -219,7 +206,6 @@ <record model="ir.ui.view" id="account_analytic_plan_tree"> <field name="name">account.analytic.plan.tree</field> <field name="model">account.analytic.plan</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Analytic Plans"> <field name="name"/> @@ -250,7 +236,6 @@ <record model="ir.ui.view" id="account_analytic_plan_line_form"> <field name="name">account.analytic.plan.line.form</field> <field name="model">account.analytic.plan.line</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Analytic Plan Line" version="7.0"> <group col="4"> @@ -268,7 +253,6 @@ <record model="ir.ui.view" id="account_analytic_plan_line_tree"> <field name="name">account.analytic.plan.line.tree</field> <field name="model">account.analytic.plan.line</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Analytic Plan Lines"> <field name="name"/> @@ -284,7 +268,6 @@ <record model="ir.ui.view" id="view_default_inherit_form"> <field name="name">account.analytic.default.form.plans</field> - <field name="type">form</field> <field name="model">account.analytic.default</field> <field name="inherit_id" ref="account_analytic_default.view_account_analytic_default_form"/> <field name="arch" type="xml"> @@ -295,7 +278,6 @@ </record> <record model="ir.ui.view" id="view_default_inherit_tree"> <field name="name">account.analytic.default.tree.plans</field> - <field name="type">tree</field> <field name="model">account.analytic.default</field> <field name="inherit_id" ref="account_analytic_default.view_account_analytic_default_tree"/> <field name="arch" type="xml"> @@ -308,7 +290,6 @@ <record id="view_bank_statement_inherit_form" model="ir.ui.view"> <field name="name">account.bank.statement.form.inherit</field> <field name="model">account.bank.statement</field> - <field name="type">form</field> <field name="inherit_id" ref="account.view_bank_statement_form"/> <field name="arch" type="xml"> <xpath expr="/form/sheet/notebook/page/field[@name='line_ids']/tree/field[@name='analytic_account_id']" position="replace"> diff --git a/addons/account_analytic_plans/wizard/account_crossovered_analytic_view.xml b/addons/account_analytic_plans/wizard/account_crossovered_analytic_view.xml index c25705572d1..07e2ca19cd9 100644 --- a/addons/account_analytic_plans/wizard/account_crossovered_analytic_view.xml +++ b/addons/account_analytic_plans/wizard/account_crossovered_analytic_view.xml @@ -5,7 +5,6 @@ <record id="view_account_crossovered_analytic" model="ir.ui.view"> <field name="name">account.crossovered.analytic.form</field> <field name="model">account.crossovered.analytic</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Crossovered Analytic" version="7.0"> <group col="4"> diff --git a/addons/account_analytic_plans/wizard/analytic_plan_create_model_view.xml b/addons/account_analytic_plans/wizard/analytic_plan_create_model_view.xml index 5b8a11f2587..fdc7fa6868a 100644 --- a/addons/account_analytic_plans/wizard/analytic_plan_create_model_view.xml +++ b/addons/account_analytic_plans/wizard/analytic_plan_create_model_view.xml @@ -4,7 +4,6 @@ <record id="view_analytic_plan_create_model_msg" model="ir.ui.view"> <field name="name">analytic.plan.create.model.msg.form</field> <field name="model">analytic.plan.create.model</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Distribution Model Saved" version="7.0"> <label string="Save This Distribution as a Model"/> @@ -20,7 +19,6 @@ <record id="view_analytic_plan_create_model" model="ir.ui.view"> <field name="name">analytic.plan.create.model.form</field> <field name="model">analytic.plan.create.model</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Distribution Model Saved" version="7.0"> <label string="This distribution model has been saved.You will be able to reuse it later."/> diff --git a/addons/account_anglo_saxon/product_view.xml b/addons/account_anglo_saxon/product_view.xml index b88f8f2db42..4acc69b7595 100644 --- a/addons/account_anglo_saxon/product_view.xml +++ b/addons/account_anglo_saxon/product_view.xml @@ -4,7 +4,6 @@ <record id="product_normal_form_view" model="ir.ui.view"> <field name="name">product.normal.form.inherit.stock</field> <field name="model">product.product</field> - <field name="type">form</field> <field name="inherit_id" ref="account.product_normal_form_view"/> <field name="arch" type="xml"> <xpath expr="//field[@name='property_account_expense']" position="after"> @@ -18,7 +17,6 @@ <record id="product_template_form_view" model="ir.ui.view"> <field name="name">product.template.product.form.inherit</field> <field name="model">product.template</field> - <field name="type">form</field> <field name="inherit_id" ref="account.product_template_form_view"/> <field name="arch" type="xml"> <xpath expr="/form/notebook/page/field[@name='property_account_expense']" position="after"> @@ -31,7 +29,6 @@ <record id="view_category_property_form" model="ir.ui.view"> <field name="name">product.category.property.form.inherit.stock</field> <field name="model">product.category</field> - <field name="type">form</field> <field name="inherit_id" ref="product.product_category_form_view"/> <field name="arch" type="xml"> <data> diff --git a/addons/account_asset/account_asset_invoice_view.xml b/addons/account_asset/account_asset_invoice_view.xml index 40ee51e10b8..eb6403b6f48 100644 --- a/addons/account_asset/account_asset_invoice_view.xml +++ b/addons/account_asset/account_asset_invoice_view.xml @@ -7,7 +7,6 @@ <field name="name">account.invoice.line.form</field> <field name="model">account.invoice.line</field> <field name="inherit_id" ref="account.view_invoice_line_form"/> - <field name="type">form</field> <field name="arch" type="xml"> <field name="account_id" position="after"> <field name="asset_category_id"/> diff --git a/addons/account_asset/account_asset_view.xml b/addons/account_asset/account_asset_view.xml index cdc772ad65d..c230f63e204 100644 --- a/addons/account_asset/account_asset_view.xml +++ b/addons/account_asset/account_asset_view.xml @@ -8,7 +8,6 @@ <record model="ir.ui.view" id="view_account_asset_category_form"> <field name="name">account.asset.category.form</field> <field name="model">account.asset.category</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Asset category" version="7.0"> <group> @@ -47,7 +46,6 @@ <record model="ir.ui.view" id="view_account_asset_category_tree"> <field name="name">account.asset.category.tree</field> <field name="model">account.asset.category</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Asset category"> <field name="name"/> @@ -61,7 +59,6 @@ <record model="ir.ui.view" id="view_account_asset_category_search"> <field name="name">account.asset.category.search</field> <field name="model">account.asset.category</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Search Asset Category"> <field name="name" string="Asset Category"/> @@ -77,7 +74,6 @@ <record model="ir.ui.view" id="view_account_asset_asset_form"> <field name="name">account.asset.asset.form</field> <field name="model">account.asset.asset</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Asset" version="7.0"> <header> @@ -187,7 +183,6 @@ <record model="ir.ui.view" id="view_account_asset_asset_tree"> <field name="name">account.asset.asset.tree</field> <field name="model">account.asset.asset</field> - <field name="type">tree</field> <field name="field_parent">child_ids</field> <field name="arch" type="xml"> <tree string="Assets" colors="blue:(state == 'draft');grey:(state == 'close')"> @@ -207,7 +202,6 @@ <record model="ir.ui.view" id="view_account_asset_asset_hierarchy_tree"> <field name="name">account.asset.asset.hierarchy</field> <field name="model">account.asset.asset</field> - <field name="type">tree</field> <field name="field_parent">child_ids</field> <field name="arch" type="xml"> <tree string="Assets"> @@ -227,7 +221,6 @@ <record id="view_account_asset_search" model="ir.ui.view"> <field name="name">account.asset.asset.search</field> <field name="model">account.asset.asset</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Account Asset"> <field name="name" string="Asset"/> @@ -247,7 +240,6 @@ <record model="ir.ui.view" id="view_account_asset_history_form"> <field name="name">account.asset.history.form</field> <field name="model">account.asset.history</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Asset History" version="7.0"> <group> @@ -272,7 +264,6 @@ <record model="ir.ui.view" id="view_account_asset_history_tree"> <field name="name">account.asset.history.tree</field> <field name="model">account.asset.history</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Asset history"> <field name="date"/> @@ -297,7 +288,6 @@ <record id="view_account_move_line_form_inherit" model="ir.ui.view"> <field name="name">Journal Items (form)</field> <field name="model">account.move.line</field> - <field name="type">form</field> <field name="inherit_id" ref="account.view_move_line_form"/> <field name="arch" type="xml"> <field name="statement_id" position="after"> @@ -309,7 +299,6 @@ <record id="view_account_move_line_filter_inherit" model="ir.ui.view"> <field name="name">Journal Items (Search)</field> <field name="model">account.move.line</field> - <field name="type">search</field> <field name="inherit_id" ref="account.view_account_move_line_filter"/> <field name="arch" type="xml"> <field name="account_id" position="after"> diff --git a/addons/account_asset/report/account_asset_report_view.xml b/addons/account_asset/report/account_asset_report_view.xml index 91f700fb92a..bc598011086 100644 --- a/addons/account_asset/report/account_asset_report_view.xml +++ b/addons/account_asset/report/account_asset_report_view.xml @@ -5,7 +5,6 @@ <record model="ir.ui.view" id="view_asset_asset_report_tree"> <field name="name">asset.asset.report.tree</field> <field name="model">asset.asset.report</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Assets"> <field name="name" invisible="1"/> @@ -28,7 +27,6 @@ <record model="ir.ui.view" id="action_account_asset_report_graph"> <field name="name">asset.asset.report.graph</field> <field name="model">asset.asset.report</field> - <field name="type">graph</field> <field name="arch" type="xml"> <graph string="Assets Analysis" type="bar"> <field name="asset_id"/> @@ -40,7 +38,6 @@ <record id="view_asset_asset_report_search" model="ir.ui.view"> <field name="name">asset.asset.report.search</field> <field name="model">asset.asset.report</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Assets Analysis"> <field name="purchase_date"/> diff --git a/addons/account_asset/wizard/account_asset_change_duration_view.xml b/addons/account_asset/wizard/account_asset_change_duration_view.xml index 15b11f4dcff..1c7f3458441 100644 --- a/addons/account_asset/wizard/account_asset_change_duration_view.xml +++ b/addons/account_asset/wizard/account_asset_change_duration_view.xml @@ -5,7 +5,6 @@ <record model="ir.ui.view" id="asset_modify_form"> <field name="name">wizard.asset.modify.form</field> <field name="model">asset.modify</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Modify Asset" version="7.0"> <group string="Asset Durations to Modify" col="4"> diff --git a/addons/account_asset/wizard/wizard_asset_compute_view.xml b/addons/account_asset/wizard/wizard_asset_compute_view.xml index e9b64a33a25..edabc6cc6de 100644 --- a/addons/account_asset/wizard/wizard_asset_compute_view.xml +++ b/addons/account_asset/wizard/wizard_asset_compute_view.xml @@ -4,7 +4,6 @@ <record id="view_asset_depreciation_confirmation_wizard" model="ir.ui.view"> <field name="name">asset.depreciation.confirmation.wizard</field> <field name="model">asset.depreciation.confirmation.wizard</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Compute Asset" version="7.0"> <group> diff --git a/addons/account_bank_statement_extensions/account_bank_statement_view.xml b/addons/account_bank_statement_extensions/account_bank_statement_view.xml index c77fb896840..30b2778817c 100644 --- a/addons/account_bank_statement_extensions/account_bank_statement_view.xml +++ b/addons/account_bank_statement_extensions/account_bank_statement_view.xml @@ -7,7 +7,6 @@ <record id="view_statement_line_global_form" model="ir.ui.view"> <field name="name">statement.line.global.form</field> <field name="model">account.bank.statement.line.global</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Batch Payment Info" version="7.0"> <group col="4"> @@ -41,7 +40,6 @@ <field name="name">view.bank.statement.form.add.fields</field> <field name="model">account.bank.statement</field> <field name="inherit_id" ref="account.view_bank_statement_form"/> - <field name="type">form</field> <field name="arch" type="xml"> <data> <xpath expr="//page[@name='statement_line_ids']/field[@name='line_ids']/tree/field[@name='date']" position="after"> @@ -67,7 +65,6 @@ <record id="view_bank_statement_line_list" model="ir.ui.view"> <field name="name">bank.statement.line.list</field> <field name="model">account.bank.statement.line</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree editable="bottom" string="Statement Lines"> <field name="sequence" readonly="1" invisible="1"/> @@ -92,7 +89,6 @@ <record id="view_bank_statement_line_form" model="ir.ui.view"> <field name="name">bank.statement.line.form</field> <field name="model">account.bank.statement.line</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Statement Line" version="7.0"> <group col="4"> @@ -120,7 +116,6 @@ <record id="view_bank_statement_line_filter" model="ir.ui.view"> <field name="name">bank.statement.line.filter</field> <field name="model">account.bank.statement.line</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Search Bank Transactions"> <field name="name" filter_domain="['|', ('name','ilike',self), ('ref','ilike',self)]" string="Bank Transaction"/> diff --git a/addons/account_bank_statement_extensions/wizard/cancel_statement_line_wizard.xml b/addons/account_bank_statement_extensions/wizard/cancel_statement_line_wizard.xml index 6d2e8e6683c..e5533658f4b 100644 --- a/addons/account_bank_statement_extensions/wizard/cancel_statement_line_wizard.xml +++ b/addons/account_bank_statement_extensions/wizard/cancel_statement_line_wizard.xml @@ -7,7 +7,6 @@ <record id="view_cancel_statement_line" model="ir.ui.view"> <field name="name">cancel.statement.line.form</field> <field name="model">cancel.statement.line</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Cancel selected statement lines" version="7.0"> <header> diff --git a/addons/account_bank_statement_extensions/wizard/confirm_statement_line_wizard.xml b/addons/account_bank_statement_extensions/wizard/confirm_statement_line_wizard.xml index 91a3a99c197..f8baab70b9f 100644 --- a/addons/account_bank_statement_extensions/wizard/confirm_statement_line_wizard.xml +++ b/addons/account_bank_statement_extensions/wizard/confirm_statement_line_wizard.xml @@ -7,7 +7,6 @@ <record id="view_confirm_statement_line" model="ir.ui.view"> <field name="name">confirm.statement.line.form</field> <field name="model">confirm.statement.line</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Confirm selected statement lines" version="7.0"> <header> diff --git a/addons/account_budget/account_budget_view.xml b/addons/account_budget/account_budget_view.xml index f3f4e5fc47d..21f9cc69b8a 100644 --- a/addons/account_budget/account_budget_view.xml +++ b/addons/account_budget/account_budget_view.xml @@ -15,7 +15,6 @@ <record id="view_budget_post_search" model="ir.ui.view"> <field name="name">account.budget.post.search</field> <field name="model">account.budget.post</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Budgetary Position"> <field name="name" filter_domain="['|', ('name','ilike',self), ('code','ilike',self)]" string="Budgetary Position"/> @@ -27,7 +26,6 @@ <record id="view_budget_post_tree" model="ir.ui.view"> <field name="name">account.budget.post.tree</field> <field name="model">account.budget.post</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Budgetary Position"> <field name="code"/> @@ -52,7 +50,6 @@ <record model="ir.ui.view" id="view_budget_post_form"> <field name="name">account.budget.post.form.inherit</field> <field name="model">account.budget.post</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Budgetary Position" version="7.0"> <group col="4"> @@ -105,9 +102,8 @@ <record model="ir.ui.view" id="crossovered_budget_view_form"> <field name="name">crossovered.budget.view.form</field> <field name="model">crossovered.budget</field> - <field name="type">form</field> <field name="arch" type="xml"> - <form version="7.0"> + <form string="Budget" version="7.0"> <header> <button string="Confirm" name="confirm" states="draft" type="workflow" class="oe_highlight"/> <button string="Approve" name="validate" states="confirm" type="workflow" class="oe_highlight"/> @@ -181,7 +177,6 @@ <record model="ir.ui.view" id="crossovered_budget_view_tree"> <field name="name">crossovered.budget.view.tree</field> <field name="model">crossovered.budget</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree colors="blue:state == 'draft';gray:state in ('done','cancel');black:state in ('confirm','validate')" string="Budget"> <field name="name" colspan="1"/> @@ -198,7 +193,6 @@ <record id="view_crossovered_budget_search" model="ir.ui.view"> <field name="name">crossovered.budget.search</field> <field name="model">crossovered.budget</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Budget"> <field name="name" filter_domain="['|', ('name','ilike',self), ('code','ilike',self)]" string="Budget"/> @@ -240,7 +234,6 @@ <record model="ir.ui.view" id="view_crossovered_budget_line_tree"> <field name="name">crossovered.budget.line.tree</field> <field name="model">crossovered.budget.lines</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Budget Lines"> <field name="analytic_account_id" groups="analytic.group_analytic_accounting"/> @@ -259,7 +252,6 @@ <record model="ir.ui.view" id="view_crossovered_budget_line_form"> <field name="name">crossovered.budget.line.form</field> <field name="model">crossovered.budget.lines</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Budget Lines" version="7.0"> <sheet> @@ -303,7 +295,6 @@ <record model="ir.ui.view" id="view_account_analytic_account_form_inherit_budget"> <field name="name">account.analytic.account.form.inherot.budget</field> - <field name="type">form</field> <field name="model">account.analytic.account</field> <field name="inherit_id" ref="analytic.view_account_analytic_account_form"/> <field name="arch" type="xml"> diff --git a/addons/account_budget/wizard/account_budget_analytic_view.xml b/addons/account_budget/wizard/account_budget_analytic_view.xml index c08f15a7410..6c5af8463c9 100644 --- a/addons/account_budget/wizard/account_budget_analytic_view.xml +++ b/addons/account_budget/wizard/account_budget_analytic_view.xml @@ -5,7 +5,6 @@ <record id="account_budget_analytic_view" model="ir.ui.view"> <field name="name">account.budget.analytic.form</field> <field name="model">account.budget.analytic</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Select Dates Period" version="7.0"> <group string="This wizard is used to print budget" col="4"> diff --git a/addons/account_budget/wizard/account_budget_crossovered_report_view.xml b/addons/account_budget/wizard/account_budget_crossovered_report_view.xml index 5f2ec7ee46c..0659971c9a0 100644 --- a/addons/account_budget/wizard/account_budget_crossovered_report_view.xml +++ b/addons/account_budget/wizard/account_budget_crossovered_report_view.xml @@ -5,7 +5,6 @@ <record id="account_budget_crossvered_report_view" model="ir.ui.view"> <field name="name">account.budget.crossvered.report.form</field> <field name="model">account.budget.crossvered.report</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Select Dates Period" version="7.0"> <group string="This wizard is used to print budget" col="4"> diff --git a/addons/account_budget/wizard/account_budget_crossovered_summary_report_view.xml b/addons/account_budget/wizard/account_budget_crossovered_summary_report_view.xml index 3e02604b746..b87bc2e18ac 100644 --- a/addons/account_budget/wizard/account_budget_crossovered_summary_report_view.xml +++ b/addons/account_budget/wizard/account_budget_crossovered_summary_report_view.xml @@ -5,7 +5,6 @@ <record id="account_budget_crossvered_summary_report_view" model="ir.ui.view"> <field name="name">account.budget.crossvered.summary.report.form</field> <field name="model">account.budget.crossvered.summary.report</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Select Dates Period" version="7.0"> <group string="This wizard is used to print summary of budgets"> diff --git a/addons/account_budget/wizard/account_budget_report_view.xml b/addons/account_budget/wizard/account_budget_report_view.xml index 984cbeefeef..d9905420608 100644 --- a/addons/account_budget/wizard/account_budget_report_view.xml +++ b/addons/account_budget/wizard/account_budget_report_view.xml @@ -5,7 +5,6 @@ <record id="account_budget_report_view" model="ir.ui.view"> <field name="name">account.budget.report.form</field> <field name="model">account.budget.report</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Select Dates Period" version="7.0"> <group string="Print Budgets" col="4"> diff --git a/addons/account_cancel/account_cancel_view.xml b/addons/account_cancel/account_cancel_view.xml index 9bf37134920..4ed8093a0aa 100644 --- a/addons/account_cancel/account_cancel_view.xml +++ b/addons/account_cancel/account_cancel_view.xml @@ -4,7 +4,6 @@ <record id="view_account_journal_form_inherit" model="ir.ui.view"> <field name="name">account.journal.form</field> <field name="model">account.journal</field> - <field name="type">form</field> <field name="inherit_id" ref="account.view_account_journal_form"/> <field name="arch" type="xml"> <field name="entry_posted" position="after"> @@ -16,7 +15,6 @@ <record id="invoice_form_cancel_inherit" model="ir.ui.view"> <field name="name">invoice.form.cancel.inherit</field> <field name="model">account.invoice</field> - <field name="type">form</field> <field name="inherit_id" ref="account.invoice_form"/> <field name="arch" type="xml"> <xpath expr="//button[@name='invoice_cancel']" position="replace"> @@ -28,7 +26,6 @@ <record id="invoice_supplier_cancel_form_inherit" model="ir.ui.view"> <field name="name">invoice.supplier.cancel.form.inherit</field> <field name="model">account.invoice</field> - <field name="type">form</field> <field name="inherit_id" ref="account.invoice_supplier_form"/> <field name="arch" type="xml"> <xpath expr="//button[@name='invoice_cancel']" position="replace"> diff --git a/addons/account_check_writing/account_view.xml b/addons/account_check_writing/account_view.xml index 5f9dd1dccbb..53dd1cb1c93 100644 --- a/addons/account_check_writing/account_view.xml +++ b/addons/account_check_writing/account_view.xml @@ -9,7 +9,6 @@ <record id="view_account_journal_form" model="ir.ui.view"> <field name="name">account.journal.form</field> <field name="model">account.journal</field> - <field name="type">form</field> <field name="inherit_id" ref="account.view_account_journal_form" /> <field name="arch" type="xml"> <field name="type" on_change="onchange_type(type, currency)" /> @@ -27,7 +26,6 @@ <record id="check_format_company" model="ir.ui.view"> <field name="name">res.company.check.format</field> <field name="model">res.company</field> - <field name="type">form</field> <field name="priority">17</field> <field name="inherit_id" ref="base.view_company_form"/> <field name="arch" type="xml"> diff --git a/addons/account_check_writing/account_voucher_view.xml b/addons/account_check_writing/account_voucher_view.xml index 96592b0da5a..520c78009d5 100644 --- a/addons/account_check_writing/account_voucher_view.xml +++ b/addons/account_check_writing/account_voucher_view.xml @@ -7,7 +7,6 @@ <record model="ir.ui.view" id="view_vendor_payment_check_form"> <field name="name">account.voucher.payment.check.form</field> <field name="model">account.voucher</field> - <field name="type">form</field> <field name="inherit_id" ref="account_voucher.view_vendor_payment_form" /> <field name="arch" type="xml"> <field name="journal_id" position="after"> diff --git a/addons/account_coda/account_coda_view.xml b/addons/account_coda/account_coda_view.xml index 07f397c663f..0b42ad6352f 100644 --- a/addons/account_coda/account_coda_view.xml +++ b/addons/account_coda/account_coda_view.xml @@ -9,7 +9,6 @@ <record id="view_coda_bank_account_search" model="ir.ui.view"> <field name="name">coda.bank.account.search</field> <field name="model">coda.bank.account</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="CODA Bank Account Configuration"> <field name="name" filter_domain="['|', ('name','ilike',self), ('description1','ilike',self)]" string="CODA Bank Account"/> @@ -29,7 +28,6 @@ <record id="view_coda_bank_account_list" model="ir.ui.view"> <field name="name">coda.bank.account.list</field> <field name="model">coda.bank.account</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="CODA Bank Account Configuration"> <field name="name"/> @@ -44,7 +42,6 @@ <record id="view_coda_bank_account_form" model="ir.ui.view"> <field name="name">coda.bank.account.form</field> <field name="model">coda.bank.account</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="CODA Bank Account Configuration" version="7.0"> <group col="4"> @@ -82,7 +79,6 @@ <record id="view_account_coda_trans_type_tree" model="ir.ui.view"> <field name="name">account.coda.trans.type.tree</field> <field name="model">account.coda.trans.type</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="CODA Transaction Types"> <field name="type"/> @@ -94,7 +90,6 @@ <record id="view_account_coda_trans_type_form" model="ir.ui.view"> <field name="name">account.coda.trans.type.form</field> <field name="model">account.coda.trans.type</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="CODA Transaction Type" version="7.0"> <group col="4"> @@ -118,7 +113,6 @@ <record id="view_account_coda_trans_code_tree" model="ir.ui.view"> <field name="name">account.coda.trans.code.tree</field> <field name="model">account.coda.trans.code</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="CODA Transaction Codes"> <field name="code"/> @@ -131,7 +125,6 @@ <record id="view_account_coda_trans_code_form" model="ir.ui.view"> <field name="name">account.coda.trans.code.form</field> <field name="model">account.coda.trans.code</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="CODA Transaction Code" version="7.0"> <group col="4"> @@ -157,7 +150,6 @@ <record id="view_account_coda_trans_category_tree" model="ir.ui.view"> <field name="name">account.coda.trans.category.tree</field> <field name="model">account.coda.trans.category</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="CODA Transaction Categories"> <field name="category"/> @@ -168,7 +160,6 @@ <record id="view_account_coda_trans_category_form" model="ir.ui.view"> <field name="name">account.coda.trans.category.form</field> <field name="model">account.coda.trans.category</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="CODA Transaction Category" version="7.0"> <field name="category"/> @@ -189,7 +180,6 @@ <record id="view_account_coda_comm_type_tree" model="ir.ui.view"> <field name="name">account.coda.comm.type.tree</field> <field name="model">account.coda.comm.type</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="CODA Structured Communication Types"> <field name="code"/> @@ -200,7 +190,6 @@ <record id="view_account_coda_comm_type_form" model="ir.ui.view"> <field name="name">account.coda.comm.type.form</field> <field name="model">account.coda.comm.type</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="CODA Structured Communication Type" version="7.0"> <field name="code"/> @@ -225,7 +214,6 @@ <record model="ir.ui.view" id="view_account_coda_tree"> <field name="name">account.coda.tree</field> <field name="model">account.coda</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="CODA Files"> <field name="coda_creation_date"/> @@ -240,7 +228,6 @@ <record model="ir.ui.view" id="view_account_coda_form"> <field name="name">account.coda.form</field> <field name="model">account.coda</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="CODA File" version="7.0"> <sheet> @@ -263,7 +250,6 @@ <record id="view_account_coda_filter" model="ir.ui.view"> <field name="name">account.coda.search</field> <field name="model">account.coda</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Search CODA Files"> <field name="coda_creation_date"/> @@ -295,7 +281,6 @@ <record id="view_coda_bank_statement_list" model="ir.ui.view"> <field name="name">coda.bank.statement.list</field> <field name="model">coda.bank.statement</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree colors="red:balance_end_real!=balance_end;blue:state=='draft' and (balance_end_real==balance_end)" string="CODA Bank Statements"> <field name="name"/> @@ -313,7 +298,6 @@ <record id="view_coda_bank_statement_form" model="ir.ui.view"> <field name="name">coda.bank.statement.form</field> <field name="model">coda.bank.statement</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="CODA Bank Statement" version="7.0"> <sheet> @@ -376,7 +360,6 @@ <record id="view_coda_bank_statement_search" model="ir.ui.view"> <field name="name">coda.bank.statement.search</field> <field name="model">coda.bank.statement</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Search CODA Bank Statements"> <field name="name" string="CODA Bank Statement"/> @@ -412,7 +395,6 @@ <record id="view_coda_bank_statement_line_list" model="ir.ui.view"> <field name="name">coda.bank.statement.line.list</field> <field name="model">coda.bank.statement.line</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree editable="bottom" string="CODA Statement Lines"> <field name="sequence" readonly="1" invisible="1"/> @@ -435,7 +417,6 @@ <record id="view_coda_bank_statement_line_form" model="ir.ui.view"> <field name="name">coda.bank.statement.line.form</field> <field name="model">coda.bank.statement.line</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="CODA Statement Line" version="7.0"> <group col="4"> @@ -461,7 +442,6 @@ <record id="view_coda_bank_statement_line_filter" model="ir.ui.view"> <field name="name">coda.bank.statement.line.filter</field> <field name="model">coda.bank.statement.line</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Search Bank Transactions"> <field name="name" filter_domain="['|', ('name','ilike',self), ('ref','ilike',self)]" string="Bank Transaction"/> diff --git a/addons/account_coda/account_coda_wizard.xml b/addons/account_coda/account_coda_wizard.xml index 655f1afb95e..76178820d9c 100644 --- a/addons/account_coda/account_coda_wizard.xml +++ b/addons/account_coda/account_coda_wizard.xml @@ -5,7 +5,6 @@ <record id="account_coda_import_view" model="ir.ui.view"> <field name="name">Import CODA File</field> <field name="model">account.coda.import</field> - <field name="type">form</field> <field name="priority">1</field> <field name="arch" type="xml"> <form string="Import CODA File" version="7.0"> @@ -25,7 +24,6 @@ <record id="account_coda_import_result_view" model="ir.ui.view"> <field name="name">Import CODA File</field> <field name="model">account.coda.import</field> - <field name="type">form</field> <field name="priority">2</field> <field name="arch" type="xml"> <form string="Import CODA File" version="7.0"> diff --git a/addons/account_followup/account_followup_view.xml b/addons/account_followup/account_followup_view.xml index 3d1d4333bbb..b26458a73af 100644 --- a/addons/account_followup/account_followup_view.xml +++ b/addons/account_followup/account_followup_view.xml @@ -4,7 +4,6 @@ <record id="view_account_followup_followup_line_tree" model="ir.ui.view"> <field name="name">account_followup.followup.line.tree</field> <field name="model">account_followup.followup.line</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Follow-up Steps"> <field name="name"/> @@ -17,7 +16,6 @@ <record id="view_account_followup_followup_line_form" model="ir.ui.view"> <field name="name">account_followup.followup.line.form</field> <field name="model">account_followup.followup.line</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Follow-up Steps" version="7.0"> <group col="4"> @@ -41,7 +39,6 @@ <record id="view_account_followup_followup_form" model="ir.ui.view"> <field name="name">account_followup.followup.form</field> <field name="model">account_followup.followup</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Follow-up" version="7.0"> <group col="4"> @@ -56,7 +53,6 @@ <record id="view_account_followup_followup_tree" model="ir.ui.view"> <field name="name">account_followup.followup.tree</field> <field name="model">account_followup.followup</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Follow-up"> <field name="name"/> @@ -68,7 +64,6 @@ <record id="view_account_followup_filter" model="ir.ui.view"> <field name="name">account.followup.select</field> <field name="model">account_followup.followup</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Search Follow-up"> <field name="name" string="Follow-up"/> @@ -101,7 +96,6 @@ <record id="account_move_line_partner_tree" model="ir.ui.view"> <field name="name">account.move.line.partner.tree</field> <field name="model">account.move.line</field> - <field name="type">tree</field> <field eval="32" name="priority"/> <field name="arch" type="xml"> <tree colors="red:state == 'draft';black:state == 'validate'" editable="bottom" string="Partner entries"> @@ -157,7 +151,6 @@ <field name="name">res.company.followup.form.inherit</field> <field name="inherit_id" ref="account.view_company_inherit_form"/> <field name="model">res.company</field> - <field name="type">form</field> <field name="arch" type="xml"> <field name="overdue_msg" nolabel="1" colspan="4" position="after"> <separator string="Follow-up Message" colspan="4"/> diff --git a/addons/account_followup/report/account_followup_report.xml b/addons/account_followup/report/account_followup_report.xml index 6ec18407787..966931d78a9 100644 --- a/addons/account_followup/report/account_followup_report.xml +++ b/addons/account_followup/report/account_followup_report.xml @@ -5,7 +5,6 @@ <record id="view_account_followup_stat_tree" model="ir.ui.view"> <field name="name">account_followup.stat.tree</field> <field name="model">account_followup.stat</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Follow-up lines"> <field name="partner_id"/> @@ -26,7 +25,6 @@ <record id="view_account_followup_stat_graph" model="ir.ui.view"> <field name="name">account_followup.stat.graph</field> <field name="model">account_followup.stat</field> - <field name="type">graph</field> <field name="arch" type="xml"> <graph string="Follow-up lines" type="bar"> <field name="partner_id"/> @@ -37,7 +35,6 @@ <record id="view_account_followup_stat_search" model="ir.ui.view"> <field name="name">account_followup.stat.search</field> <field name="model">account_followup.stat</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Follow-ups Sent"> <field name="date_move"/> diff --git a/addons/account_followup/wizard/account_followup_print_view.xml b/addons/account_followup/wizard/account_followup_print_view.xml index 2949177205f..fe77dbc053e 100644 --- a/addons/account_followup/wizard/account_followup_print_view.xml +++ b/addons/account_followup/wizard/account_followup_print_view.xml @@ -5,7 +5,6 @@ <record id="view_account_followup_print" model="ir.ui.view"> <field name="name">account.followup.print.form</field> <field name="model">account.followup.print</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Send follow-ups" version="7.0"> <group col="4"> @@ -23,7 +22,6 @@ <record id="action_account_followup_print" model="ir.actions.act_window"> <field name="name">Send Follow-Ups</field> - <field name="type">ir.actions.act_window</field> <field name="res_model">account.followup.print</field> <field name="view_type">form</field> <field name="view_mode">form</field> @@ -38,7 +36,6 @@ <record id="account_followup_stat_by_partner_search" model="ir.ui.view"> <field name="name">account_followup.stat.by.partner.search</field> <field name="model">account_followup.stat.by.partner</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Partner to Remind"> <field name="date_followup"/> @@ -54,7 +51,6 @@ <record id="account_followup_stat_by_partner_tree" model="ir.ui.view"> <field name="name">account_followup.stat.by.partner.tree</field> <field name="model">account_followup.stat.by.partner</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Partner to Remind"> <field name="partner_id"/> @@ -70,7 +66,6 @@ <record id="view_account_followup_print_all" model="ir.ui.view"> <field name="name">account.followup.print.all.form</field> <field name="model">account.followup.print.all</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Send Follow-Ups" version="7.0"> <header> @@ -110,7 +105,6 @@ <record id="view_account_followup_print_all_msg" model="ir.ui.view"> <field name="name">account.followup.print.all.msg.form</field> <field name="model">account.followup.print.all</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Summary" version="7.0"> <separator string="Summary"/> diff --git a/addons/account_payment/account_invoice_view.xml b/addons/account_payment/account_invoice_view.xml index aeea324e128..ebb6bcbf965 100644 --- a/addons/account_payment/account_invoice_view.xml +++ b/addons/account_payment/account_invoice_view.xml @@ -4,7 +4,6 @@ <record id="invoice_supplier_form" model="ir.ui.view"> <field name="name">account.invoice.supplier.form.inherit</field> <field name="model">account.invoice</field> - <field name="type">form</field> <field name="inherit_id" ref="account.invoice_supplier_form"/> <field name="arch" type="xml"> <field name="partner_bank_id" position="before"> diff --git a/addons/account_payment/account_payment_view.xml b/addons/account_payment/account_payment_view.xml index 5395bcafb17..e3e9b2ae558 100644 --- a/addons/account_payment/account_payment_view.xml +++ b/addons/account_payment/account_payment_view.xml @@ -6,7 +6,6 @@ <record id="view_move_line_form" model="ir.ui.view"> <field name="name">account.move.line.form.inherit</field> <field name="model">account.move.line</field> - <field name="type">form</field> <field name="inherit_id" ref="account.view_move_line_form"/> <field name="arch" type="xml"> <field name="reconcile_partial_id" position="after"> @@ -18,7 +17,6 @@ <record model="ir.ui.view" id="view_move_line_tree_wiz"> <field name="name">account.move.line.tree</field> <field name="model">account.move.line</field> - <field name="type">tree</field> <field name="priority" eval="1"/> <field name="arch" type="xml"> <tree string="Account Entry Line"> @@ -44,7 +42,6 @@ <record id="view_payment_mode_search" model="ir.ui.view"> <field name="name">payment.mode.search</field> <field name="model">payment.mode</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Payment Mode"> <field name="name" string="Payment Mode"/> @@ -60,7 +57,6 @@ <record id="view_payment_mode_tree" model="ir.ui.view"> <field name="name">payment.mode.tree</field> <field name="model">payment.mode</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Payment Mode"> <field name="name"/> @@ -73,7 +69,6 @@ <record id="view_payment_mode_form" model="ir.ui.view"> <field name="name">payment.mode.form</field> <field name="model">payment.mode</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Payment Mode" version="7.0"> <group col="4"> @@ -99,9 +94,8 @@ <record id="view_payment_order_form" model="ir.ui.view"> <field name="name">payment.order.form</field> <field name="model">payment.order</field> - <field name="type">form</field> <field name="arch" type="xml"> - <form version="7.0"> + <form string="Payment Order" version="7.0"> <header> <button name="open" states="draft" string="Confirm Payments" class="oe_highlight"/> <button name="set_done" states="open" string="Make Payments" type="object" class="oe_highlight"/> @@ -191,7 +185,6 @@ <record id="view_payment_order_tree" model="ir.ui.view"> <field name="name">payment.order.tree</field> <field name="model">payment.order</field> - <field name="type">tree</field> <field eval="4" name="priority"/> <field name="arch" type="xml"> <tree colors="blue:state == 'draft';gray:state in ('cancel','done');black:state == 'open'" string="Payment order"> @@ -210,7 +203,6 @@ <record id="view_payment_order_search" model="ir.ui.view"> <field name="name">payment.order.tree.search</field> <field name="model">payment.order</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Search Payment Orders"> <field name="reference" string="Payment Order"/> @@ -256,7 +248,6 @@ <record id="view_payment_line_form" model="ir.ui.view"> <field name="name">Payment Line</field> <field name="model">payment.line</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Payment Line" version="7.0"> <notebook> @@ -302,7 +293,6 @@ <record id="view_payment_line_tree" model="ir.ui.view"> <field name="name">Payment Lines</field> <field name="model">payment.line</field> - <field name="type">tree</field> <field eval="4" name="priority"/> <field name="arch" type="xml"> <tree string="Payment Line"> @@ -331,7 +321,6 @@ <record id="view_bank_statement_form" model="ir.ui.view"> <field name="name">account.bank.statement.form.inherit</field> <field name="model">account.bank.statement</field> - <field name="type">form</field> <field name="inherit_id" ref="account.view_bank_statement_form"/> <field name="arch" type="xml"> <xpath expr="//div[@name='import_buttons']" position="inside"> diff --git a/addons/account_payment/wizard/account_payment_create_order_view.xml b/addons/account_payment/wizard/account_payment_create_order_view.xml index ab90144f0e2..df0080a4b23 100644 --- a/addons/account_payment/wizard/account_payment_create_order_view.xml +++ b/addons/account_payment/wizard/account_payment_create_order_view.xml @@ -5,7 +5,6 @@ <record id="view_create_payment_order" model="ir.ui.view"> <field name="name">payment.order.create.form</field> <field name="model">payment.order.create</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Search Payment lines" version="7.0"> <group> @@ -23,7 +22,6 @@ <record id="view_create_payment_order_lines" model="ir.ui.view"> <field name="name">payment.order.create.form</field> <field name="model">payment.order.create</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Search Payment lines" version="7.0"> <group string="Entries"> diff --git a/addons/account_payment/wizard/account_payment_pay_view.xml b/addons/account_payment/wizard/account_payment_pay_view.xml index 1053d47eebd..16baaba9e8d 100644 --- a/addons/account_payment/wizard/account_payment_pay_view.xml +++ b/addons/account_payment/wizard/account_payment_pay_view.xml @@ -5,7 +5,6 @@ <record id="account_payment_make_payment_view" model="ir.ui.view"> <field name="name">account.payment.make.payment.form</field> <field name="model">account.payment.make.payment</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Make Payment" version="7.0"> <separator string="Are you sure you want to make payment?"/> diff --git a/addons/account_payment/wizard/account_payment_populate_statement_view.xml b/addons/account_payment/wizard/account_payment_populate_statement_view.xml index c2789f95d38..acc85d661c2 100644 --- a/addons/account_payment/wizard/account_payment_populate_statement_view.xml +++ b/addons/account_payment/wizard/account_payment_populate_statement_view.xml @@ -5,7 +5,6 @@ <record id="account_payment_populate_statement_view" model="ir.ui.view"> <field name="name">Payment Populate statement</field> <field name="model">account.payment.populate.statement</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Populate Statement:" version="7.0"> <group> diff --git a/addons/account_sequence/account_sequence.xml b/addons/account_sequence/account_sequence.xml index 3ed16cfa58e..255008d6dab 100644 --- a/addons/account_sequence/account_sequence.xml +++ b/addons/account_sequence/account_sequence.xml @@ -5,7 +5,6 @@ <record id="view_account_move_form_inherit" model="ir.ui.view"> <field name="name">account.move.form.inherit</field> <field name="model">account.move</field> - <field name="type">form</field> <field name="inherit_id" ref="account.view_move_form"/> <field name="arch" type="xml"> <field name="period_id" position="after"> @@ -17,7 +16,6 @@ <record id="view_account_journal_form_inherit" model="ir.ui.view"> <field name="name">account.journal.form.inherit</field> <field name="model">account.journal</field> - <field name="type">form</field> <field name="inherit_id" ref="account.view_account_journal_form"/> <field name="arch" type="xml"> <field name="sequence_id" position="after"> @@ -29,7 +27,6 @@ <record id="view_account_move_tree_inherit" model="ir.ui.view"> <field name="name">account.move.tree.inherit</field> <field name="model">account.move</field> - <field name="type">tree</field> <field name="inherit_id" ref="account.view_move_tree"/> <field name="arch" type="xml"> <field name="ref" position="before"> diff --git a/addons/account_sequence/account_sequence_installer_view.xml b/addons/account_sequence/account_sequence_installer_view.xml index 2d733e83f11..bb9324ea617 100644 --- a/addons/account_sequence/account_sequence_installer_view.xml +++ b/addons/account_sequence/account_sequence_installer_view.xml @@ -4,7 +4,6 @@ <record id="view_account_sequence_installer" model="ir.ui.view"> <field name="name">account.sequence.installer.view</field> <field name="model">account.sequence.installer</field> - <field name="type">form</field> <field name="inherit_id" ref="base.res_config_installer"/> <field name="arch" type="xml"> <data> diff --git a/addons/account_voucher/account_voucher_pay_invoice.xml b/addons/account_voucher/account_voucher_pay_invoice.xml index c6128c4e619..323be77f334 100644 --- a/addons/account_voucher/account_voucher_pay_invoice.xml +++ b/addons/account_voucher/account_voucher_pay_invoice.xml @@ -4,7 +4,6 @@ <record id="view_invoice_customer" model="ir.ui.view"> <field name="name">account.invoice.customer.pay</field> <field name="model">account.invoice</field> - <field name="type">form</field> <field name="inherit_id" ref="account.invoice_form"/> <field name="arch" type="xml"> <xpath expr="//button[@name='invoice_open'][last()]" position="after"> @@ -18,7 +17,6 @@ <record id="view_invoice_supplier" model="ir.ui.view"> <field name="name">account.invoice.supplier.pay</field> <field name="model">account.invoice</field> - <field name="type">form</field> <field name="inherit_id" ref="account.invoice_supplier_form"/> <field name="arch" type="xml"> <xpath expr="//button[@name='invoice_open'][last()]" position="after"> diff --git a/addons/account_voucher/account_voucher_view.xml b/addons/account_voucher/account_voucher_view.xml index e5e01252dff..64e1cf22156 100644 --- a/addons/account_voucher/account_voucher_view.xml +++ b/addons/account_voucher/account_voucher_view.xml @@ -4,7 +4,6 @@ <record model="ir.ui.view" id="view_voucher_tree"> <field name="name">account.voucher.tree</field> <field name="model">account.voucher</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree colors="blue:state == 'draft';gray:state == 'cancel';red:audit" string="Voucher Entries"> <field name="date"/> @@ -23,7 +22,6 @@ <record model="ir.ui.view" id="view_voucher_line_form"> <field name="name">account.voucher.line.form</field> <field name="model">account.voucher.line</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Voucher Lines" version="7.0"> <group col="4"> @@ -39,9 +37,8 @@ <record model="ir.ui.view" id="view_voucher_form"> <field name="name">account.voucher.form</field> <field name="model">account.voucher</field> - <field name="type">form</field> <field name="arch" type="xml"> - <form version="7.0"> + <form string="Accounting Voucher" version="7.0"> <header> <button name="proforma_voucher" string="Post" states="draft" class="oe_highlight"/> <button name="cancel_voucher" string="Cancel" type="object" states="posted" confirm="Are you sure to unreconcile this record?"/> @@ -114,6 +111,7 @@ </sheet> <div class="oe_chatter"> <field name="message_ids" widget="mail_thread"/> + <field name="message_follower_ids" widget="mail_followers"/> </div> </form> </field> @@ -122,7 +120,6 @@ <record id="view_voucher_filter" model="ir.ui.view"> <field name="name">account.voucher.select</field> <field name="model">account.voucher</field> - <field name="type">search</field> <field name="priority">1</field> <field name="arch" type="xml"> <search string="Search Vouchers"> @@ -148,7 +145,6 @@ <record id="account_cash_statement_graph" model="ir.ui.view"> <field name="name">account.voucher.graph</field> <field name="model">account.voucher</field> - <field name="type">graph</field> <field name="arch" type="xml"> <graph string="Voucher Statistics" type="bar"> <field name="date"/> @@ -201,7 +197,6 @@ <record id="view_bank_statement_form_invoice" model="ir.ui.view"> <field name="name">account.bank.statement.invoice.form.inherit</field> <field name="model">account.bank.statement</field> - <field name="type">form</field> <field name="inherit_id" ref="account.view_bank_statement_form"/> <field name="arch" type="xml"> <xpath expr="//div[@name='import_buttons']" position="inside"> @@ -215,7 +210,6 @@ <record id="view_bank_statement_tree_voucher" model="ir.ui.view"> <field name="name">account.bank.statement.voucher.tree.inherit</field> <field name="model">account.bank.statement</field> - <field name="type">form</field> <field name="inherit_id" ref="account.view_bank_statement_form"/> <field name="arch" type="xml"> <xpath expr="//page[@name='statement_line_ids']/field[@name='line_ids']/tree/field[@name='amount']" position="after"> @@ -227,7 +221,6 @@ <record id="view_bank_statement_form_voucher" model="ir.ui.view"> <field name="name">account.bank.statement.voucher.form.inherit</field> <field name="model">account.bank.statement</field> - <field name="type">form</field> <field name="inherit_id" ref="account.view_bank_statement_form"/> <field name="arch" type="xml"> <xpath expr="//page[@name='statement_line_ids']/field[@name='line_ids']/form/group/field[@name='sequence']" position="before"> @@ -238,7 +231,6 @@ <record id="view_cash_statement_tree_voucher" model="ir.ui.view"> <field name="name">account.cash.statement.voucher.tree.inherit</field> <field name="model">account.bank.statement</field> - <field name="type">form</field> <field name="inherit_id" ref="account.view_bank_statement_form2"/> <field name="arch" type="xml"> <xpath expr="//page/field[@name='line_ids']/tree/field[@name='amount']" position="after"> @@ -250,7 +242,6 @@ <record id="view_cash_statement_form_voucher" model="ir.ui.view"> <field name="name">account.cash.statement.voucher.form.inherit</field> <field name="model">account.bank.statement</field> - <field name="type">form</field> <field name="inherit_id" ref="account.view_bank_statement_form2"/> <field name="arch" type="xml"> <xpath expr="//page/field[@name='line_ids']/form/group/field[@name='amount']" position="after"> @@ -264,7 +255,6 @@ <field name="name">res.company.form.inherit</field> <field name="inherit_id" ref="base.view_company_form"/> <field name="model">res.company</field> - <field name="type">form</field> <field name="arch" type="xml"> <field name="currency_id" position="after"> <field name="income_currency_exchange_account_id"/> diff --git a/addons/account_voucher/report/account_voucher_sales_receipt_view.xml b/addons/account_voucher/report/account_voucher_sales_receipt_view.xml index ba4d6c2f31c..15b2433ec25 100644 --- a/addons/account_voucher/report/account_voucher_sales_receipt_view.xml +++ b/addons/account_voucher/report/account_voucher_sales_receipt_view.xml @@ -5,7 +5,6 @@ <record id="view_sale_receipt_report_tree" model="ir.ui.view"> <field name="name">sale.receipt.report.tree</field> <field name="model">sale.receipt.report</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree colors="blue:state == 'draft';gray:state in ('cancel','paid');black:state in ('proforma','proforma2')" string="Sales Receipt Analysis"> <field name="date" invisible="1"/> @@ -33,7 +32,6 @@ <record id="view_sale_receipt_report_graph" model="ir.ui.view"> <field name="name">sale.receipt.report.graph</field> <field name="model">sale.receipt.report</field> - <field name="type">graph</field> <field name="arch" type="xml"> <graph string="Sales Receipt Analysis" type="bar"> <field name="account_id"/> @@ -45,7 +43,6 @@ <record id="view_sale_receipt_report_search" model="ir.ui.view"> <field name="name">sale.receipt.report.search</field> <field name="model">sale.receipt.report</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Sales Receipt Analysis"> <field name="date"/> diff --git a/addons/account_voucher/voucher_payment_receipt_view.xml b/addons/account_voucher/voucher_payment_receipt_view.xml index ef983145901..503c3aeaa5e 100644 --- a/addons/account_voucher/voucher_payment_receipt_view.xml +++ b/addons/account_voucher/voucher_payment_receipt_view.xml @@ -5,7 +5,6 @@ <record id="view_voucher_filter_customer_pay" model="ir.ui.view"> <field name="name">account.voucher.customer.pay.select</field> <field name="model">account.voucher</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Search Vouchers"> <field name="number" string="Voucher"/> @@ -29,7 +28,6 @@ <record id="view_voucher_filter_vendor_pay" model="ir.ui.view"> <field name="name">account.voucher.purchase.pay.select</field> <field name="model">account.voucher</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Search Vouchers"> <field name="number" string="Voucher"/> @@ -51,7 +49,6 @@ <record model="ir.ui.view" id="view_low_priority_payment_form"> <field name="name">account.voucher.payment.low.priority.form</field> <field name="model">account.voucher</field> - <field name="type">form</field> <field name="priority">1</field> <field name="arch" type="xml"> <form string="Bill Payment" version="7.0"> @@ -121,9 +118,8 @@ <record model="ir.ui.view" id="view_vendor_payment_form"> <field name="name">account.voucher.payment.form</field> <field name="model">account.voucher</field> - <field name="type">form</field> <field name="arch" type="xml"> - <form version="7.0"> + <form string="Voucher Payment" version="7.0"> <header> <button name="proforma_voucher" string="Validate" states="draft" invisible="context.get('line_type', False)" class="oe_highlight"/> <button name="cancel_voucher" string="Cancel" states="draft,proforma" invisible="context.get('line_type', False)"/> @@ -244,6 +240,7 @@ </sheet> <div class="oe_chatter"> <field name="message_ids" widget="mail_thread"/> + <field name="message_follower_ids" widget="mail_followers"/> </div> </form> </field> @@ -286,9 +283,8 @@ <record model="ir.ui.view" id="view_vendor_receipt_form"> <field name="name">account.voucher.receipt.form</field> <field name="model">account.voucher</field> - <field name="type">form</field> <field name="arch" type="xml"> - <form version="7.0"> + <form string="Receipt" version="7.0"> <header> <button name="proforma_voucher" string="Validate" states="draft" invisible="context.get('line_type', False)" class="oe_highlight"/> <button name="cancel_voucher" string="Cancel" states="draft,proforma" invisible="context.get('line_type', False)"/> @@ -413,6 +409,7 @@ </sheet> <div class="oe_chatter"> <field name="message_ids" widget="mail_thread"/> + <field name="message_follower_ids" widget="mail_followers"/> </div> </form> </field> diff --git a/addons/account_voucher/voucher_sales_purchase_view.xml b/addons/account_voucher/voucher_sales_purchase_view.xml index f8eff4e7b19..5bcecfa268e 100644 --- a/addons/account_voucher/voucher_sales_purchase_view.xml +++ b/addons/account_voucher/voucher_sales_purchase_view.xml @@ -4,7 +4,6 @@ <record id="view_voucher_filter_vendor" model="ir.ui.view"> <field name="name">account.voucher.purchase.select</field> <field name="model">account.voucher</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Search Vouchers"> <field name="number" string="Voucher"/> @@ -27,7 +26,6 @@ <record id="view_voucher_filter_sale" model="ir.ui.view"> <field name="name">account.voucher.sale.select</field> <field name="model">account.voucher</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Search Vouchers"> <field name="number" string="Voucher"/> @@ -60,9 +58,8 @@ <record model="ir.ui.view" id="view_sale_receipt_form"> <field name="name">account.voucher.sale.form</field> <field name="model">account.voucher</field> - <field name="type">form</field> <field name="arch" type="xml"> - <form version="7.0"> + <form string="Sale voucher" version="7.0"> <header> <button name="proforma_voucher" string="Validate" states="draft" class="oe_highlight"/> <button name="%(act_pay_voucher)d" context="{'narration':narration, 'title':'Customer Payment', 'type':'receipt', 'partner_id':partner_id, 'reference':reference, 'amount':amount}" type="action" string="Pay" attrs="{'invisible':['|',('pay_now','=','pay_now'),'|',('state','=','draft'), ('paid','=',True)]}" class="oe_highlight"/> @@ -150,6 +147,7 @@ </sheet> <div class="oe_chatter"> <field name="message_ids" widget="mail_thread"/> + <field name="message_follower_ids" widget="mail_followers"/> </div> </form> </field> @@ -204,9 +202,8 @@ <record model="ir.ui.view" id="view_purchase_receipt_form"> <field name="name">account.voucher.purchase.form</field> <field name="model">account.voucher</field> - <field name="type">form</field> <field name="arch" type="xml"> - <form version="7.0"> + <form string="Purchase Voucher" version="7.0"> <header> <button name="proforma_voucher" string="Validate" states="draft" class="oe_highlight"/> <button name="%(act_pay_bills)d" context="{'narration':narration, 'title':'Bill Payment', 'type':'payment', 'partner_id': partner_id, 'reference':reference}" type="action" string="Pay Bill" attrs="{'invisible':['|',('pay_now','=','pay_now'),'|',('state','=','draft'), ('paid','=',True)]}" class="oe_highlight"/> @@ -305,6 +302,7 @@ </sheet> <div class="oe_chatter"> <field name="message_ids" widget="mail_thread"/> + <field name="message_follower_ids" widget="mail_followers"/> </div> </form> </field> diff --git a/addons/account_voucher/wizard/account_statement_from_invoice_view.xml b/addons/account_voucher/wizard/account_statement_from_invoice_view.xml index 7af5155a6d3..f97d3ef58cb 100644 --- a/addons/account_voucher/wizard/account_statement_from_invoice_view.xml +++ b/addons/account_voucher/wizard/account_statement_from_invoice_view.xml @@ -4,7 +4,6 @@ <record id="view_account_statement_from_invoice_lines" model="ir.ui.view"> <field name="name">account.statement.from.invoice.lines.form</field> <field name="model">account.statement.from.invoice.lines</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Import Entries" version="7.0"> <separator string="Payable and Receivables"/> diff --git a/addons/analytic/analytic.py b/addons/analytic/analytic.py index 165af37888d..3231b1e6d95 100644 --- a/addons/analytic/analytic.py +++ b/addons/analytic/analytic.py @@ -297,7 +297,6 @@ class account_analytic_account(osv.osv): def create_send_note(self, cr, uid, ids, context=None): for obj in self.browse(cr, uid, ids, context=context): - self.message_subscribe(cr, uid, [obj.id], [obj.user_id.id], context=context) self.message_append_note(cr, uid, [obj.id], body=_("Contract for <em>%s</em> has been <b>created</b>.") % (obj.partner_id.name), context=context) account_analytic_account() diff --git a/addons/analytic/analytic_view.xml b/addons/analytic/analytic_view.xml index d590506a0c6..16100e73fff 100644 --- a/addons/analytic/analytic_view.xml +++ b/addons/analytic/analytic_view.xml @@ -5,9 +5,8 @@ <record id="view_account_analytic_account_form" model="ir.ui.view"> <field name="name">analytic.analytic.account.form</field> <field name="model">account.analytic.account</field> - <field name="type">form</field> <field name="arch" type="xml"> - <form version="7.0"> + <form string="Analytic Account" version="7.0"> <sheet string="Analytic Account"> <label for="name" class="oe_edit_only"/> <h1> @@ -46,6 +45,7 @@ </sheet> <div class="oe_chatter"> <field name="message_ids" widget="mail_thread"/> + <field name="message_follower_ids" widget="mail_followers"/> </div> </form> </field> diff --git a/addons/analytic_contract_expense_project/analytic_contract_expense_project_view.xml b/addons/analytic_contract_expense_project/analytic_contract_expense_project_view.xml index 3e892d5940f..f461ed224b8 100644 --- a/addons/analytic_contract_expense_project/analytic_contract_expense_project_view.xml +++ b/addons/analytic_contract_expense_project/analytic_contract_expense_project_view.xml @@ -4,7 +4,6 @@ <record id="project_form_expense_form" model="ir.ui.view"> <field name="name">project.project.form.expense.inherit</field> <field name="model">project.project</field> - <field name="type">form</field> <field name="inherit_id" ref="analytic_contract_project.project_account_analytic_account_form"/> <field eval="20" name="priority"/> <field name="arch" type="xml"> diff --git a/addons/analytic_contract_hr_expense/analytic_contract_hr_expense_view.xml b/addons/analytic_contract_hr_expense/analytic_contract_hr_expense_view.xml index 0148c05d0b4..2869eaed86d 100644 --- a/addons/analytic_contract_hr_expense/analytic_contract_hr_expense_view.xml +++ b/addons/analytic_contract_hr_expense/analytic_contract_hr_expense_view.xml @@ -4,7 +4,6 @@ <record id="account_analytic_account_form_expense_form" model="ir.ui.view"> <field name="name">account.analytic.account.form.expense.inherit</field> <field name="model">account.analytic.account</field> - <field name="type">form</field> <field eval="60" name="priority"/> <field name="arch" type="xml"> <xpath expr='//tr[@name="total"]' position='before'> @@ -35,7 +34,6 @@ <!--<record id="project_form_expense_form" model="ir.ui.view"> <field name="name">project.project.form.expense.inherit</field> <field name="model">project.project</field> - <field name="type">form</field> <field name="inherit_id" ref="analytic_contract_project.project_account_analytic_account_form"/> <field eval="20" name="priority"/> <field name="arch" type="xml"> diff --git a/addons/analytic_contract_project/analytic_contract_project_view.xml b/addons/analytic_contract_project/analytic_contract_project_view.xml index 9914ed455af..84f01e19643 100644 --- a/addons/analytic_contract_project/analytic_contract_project_view.xml +++ b/addons/analytic_contract_project/analytic_contract_project_view.xml @@ -5,7 +5,6 @@ <record id="project_account_analytic_account_form" model="ir.ui.view"> <field name="name">project.project.form.inherit</field> <field name="model">project.project</field> - <field name="type">form</field> <field name="inherit_id" ref="project.edit_project"/> <field eval="18" name="priority"/> <field name="arch" type="xml"> @@ -102,7 +101,6 @@ <record id="project_invoice_form" model="ir.ui.view"> <field name="name">Inherit project form : Invoicing Data</field> <field name="model">project.project</field> - <field name="type">form</field> <field name="inherit_id" ref="project.edit_project"/> <field name="arch" type="xml"> <xpath expr='//tr[@name="use_tasks_row"]' position='after'> @@ -117,7 +115,6 @@ <record id="contract_inherited_form" model="ir.ui.view"> <field name="name">Inherit contract form : adding UoM</field> <field name="model">account.analytic.account</field> - <field name="type">form</field> <field name="inherit_id" ref="analytic.view_account_analytic_account_form"/> <field name="priority">50</field> <field name="arch" type="xml"> diff --git a/addons/analytic_user_function/analytic_user_function_view.xml b/addons/analytic_user_function/analytic_user_function_view.xml index 9c6e89d1bda..6fa141f480d 100644 --- a/addons/analytic_user_function/analytic_user_function_view.xml +++ b/addons/analytic_user_function/analytic_user_function_view.xml @@ -6,7 +6,6 @@ <record model="ir.ui.view" id="analytic_user_funct_grid_tree"> <field name="name">analytic_user_funct_grid.tree</field> <field name="model">analytic.user.funct.grid</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="User's Product for this Analytic Account" editable="bottom"> <field name="user_id" required="1"/> @@ -18,7 +17,6 @@ <record model="ir.ui.view" id="analytic_user_funct_grid_form"> <field name="name">analytic_user_funct_grid.form</field> <field name="model">analytic.user.funct.grid</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="User's Product for this Analytic Account"> <field name="user_id" required="1"/> @@ -31,7 +29,6 @@ <record model="ir.ui.view" id="view_account_analytic_account_form_inherit"> <field name="name">account.analytic.account.form</field> <field name="model">account.analytic.account</field> - <field name="type">form</field> <field name="inherit_id" ref="analytic.view_account_analytic_account_form"/> <field name="arch" type="xml"> <xpath expr="//notebook/page" position="after"> @@ -46,7 +43,6 @@ <record model="ir.ui.view" id="hr_timesheet_sheet_form_inherit"> <field name="name">hr.timesheet.sheet.form.tree</field> <field name="model">hr_timesheet_sheet.sheet</field> - <field name="type">form</field> <field name="priority" eval="18"/> <field name="inherit_id" ref="hr_timesheet_sheet.hr_timesheet_sheet_form"/> <field name="arch" type="xml"> @@ -60,7 +56,6 @@ <record model="ir.ui.view" id="hr_timesheet_sheet_form_inherit1"> <field name="name">hr.timesheet.sheet.form.form</field> <field name="model">hr_timesheet_sheet.sheet</field> - <field name="type">form</field> <field name="priority" eval="19"/> <field name="inherit_id" ref="hr_timesheet_sheet.hr_timesheet_sheet_form"/> <field name="arch" type="xml"> @@ -74,7 +69,6 @@ <record model="ir.ui.view" id="hr_timesheet_line_form_inherit"> <field name="name">hr.analytic.timesheet.form</field> <field name="model">hr.analytic.timesheet</field> - <field name="type">form</field> <field name="inherit_id" ref="hr_timesheet.hr_timesheet_line_form"/> <field name="arch" type="xml"> <xpath expr="//field[@name='account_id']" position="replace"> @@ -86,7 +80,6 @@ <record model="ir.ui.view" id="hr_timesheet_line_form_inherit_2"> <field name="name">hr.analytic.timesheet.form</field> <field name="model">hr.analytic.timesheet</field> - <field name="type">form</field> <field name="inherit_id" ref="hr_timesheet.hr_timesheet_line_form"/> <field name="arch" type="xml"> <xpath expr="//field[@name='user_id']" position="replace"> @@ -98,7 +91,6 @@ <record model="ir.ui.view" id="hr_timesheet_line_tree_inherit"> <field name="name">hr.analytic.timesheet.tree</field> <field name="model">hr.analytic.timesheet</field> - <field name="type">tree</field> <field name="inherit_id" ref="hr_timesheet.hr_timesheet_line_tree"/> <field name="arch" type="xml"> <xpath expr="/tree/field[@name='account_id']" position="replace"> @@ -110,7 +102,6 @@ <record model="ir.ui.view" id="hr_timesheet_line_tree_inherit_2"> <field name="name">hr.analytic.timesheet.tree</field> <field name="model">hr.analytic.timesheet</field> - <field name="type">tree</field> <field name="inherit_id" ref="hr_timesheet.hr_timesheet_line_tree"/> <field name="arch" type="xml"> <xpath expr="/tree/field[@name='user_id']" position="replace"> diff --git a/addons/anonymization/anonymization_view.xml b/addons/anonymization/anonymization_view.xml index 6f874f60eda..5aba288d4f8 100644 --- a/addons/anonymization/anonymization_view.xml +++ b/addons/anonymization/anonymization_view.xml @@ -7,7 +7,6 @@ <record model="ir.ui.view" id="view_ir_model_fields_anonymization_form"> <field name="name">ir.model.fields.anonymization.form</field> <field name="model">ir.model.fields.anonymization</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Anonymized Field" version="7.0"> <sheet> @@ -29,7 +28,6 @@ <record model="ir.ui.view" id="view_ir_model_fields_anonymization_tree"> <field name="name">ir.model.fields.anonymization.tree</field> <field name="model">ir.model.fields.anonymization</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Anonymized Fields"> <field name="model_id" /> @@ -55,7 +53,6 @@ <record model="ir.ui.view" id="view_ir_model_fields_anonymize_wizard_form"> <field name="name">ir.model.fields.anonymize.wizard.form</field> <field name="model">ir.model.fields.anonymize.wizard</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Database Anonymization" version="7.0"> <header> @@ -101,7 +98,6 @@ <record model="ir.ui.view" id="view_ir_model_fields_anonymization_history_form"> <field name="name">ir.model.fields.anonymization.history.form</field> <field name="model">ir.model.fields.anonymization.history</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Anonymization History" version="7.0"> <sheet> @@ -130,7 +126,6 @@ <record model="ir.ui.view" id="view_ir_model_fields_anonymization_history_tree"> <field name="name">ir.model.fields.anonymization.history.tree</field> <field name="model">ir.model.fields.anonymization.history</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Anonymization History"> <field name="date" /> diff --git a/addons/audittrail/audittrail_view.xml b/addons/audittrail/audittrail_view.xml index a61d5e21f3a..b041329f6bd 100644 --- a/addons/audittrail/audittrail_view.xml +++ b/addons/audittrail/audittrail_view.xml @@ -9,7 +9,6 @@ <record model="ir.ui.view" id="view_audittrail_rule_form"> <field name="name">audittrail.rule.form</field> <field name="model">audittrail.rule</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="AuditTrail Rule" version="7.0"> <header> @@ -41,7 +40,6 @@ <record model="ir.ui.view" id="view_audittrail_rule_tree"> <field name="name">audittrail.rule.tree</field> <field name="model">audittrail.rule</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree colors="blue:state == 'draft';black:state == 'subscribed'" string="AuditTrail Rules"> <field name="name"/> @@ -60,7 +58,6 @@ <record id="view_audittrail_rule_search" model="ir.ui.view"> <field name="name">audittrail.rule.search</field> <field name="model">audittrail.rule</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Search Audittrail Rule"> <field name="name" string="Audittrail Rule"/> @@ -91,7 +88,6 @@ <record model="ir.ui.view" id="view_audittrail_log_form"> <field name="name">audittrail.log.form</field> <field name="model">audittrail.log</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="AuditTrail Logs" version="7.0"> <sheet> @@ -148,7 +144,6 @@ <record model="ir.ui.view" id="view_audittrail_log_tree"> <field name="name">audittrail.log.tree</field> <field name="model">audittrail.log</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="AuditTrail Logs"> <field name="timestamp"/> @@ -163,7 +158,6 @@ <record id="view_audittrail_log_search" model="ir.ui.view"> <field name="name">audittrail.log.search</field> <field name="model">audittrail.log</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Search Audittrail Log"> <field name="name" string="Audittrail Log"/> diff --git a/addons/audittrail/wizard/audittrail_view_log_view.xml b/addons/audittrail/wizard/audittrail_view_log_view.xml index fdfffb73c23..414527bdbb0 100644 --- a/addons/audittrail/wizard/audittrail_view_log_view.xml +++ b/addons/audittrail/wizard/audittrail_view_log_view.xml @@ -7,7 +7,6 @@ <record id="view_audittrail_view_log" model="ir.ui.view"> <field name="name">audittrail.view.log.form</field> <field name="model">audittrail.view.log</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Audit Logs" version="7.0"> <group col="4"> diff --git a/addons/auth_ldap/user_ldap_installer.xml b/addons/auth_ldap/user_ldap_installer.xml index 1f652f69699..8dc1361c9cc 100644 --- a/addons/auth_ldap/user_ldap_installer.xml +++ b/addons/auth_ldap/user_ldap_installer.xml @@ -5,7 +5,6 @@ <record model="ir.ui.view" id="view_ldap_installer_form"> <field name="name">ldap.installer.form</field> <field name="model">res.company.ldap</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="LDAP Configuration" version="7.0"> <group> diff --git a/addons/auth_ldap/users_ldap.py b/addons/auth_ldap/users_ldap.py index e4615907c79..47fc41c3645 100644 --- a/addons/auth_ldap/users_ldap.py +++ b/addons/auth_ldap/users_ldap.py @@ -255,7 +255,7 @@ class users(osv.osv): cr, SUPERUSER_ID, conf, login, entry) if user_id: cr.execute("""UPDATE res_users - SET date=now() AT TIME ZONE 'UTC' + SET login_date=now() AT TIME ZONE 'UTC' WHERE login=%s""", (tools.ustr(login),)) cr.commit() diff --git a/addons/auth_ldap/users_ldap_view.xml b/addons/auth_ldap/users_ldap_view.xml index b87800aa8c8..c4fc7cebbbe 100644 --- a/addons/auth_ldap/users_ldap_view.xml +++ b/addons/auth_ldap/users_ldap_view.xml @@ -4,7 +4,6 @@ <record model="ir.ui.view" id="company_form_view"> <field name="name">res.company.form.inherit.users_ldap</field> <field name="model">res.company</field> - <field name="type">form</field> <field name="inherit_id" ref="base.view_company_form"/> <field name="arch" type="xml"> <xpath expr="//group[@name='account_grp']" position="after"> diff --git a/addons/auth_oauth/__init__.py b/addons/auth_oauth/__init__.py new file mode 100644 index 00000000000..c9acce48a16 --- /dev/null +++ b/addons/auth_oauth/__init__.py @@ -0,0 +1,3 @@ +import controllers +import auth_oauth +import res_users diff --git a/addons/auth_oauth/__openerp__.py b/addons/auth_oauth/__openerp__.py new file mode 100644 index 00000000000..6c79bba2151 --- /dev/null +++ b/addons/auth_oauth/__openerp__.py @@ -0,0 +1,49 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# Copyright (C) 2010-2012 OpenERP s.a. (<http://openerp.com>). +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. +# +############################################################################## + + +{ + 'name': 'OAuth2 Authentication', + 'version': '1.0', + 'category': 'Tools', + 'description': """Allow users to login through Google OAuth2.""", + 'author': 'Victor Tabuenca', + 'maintainer': 'OpenERP s.a.', + 'website': 'http://www.openerp.com', + 'depends': ['base', 'web'], + 'data': [ + 'auth_oauth_data.xml' + ], + 'update_xml': [ + 'auth_oauth_view.xml' + ], + 'js': [ + 'static/src/js/auth_oauth.js', + ], + 'css': [ + 'static/lib/zocial/css/zocial.css', + ], + 'qweb': [ + 'static/src/xml/auth_oauth.xml', + ], + 'installable': True, + 'auto_install': False, +} diff --git a/addons/auth_oauth/auth_oauth.py b/addons/auth_oauth/auth_oauth.py new file mode 100644 index 00000000000..e258505868d --- /dev/null +++ b/addons/auth_oauth/auth_oauth.py @@ -0,0 +1,22 @@ +from openerp.osv import osv, fields + +class auth_oauth_providers(osv.osv): + """Class defining the configuration values of an OAuth2 provider""" + + _name = 'auth.oauth.provider' + _description = 'OAuth2 provider' + _order = 'name' + + _columns = { + 'name' : fields.char('Provider name', required=True), # Name of the OAuth2 entity, Google, LinkedIn, etc + 'client_id' : fields.char('Client ID', required=True), # Our identifier + 'auth_endpoint' : fields.char('Authentication URL', required=True), # OAuth provider URL to authenticate users + 'scope' : fields.char('Scope'), # OAUth user data desired to access + 'validation_endpoint' : fields.char('Validation URL'), # OAuth provider URL to validate tokens + 'data_endpoint' : fields.char('Data URL'), + 'css_class' : fields.char('CSS class'), + 'body' : fields.char('Body'), + 'active' : fields.boolean('Active'), + 'sequence' : fields.integer(), + } + diff --git a/addons/auth_oauth/auth_oauth_data.xml b/addons/auth_oauth/auth_oauth_data.xml new file mode 100644 index 00000000000..021a03b2742 --- /dev/null +++ b/addons/auth_oauth/auth_oauth_data.xml @@ -0,0 +1,38 @@ +<?xml version="1.0"?> +<openerp> + <data noupdate="1"> + <record id="provider_facebook" model="auth.oauth.provider"> + <field name="name">Facebook Graph</field> + <field name="client_id">facebook_client_id</field> + <field name="auth_endpoint">https://www.facebook.com/dialog/oauth</field> + <field name="scope"></field> + <field name="validation_endpoint">https://graph.facebook.com/me/permissions</field> + <field name="data_endpoint"></field> + <field name="css_class">zocial facebook</field> + <field name="body">Sign in with facebook</field> + <field name="active">True</field> + </record> + <record id="provider_google" model="auth.oauth.provider"> + <field name="name">Google OAuth2</field> + <field name="client_id">108010644258-duuhmp6pu7li4tsmnqg7j9rvdeklg0ki.apps.googleusercontent.com</field> + <field name="auth_endpoint">https://accounts.google.com/o/oauth2/auth</field> + <field name="scope">https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/userinfo.profile</field> + <field name="validation_endpoint">https://www.googleapis.com/oauth2/v1/tokeninfo</field> + <field name="data_endpoint">https://www.googleapis.com/oauth2/v1/userinfo</field> + <field name="css_class">zocial google</field> + <field name="body">Sign in with google</field> + <field name="active">True</field> + </record> + <record id="provider_twitter" model="auth.oauth.provider"> + <field name="name">Twitter OAuth2</field> + <field name="client_id">108010644258-duuhmp6pu7li4tsmnqg7j9rvdeklg0ki.apps.twitterusercontent.com</field> + <field name="auth_endpoint">https://api.twitter.com/oauth/request_token</field> + <field name="scope"></field> + <field name="validation_endpoint">https://api.twitter.com/oauth/authorize</field> + <field name="data_endpoint"></field> + <field name="css_class">zocial twitter</field> + <field name="body">Sign in with twitter</field> + <field name="active">True</field> + </record> + </data> +</openerp> diff --git a/addons/auth_oauth/auth_oauth_view.xml b/addons/auth_oauth/auth_oauth_view.xml new file mode 100644 index 00000000000..678c347c84d --- /dev/null +++ b/addons/auth_oauth/auth_oauth_view.xml @@ -0,0 +1,46 @@ +<?xml version="1.0"?> +<openerp> + <data> + <record model="ir.ui.view" id="view_oauth_provider_form"> + <field name="name">auth.oauth.provider.form</field> + <field name="model">auth.oauth.provider</field> + <field name="type">form</field> + <field name="arch" type="xml"> + <form string="arch" version="7.0"> + <sheet> + <group> + <field name="name" /> + <field name="client_id" /> + <field name="active" /> + </group> + <group> + <field name="auth_endpoint" /> + <field name="scope" /> + <field name="validation_endpoint" /> + <field name="data_endpoint" /> + </group> + </sheet> + </form> + </field> + </record> + <record model="ir.ui.view" id="view_oauth_provider_list"> + <field name="name">auth.oauth.provider.list</field> + <field name="model">auth.oauth.provider</field> + <field name="type">tree</field> + <field name="arch" type="xml"> + <tree string="arch" version="7.0"> + <field name="name" /> + <field name="client_id" /> + <field name="active" /> + </tree> + </field> + </record> + <record model="ir.actions.act_window" id="action_oauth_provider"> + <field name="name">Providers</field> + <field name="res_model">auth.oauth.provider</field> + <field name="view_type">form</field> + <field name="view_mode">tree,form</field> + </record> + <menuitem id="menu_oauth_providers" parent="base.menu_users" name="OAuth Providers" action="action_oauth_provider" sequence="30"/> + </data> +</openerp> diff --git a/addons/auth_oauth/controllers/__init__.py b/addons/auth_oauth/controllers/__init__.py new file mode 100644 index 00000000000..e11f9ba81bb --- /dev/null +++ b/addons/auth_oauth/controllers/__init__.py @@ -0,0 +1,3 @@ +import main + +# vim:expandtab:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/auth_oauth/controllers/main.py b/addons/auth_oauth/controllers/main.py new file mode 100644 index 00000000000..28f550b4bda --- /dev/null +++ b/addons/auth_oauth/controllers/main.py @@ -0,0 +1,47 @@ +import logging + +import simplejson +import werkzeug.urls +import werkzeug.utils + +import openerp.modules.registry +import openerp.addons.web.controllers.main +import openerp.addons.web.common.http as openerpweb + +_logger = logging.getLogger(__name__) + +class OAuthController(openerpweb.Controller): + _cp_path = '/auth_oauth' + + @openerpweb.jsonrequest + def list_providers(self, req, dbname): + registry = openerp.modules.registry.RegistryManager.get(dbname) + with registry.cursor() as cr: + providers = registry.get('auth.oauth.provider') + l = providers.read(cr, 1, providers.search(cr, 1, [])) + return l + + @openerpweb.httprequest + def signin(self, req, **kw): + state = simplejson.loads(kw['state']) + dbname = state['d'] + provider = state['p'] + registry = openerp.modules.registry.RegistryManager.get(dbname) + with registry.cursor() as cr: + try: + u = registry.get('res.users') + credentials = u.auth_oauth(cr, 1, provider, kw) + cr.commit() + return openerp.addons.web.controllers.main.login_and_redirect(req, *credentials) + except AttributeError: + # auth_signup is not installed + _logger.error("auth_signup not installed on database %s: oauth sign up cancelled."%dbname) + url = "/#action=login&oauth_error=1" + except Exception,e: + # signup error + _logger.exception('oops') + url = "/#action=login&oauth_error=2" + return openerp.addons.web.controllers.main.set_cookie_and_redirect(req, url) + + +# vim:expandtab:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/auth_oauth/res_users.py b/addons/auth_oauth/res_users.py new file mode 100644 index 00000000000..3dbab849942 --- /dev/null +++ b/addons/auth_oauth/res_users.py @@ -0,0 +1,70 @@ +import logging + +import urllib +import urllib2 +import simplejson + +import openerp +from openerp.osv import osv, fields + +_logger = logging.getLogger(__name__) + +class res_users(osv.Model): + _inherit = 'res.users' + + _columns = { + 'oauth_provider_id': fields.many2one('auth.oauth.provider','OAuth Provider'), + 'oauth_uid': fields.char('OAuth User ID', help="Oauth Provider user_id"), + 'oauth_access_token': fields.char('OAuth Token', readonly=True), + } + + def auth_oauth_rpc(self, cr, uid, endpoint, access_token, context=None): + params = urllib.urlencode({'access_token':access_token}) + url = endpoint + '?' + params + f = urllib2.urlopen(url) + response = f.read() + return simplejson.loads(response) + + def auth_oauth(self, cr, uid, provider, params, context=None): + # Advice by Google (to avoid Confused Deputy Problem) + # if validation.audience != OUR_CLIENT_ID: + # abort() + # else: + # continue with the process + access_token = params.get('access_token') + p = self.pool.get('auth.oauth.provider').browse(cr, uid, provider, context=context) + + validation = self.auth_oauth_rpc(cr, uid, p.validation_endpoint, access_token) + if validation.get("error"): + raise openerp.exceptions.AccessDenied + login = validation['email'] + oauth_uid = validation['user_id'] + name = self.auth_oauth_rpc(cr, uid, p.data_endpoint, access_token)['name'] + + credentials = (cr.dbname, login, access_token) + res = self.search(cr, uid, [("oauth_uid", "=", oauth_uid)]) + if res: + self.write(cr, uid, res[0], {'oauth_access_token':access_token}) + else: + # New user + new_user = { + 'name': name, + 'login': login, + 'user_email': login, + 'oauth_provider_id': 1, + 'oauth_uid': oauth_uid, + 'oauth_access_token': access_token, + 'active': True, + } + self.auth_signup_create(cr, uid, new_user) + return credentials + + def check_credentials(self, cr, uid, password): + try: + return super(res_users, self).check_credentials(cr, uid, password) + except openerp.exceptions.AccessDenied: + res = self.search(cr, 1, [('id','=',uid),('oauth_access_token','=',password)]) + if not res: + raise + +# diff --git a/addons/auth_oauth/res_users.xml b/addons/auth_oauth/res_users.xml new file mode 100644 index 00000000000..995dbfbd52a --- /dev/null +++ b/addons/auth_oauth/res_users.xml @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="utf-8"?> +<openerp> + <data> + <record id="view_users_form" model="ir.ui.view"> + <field name="name">res.users.form</field> + <field name="model">res.users</field> + <field name="type">form</field> + <field name="inherit_id" ref="base.view_users_form"/> + <field name="arch" type="xml"> + <xpath expr="//page[@string='Access Rights']" position="after"> + <page string="Oauth"> + <group> + <field name="oauth_provider"/> + <field name="oauth_uid"/> + <field name="oauth_access_token"/> + </group> + </page> + </xpath> + </field> + </record> + </data> +</openerp> + diff --git a/addons/auth_oauth/static/lib/zocial/README.md b/addons/auth_oauth/static/lib/zocial/README.md new file mode 100644 index 00000000000..213132677af --- /dev/null +++ b/addons/auth_oauth/static/lib/zocial/README.md @@ -0,0 +1,31 @@ +# Zocial CSS social buttons + +I basically rewrote this entire set so they are full vector buttons, meaning: + +- @font-face icons +- custom font file for all social icons +- icon font use private unicode spaces for accessibility +- em sizing based on button font-size +- support for about 83 different services +- buttons and icons supported +- no raster images (sweet) +- works splendidly on any browser supporting @font-face +- CSS3 degrades gracefully in IE8 and below etc. +- also includes generic icon-less primary and secondary buttons + +## How to use these buttons + + <button class='zocial facebook'>Button label here</button> + +or + + <a class="zocial twitter'>Button label</a> + +- Can be any element e.g. `a`, `div`, `button` etc. +- Add class of `.zocial` +- Add class for name of service e.g. `.dropbox`, `.twitter`, `.github` +- Done :-) + +Check out [zocial.smcllns.com](http://zocial.smcllns.com) for demo and code examples. + +Problems, questions or requests to [@smcllns](http://twitter.com/smcllns)
\ No newline at end of file diff --git a/addons/auth_oauth/static/lib/zocial/css/zocial-regular-webfont.eot b/addons/auth_oauth/static/lib/zocial/css/zocial-regular-webfont.eot Binary files differnew file mode 100755 index 00000000000..05b8e3442cc --- /dev/null +++ b/addons/auth_oauth/static/lib/zocial/css/zocial-regular-webfont.eot diff --git a/addons/auth_oauth/static/lib/zocial/css/zocial-regular-webfont.svg b/addons/auth_oauth/static/lib/zocial/css/zocial-regular-webfont.svg new file mode 100755 index 00000000000..adcd9c6f7da --- /dev/null +++ b/addons/auth_oauth/static/lib/zocial/css/zocial-regular-webfont.svg @@ -0,0 +1,129 @@ +<?xml version="1.0" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" > +<svg xmlns="http://www.w3.org/2000/svg"> +<metadata></metadata> +<defs> +<font id="ZocialRegular" horiz-adv-x="2048" > +<font-face units-per-em="2048" ascent="1638" descent="-410" /> +<missing-glyph horiz-adv-x="512" /> +<glyph unicode=" " horiz-adv-x="512" /> +<glyph unicode="	" horiz-adv-x="512" /> +<glyph unicode=" " horiz-adv-x="512" /> +<glyph unicode="£" horiz-adv-x="3291" /> +<glyph unicode=" " horiz-adv-x="987" /> +<glyph unicode=" " horiz-adv-x="1974" /> +<glyph unicode=" " horiz-adv-x="987" /> +<glyph unicode=" " horiz-adv-x="1974" /> +<glyph unicode=" " horiz-adv-x="658" /> +<glyph unicode=" " horiz-adv-x="493" /> +<glyph unicode=" " horiz-adv-x="329" /> +<glyph unicode=" " horiz-adv-x="329" /> +<glyph unicode=" " horiz-adv-x="246" /> +<glyph unicode=" " horiz-adv-x="394" /> +<glyph unicode=" " horiz-adv-x="109" /> +<glyph unicode=" " horiz-adv-x="394" /> +<glyph unicode=" " horiz-adv-x="493" /> +<glyph unicode="" horiz-adv-x="1024" d="M0 0z" /> +<glyph unicode="" horiz-adv-x="2650" d="M0 823q0 125 37 236t102 196.5t154.5 156t192 119.5t216.5 83t227.5 49.5t225.5 15.5q59 0 88 -2q232 -12 463 -84q140 -45 272.5 -113.5t255.5 -165t214.5 -209t146.5 -255t55 -293.5q0 -27 -2 -39q-9 -128 -56.5 -243.5t-122 -205.5t-174.5 -164.5t-210.5 -126.5 t-233.5 -85q-222 -62 -469 -62h-16q-172 0 -346.5 25.5t-298.5 83.5q-11 4 -14 12q0 4 6 4q2 0 7 -1t7 -1q101 -24 182 -24q34 0 70 6t73.5 19.5t61 41t23.5 64.5q0 23 -13 49q-18 33 -119.5 68.5t-233.5 68.5t-155 41q-163 54 -284 135q1 1 7 18.5t11.5 30.5t14.5 25t18 12 h367q15 0 28.5 -28t24.5 -61t36 -61t60 -28q36 0 63 24t27 60q0 22 -172.5 407t-216.5 474q-13 30 -33 30q-15 0 -26 -18l-6 -12q-16 -31 -107 -234l-219 -487l-14 -31q-90 103 -142.5 226.5t-52.5 252.5zM446 483q0 10 111 265l10 6q13 0 67 -131t54 -142q0 -8 -10 -8h-221 q-11 0 -11 10zM1075 231q0 -92 96 -92q97 0 97 92v795q0 92 -97 92q-96 0 -96 -92v-795zM1454 231q0 -92 96 -92q97 0 97 92v371l188 -379q11 -25 34 -42t50 -17q31 0 56.5 16.5t37.5 42.5l187 379v-371q0 -92 96 -92q98 0 98 92v795q0 92 -96 92q-71 0 -96 -59l-283 -619 l-272 619q-27 59 -99 59q-94 0 -94 -92v-795z" /> +<glyph unicode="" horiz-adv-x="2066" d="M0 -348v1026h1026v-1026h-1026zM1042 674v1026h1024v-1026h-1024z" /> +<glyph unicode="" horiz-adv-x="1994" d="M0 -147l397 1824h897q81 0 159 -23.5t148.5 -72t117 -122.5t64 -174t-10.5 -228q-59 -278 -263 -438t-479 -160h-375l-129 -606h-526zM205 -371h526l129 604h377q179 0 332 70t261 206.5t148 321.5q57 277 -88 449q68 -153 25 -348q-59 -278 -262.5 -438t-478.5 -160 h-375l-129 -604h-443zM731 807h170l86 375h256q5 0 35 -6q-18 60 -65 95.5t-113 35.5h-256zM987 809q98 3 183 75t108 173q1 4 2 12t2 12h-233z" /> +<glyph unicode="" horiz-adv-x="1959" d="M0 -137v1052q0 180 41 320t125.5 242.5t220.5 156.5t318 54h589h533q-11 -11 -108 -109.5t-205 -207t-223 -223.5t-193.5 -190t-85.5 -75q-13 0 -22 10t-9 22v320h-98q-79 0 -135 -5.5t-107 -20.5t-83 -41.5t-56 -68.5t-34.5 -102t-10.5 -141v-537zM137 -377 q11 11 108 109.5t205 207t223 223.5t193.5 190t85.5 75q13 0 22 -10t9 -23v-319h98q79 0 135 5.5t106.5 20.5t82.5 41.5t55.5 68.5t34 101.5t10.5 141.5v536l459 457v-1053q0 -180 -41 -320t-125 -242t-220 -156t-318 -54h-590h-533z" /> +<glyph unicode="" horiz-adv-x="1886" d="M0 453v551q0 52 38 90.5t91 38.5q54 0 91.5 -38t37.5 -91v-551q0 -54 -37.5 -91.5t-91.5 -37.5t-91.5 37.5t-37.5 91.5zM354 248v856h1176v-856q0 -54 -38 -91.5t-91 -37.5h-918q-54 0 -91.5 37.5t-37.5 91.5zM354 1200h1176q0 157 -83 282t-216.5 191t-288.5 66 t-288.5 -66t-216.5 -191t-83 -282zM561 1847q0 17 14 17q7 0 15 -4l100 -183l-31 -16q-2 4 -29 52t-48 88t-21 46zM592 195q0 56 38.5 92.5t96.5 36.5q53 0 91 -38t38 -91v-414q0 -57 -39 -93t-96 -36q-54 0 -91.5 37.5t-37.5 91.5v414zM602 1464q0 32 24 56t58 24 q32 0 56 -24t24 -56q0 -34 -24 -58t-58 -24q-32 0 -56 24t-24 58zM1028 195q0 56 39.5 92.5t95.5 36.5q54 0 91.5 -38t37.5 -91v-414q0 -57 -39 -93t-96 -36q-54 0 -91.5 37.5t-37.5 91.5v414zM1120 1464q0 32 24 56t58 24q32 0 56 -24t24 -56q0 -34 -24 -58t-58 -24 q-32 0 -56 24t-24 58zM1194 1677q2 4 28.5 58t49.5 91.5t37 37.5t14 -19v-4l-98 -182zM1626 453v548q0 54 37.5 93t91.5 39t91.5 -39t37.5 -93v-548q0 -54 -38 -91.5t-91 -37.5q-54 0 -92 37.5t-37 91.5z" /> +<glyph unicode="" horiz-adv-x="1687" d="M0 659q0 222 59 414q58 190 170 326q115 139 277 209q165 73 364 73q262 0 445 -125q185 -121 278 -321q95 -198 95 -401q0 -189 -97 -246q-95 -56 -270 -56h-866q0 -175 61 -303q59 -133 156 -196q103 -68 217 -68q81 0 145 21q65 20 127 67q65 46 115 97q52 52 135 141 q29 33 96 33q71 0 111 -43q43 -43 43 -119q0 -68 -47 -160q-44 -87 -144 -174q-92 -83 -237 -139t-330 -56q-427 0 -665 277t-238 749zM455 819h802q-15 257 -122 385q-106 127 -279 127q-167 0 -272 -129q-108 -129 -129 -383z" /> +<glyph unicode="" horiz-adv-x="1169" d="M0 -150v1610q0 91 64 155t155 64h731q91 0 155 -64t64 -155v-1610q0 -91 -64 -155t-155 -64h-731q-91 0 -155 64t-64 155zM68 70h1030v1245h-1030v-1245zM408 1497q0 -20 13.5 -33.5t33.5 -13.5h260q20 0 33.5 13.5t13.5 33.5q0 19 -13.5 32t-33.5 13h-260 q-20 0 -33.5 -13t-13.5 -32zM496 -147q0 -38 28 -65.5t66 -27.5t65 27.5t27 65.5t-27 65t-65 27t-66 -27t-28 -65z" /> +<glyph unicode="" horiz-adv-x="2265" d="M0 324v979q0 94 29 122.5t123 28.5h1962q93 0 121 -28.5t28 -122.5v-979q0 -94 -27.5 -122t-121.5 -28h-832v-76h227v-118h-755v118h227v76h-829q-94 0 -123 28.5t-29 121.5zM76 307h2111v1057h-2111v-1057z" /> +<glyph unicode="" d="M0 1192q0 52 33 93.5t84 53.5l403 97q-129 -147 -129 -344q0 -381 518 -580q44 -17 86.5 -37t93 -52t87 -66t61.5 -80t25 -93q0 -59 -36.5 -103t-89 -63.5t-110.5 -19.5q-119 0 -248 46.5t-215 123.5l-162 -367q113 -61 295 -125q-22 -5 -64.5 -17.5t-78.5 -20t-66 -7.5 q-52 0 -93.5 33t-53.5 84l-336 1407q-4 24 -4 37zM858 1098q0 53 37.5 91.5t87.5 54.5t102 16q100 0 225.5 -36t180.5 -96l125 349q-188 100 -381 129q10 2 94 24.5t143 35.5t89 13q53 0 94 -32.5t53 -83.5l336 -1407q4 -24 4 -37q0 -53 -33 -94.5t-84 -53.5l-297 -69 q97 146 97 311q0 118 -42 217t-117 171t-164.5 122.5t-199.5 87.5q-42 14 -81 30t-91 44t-89 57.5t-63 71t-26 84.5z" /> +<glyph unicode="" horiz-adv-x="2424" d="M0 -2q0 86 48.5 169t130.5 146.5t199 102.5t245 39h110q-86 82 -86 176q0 58 33 119q-20 -2 -59 -2q-213 0 -348.5 132.5t-135.5 327.5q0 122 78.5 230t205.5 171.5t267 63.5h635l-141 -102h-201q96 -37 150.5 -139.5t54.5 -227.5q0 -96 -49 -181.5t-131 -150.5 q-75 -59 -98 -93.5t-23 -86.5q0 -39 55 -98.5t111 -99.5q124 -88 172.5 -180t48.5 -232q0 -87 -42 -168t-118.5 -146t-197 -104t-265.5 -39q-177 0 -324 44.5t-236 131t-89 197.5zM229 66q0 -140 119.5 -240t298.5 -100q243 0 353 89.5t110 239.5q0 39 -8 66 q-6 22 -14.5 41.5t-25.5 39t-28 32.5t-39.5 34.5t-41.5 30.5t-52 35.5t-53 36.5q-81 24 -158 24q-120 1 -226.5 -43t-170.5 -120.5t-64 -165.5zM365 1210q22 -161 123.5 -277.5t224.5 -119.5q80 -3 141 46.5t88.5 138t13.5 194.5q-22 161 -122.5 274.5t-223.5 116.5 q-123 4 -194 -104.5t-51 -268.5zM1501 1161v103h410v409h102v-409h412v-103h-412v-411h-102v411h-410z" /> +<glyph unicode="" horiz-adv-x="2265" d="M0 1378v43l4 4h510l4 -4v-41q0 -16 -20 -16l-54 -2q-67 -3 -67 -41q0 -25 14 -57q104 -250 455 -992l12 -2l227 453q-27 61 -45 100l-155 307q-15 26 -25 46.5t-13 27.5l-3 8q-4 9 -12 25q-44 87 -61 104q-19 16 -64 23q-29 3 -29 14v43l6 4h403l11 -2v-43q0 -16 -21 -16 l-30 -4q-27 -4 -39.5 -10t-11 -24.5t9 -36.5t28.5 -62l150 -307l166 331q34 64 10 88q-13 18 -76 23l-18 2q-9 0 -15 6q-6 3 -6 12v39l6 4q118 2 381 0l4 -4v-41q0 -16 -18 -16q-45 -1 -62 -8.5t-34 -32.5q-48 -73 -62 -98l-215 -402l-6 -14l262 -537l17 -6l413 985 q24 58 -6 84q-15 14 -30.5 20t-49.5 7l-39 2q-6 0 -12 6q-8 4 -8 12v41l6 4h469l4 -4v-41q0 -15 -18 -18q-94 -3 -136 -39q-41 -33 -69 -100q-168 -388 -296 -678.5t-172 -386.5l-44 -97q-21 -48 -46 -62t-49 3t-46 62q-84 169 -250 538q-207 -429 -269 -541 q-28 -49 -54.5 -64t-49 1.5t-41.5 60.5q-65 153 -265.5 583t-266.5 587q-34 85 -58 106t-106 27q-29 3 -29 14z" /> +<glyph unicode="" horiz-adv-x="1923" d="M-0.5 1438q-2.5 18 3.5 34t15 29t27 26.5t35 23.5t44 22t48 21t54 22.5t55 23.5q111 46 199 33.5t110 -71.5q51 -136 209.5 -652.5t236.5 -742.5q528 173 668 215q2 0 24 4t28 4.5t24 0t26.5 -5.5t20.5 -15.5t20 -26.5q48 -96 68 -203t0 -151q-39 -30 -122 -65.5 t-154 -59.5t-184.5 -59.5t-149.5 -47.5q-21 -7 -78.5 -27t-108 -37t-118.5 -39t-124.5 -36t-110.5 -23.5t-91.5 -7t-52.5 18.5q-38 38 -66.5 107t-58.5 178t-39 135q-85 254 -230.5 690t-214.5 643q-10 21 -12.5 39z" /> +<glyph unicode="" horiz-adv-x="1593" d="M6 -285v1588h189q0 116 11 156q24 90 127 99q13 1 27 1q24 0 44.5 -3t36 -10.5t27.5 -14t21 -21t15 -23.5t10 -29t6 -30.5t3 -35t1 -35v-37.5v-17h113v17q0 114 16 157q33 81 148 82q27 0 49.5 -4.5t38.5 -11t29 -19.5t21 -23.5t13.5 -31t8.5 -33t4.5 -38.5t1.5 -39.5 v-42.5v-13h110v13v42.5t1.5 39.5t4.5 38.5t8.5 33.5t13.5 30.5t21 23.5t29 19.5t38.5 11t49.5 4.5q24 0 44.5 -3t36 -10.5t27.5 -14t21 -21t15 -23.5t10 -29t6 -30.5t3 -35t1 -35v-37.5v-17h188v-1588h-1589zM139 78v-230h285v230h-285zM139 123h285v244h-285v-244zM139 412 h285v266h-285v-266zM139 721h285v229h-285v-229zM285 1137q0 -37 18.5 -52.5t56.5 -15.5t57 15.5t19 52.5v266q0 37 -18.5 52t-57.5 15q-38 0 -56.5 -15t-18.5 -52v-266zM467 78v-230h311v230h-311zM467 123h311v244h-311v-244zM467 412h311v266h-311v-266zM467 721h311v229 h-311v-229zM725 1137q0 -37 19 -52.5t57 -15.5q78 0 78 68v266q0 37 -19.5 52t-58.5 15t-57.5 -15t-18.5 -52v-266zM821 78v-230h312v230h-312zM821 123h312v244h-312v-244zM821 412h312v266h-312v-266zM821 721h312v229h-312v-229zM1165 1137q0 -68 78 -68q38 0 57 15.5 t19 52.5v266q0 37 -18.5 52t-57.5 15t-58.5 -15t-19.5 -52v-266zM1176 78v-230h286v230h-286zM1176 123h286v244h-286v-244zM1176 412h286v266h-286v-266zM1176 721h286v229h-286v-229z" /> +<glyph unicode="" horiz-adv-x="2680" d="M0 225v371h459v-367q0 -59 41.5 -100t99.5 -41q60 0 101.5 41t41.5 100v867q0 158 81.5 291t219 209.5t297.5 76.5t297.5 -77t219 -211t81.5 -293v-189l-274 -82l-182 86v164q0 58 -41.5 99.5t-100.5 41.5q-60 0 -101.5 -41t-41.5 -100v-854q0 -161 -80.5 -297.5 t-218 -215.5t-299.5 -79q-122 0 -233.5 47.5t-191.5 127.5t-127.5 191.5t-47.5 233.5zM1483 219v375l182 -86l274 82v-377q0 -60 41.5 -101.5t100.5 -41.5t100 41.5t41 101.5v383h459v-371q0 -122 -47.5 -233.5t-127.5 -191.5t-190.5 -127.5t-232.5 -47.5 q-162 0 -300.5 79.5t-219 216.5t-80.5 298z" /> +<glyph unicode="" horiz-adv-x="2576" d="M-10 401h243q11 -82 61.5 -131t131.5 -49q97 0 156 67t59 167q0 98 -57.5 161.5t-153.5 63.5q-41 0 -70 -10.5t-46 -25t-32 -29t-37 -25t-52 -10.5q-109 0 -164 4q18 106 57.5 328t58.5 337h676v-200h-497q-37 -187 -50 -275h7q34 43 102.5 65.5t134.5 22.5 q112 0 197 -55t131 -156q50 122 147.5 192t227.5 70q77 0 140 -18t122.5 -63t93 -77.5t98.5 -104.5q15 -17 23 -25q107 123 157 166q126 110 278 119q16 1 32 1q184 0 296.5 -123.5t112.5 -310.5q0 -124 -48.5 -225t-144 -162t-220.5 -61q-237 0 -463 268 q-22 -21 -69.5 -67.5t-69 -66.5t-64.5 -52.5t-76.5 -46.5t-83 -25.5t-104.5 -11.5q-129 0 -227.5 67.5t-151.5 188.5q-62 -128 -168.5 -195.5t-247.5 -67.5q-125 0 -223.5 39.5t-160.5 127.5t-62 214zM1044 463q0 -87 52 -140t139 -53q152 0 317 195q-93 95 -131 125 q-101 82 -194 82q-81 0 -132 -63t-51 -146zM1841 463q41 -44 69 -70.5t70.5 -59t87.5 -48t93 -15.5q87 0 137.5 56.5t50.5 144.5q0 87 -52 144t-138 57q-41 0 -78 -12t-71 -37t-56.5 -46t-58.5 -59t-54 -55z" /> +<glyph unicode="" horiz-adv-x="1585" d="M0 938q0 102 33 204.5t103 198.5t167.5 169.5t237 118t301.5 44.5q163 0 304.5 -56.5t236 -150t148.5 -215.5t54 -252q0 -229 -79 -412.5t-224.5 -288.5t-331.5 -105q-92 0 -173 43t-113 104l-82 -324q-10 -38 -26.5 -78.5t-35.5 -77t-39 -69.5t-40 -61.5t-34 -48 t-26 -35.5l-12 -15q-6 -7 -16.5 -4.5t-12.5 11.5q0 2 -3.5 28.5t-6.5 56.5t-5.5 77t-2 91.5t5.5 97t16 97.5q23 95 152 641q-17 33 -27 79t-11 76l-1 29q0 131 66 218.5t161 87.5q76 0 118 -50.5t42 -126.5q0 -64 -48.5 -223t-56.5 -194q-21 -92 36 -160t151 -68 q108 0 194 86t132 228.5t46 312.5q0 199 -129.5 325t-359.5 126q-130 0 -240.5 -46.5t-184 -124.5t-114.5 -180t-41 -213q0 -136 78 -231q16 -20 19 -31t-2 -35q-3 -10 -12.5 -47t-12.5 -47q-4 -22 -20.5 -30t-36.5 1q-120 49 -181 169.5t-61 279.5z" /> +<glyph unicode="" d="M0.5 624q-5.5 136 30.5 273q34 135 101.5 255t159 212.5t205.5 162.5t240 105t262 40.5t273 -30.5q135 -34 255 -101.5t212.5 -159t162.5 -205.5t105 -240t40.5 -262t-30.5 -273q-34 -135 -101.5 -255t-159 -212.5t-205.5 -162.5t-240 -105t-262 -40.5t-273 30.5 q-135 34 -255 101.5t-212.5 159t-162.5 205.5t-105 240t-40.5 262zM498 342l147 -37q14 -3 40.5 -10t39.5 -10l-47 -187l113 -28l45 184q8 -2 40.5 -10t49.5 -13l-45 -184l112 -27l45 187q98 -17 175.5 -16t135.5 42t87 125q65 185 -105 273q124 27 144 164q14 96 -47 157.5 t-179 100.5l47 186l-112 27l-45 -181q-17 5 -49.5 13t-40.5 10l45 180l-113 29l-45 -184q-28 4 -72 16l-155 39l-29 -121l80 -18q57 -15 53 -66l-53 -211q4 0 12 -4q-2 1 -6 2t-6 2l-74 -295q-10 -36 -51 -26l-68 16q-6 2 -14 4zM872 389l62 248q109 -26 122 -30 q190 -60 163 -173q-6 -25 -22.5 -42.5t-35.5 -26t-48 -11t-51.5 -2t-56 6.5t-51.5 10t-47.5 11.5t-34.5 8.5zM963 750l55 225q7 -2 24 -6q45 -10 73 -18.5t71 -28.5t60 -51.5t7 -73.5q-6 -26 -21.5 -43.5t-39 -24t-46 -9t-53.5 2t-49.5 8t-47 11t-33.5 8.5z" /> +<glyph unicode="" horiz-adv-x="2312" d="M0 1223h158l219 -744l147 500l-71 244h157l219 -744l220 744h157h436v-74l-223 -385q119 -41 176 -137q62 -103 62 -234q0 -167 -88 -280t-230 -113q-104 0 -184 68q-79 70 -115 182l123 51q26 -68 72 -111q41 -38 104 -38q64 0 107 69q45 68 45 172q0 108 -47 170 q-55 70 -170 70h-62v74l211 364h-254l-14 -24l-311 -1047h-15l-225 758l-227 -758h-15zM1675 369l37 -103q31 -69 68 -119q88 -120 192 -137q93 -17 180 37q42 26 72 64q41 41 57 73q9 14 23 41l-23 121q-17 -32 -33.5 -57t-23.5 -34l-8 -9q-71 -76 -125 -101 q-40 -18 -69.5 -22.5t-69.5 0.5q-56 4 -123 49q-1 1 -16.5 14t-25.5 22t-24 24t-22 28q-27 37 -66 109zM1731 768q0 173 67 299q32 62 76 99t88 40q71 7 143 -53q37 -30 76 -102l90 178l25 -156l-90 -174q-16 33 -39 61.5t-38 41.5l-15 12q-36 25 -66 31.5t-66 -1.5 q-48 -9 -96 -60.5t-71 -121.5q-39 -113 -39 -217q-2 -82 10 -129q-24 45 -38 108t-16 104z" /> +<glyph unicode="" horiz-adv-x="2394" d="M0 772q0 106 42.5 202t114 166t170.5 111t208 41q175 0 312.5 -98t192.5 -254l136 131l323 -311l895 913v-829l-547 -422l70 -74l-743 -723l-648 629q-143 2 -264 72t-191.5 188.5t-70.5 257.5zM76 772q0 -184 132.5 -313t321.5 -129q70 0 134 18l450 -399l1198 942 l2 618l-1184 -1220l-184 299q41 87 41 184q0 183 -134 312.5t-323 129.5t-321.5 -129.5t-132.5 -312.5zM174 768q0 144 101.5 245t244.5 101q145 0 245.5 -100.5t100.5 -245.5q0 -143 -101 -244.5t-245 -101.5q-142 0 -244 102t-102 244z" /> +<glyph unicode="" horiz-adv-x="1454" d="M33 1268h1431l-135 -1454l-581 -166l-582 166zM166 1391v272h92v-90h82v90h90v-272h-90v90h-82v-90h-92zM299 971l49 -545l2 4h615l-21 -231l-196 -56l-199 58l-12 139h-181l25 -279l367 -104l366 104l51 547h-653l-16 183h686l16 180h-899zM471 1571v92h250v-92h-80 v-180h-90v180h-80zM760 1391v272h96l55 -94l58 94h96v-272h-88v139l-66 -103v3l-61 96v-135h-90zM1112 1391v272h90v-180h127v-92h-217z" /> +<glyph unicode="" horiz-adv-x="1931" d="M-0.5 -39.5q2.5 52.5 14.5 94.5q48 171 87 270q201 511 613 844q63 51 130 97v28q-122 -51 -243.5 -134.5t-208 -166t-156 -158t-104.5 -122.5l-34 -47q-2 89 17 174t51.5 151t72.5 124.5t80.5 99.5t74 71.5t54.5 45.5l21 14q7 4 20.5 11.5t57.5 28t89 37t112.5 34 t132.5 25t143 4t150 -23.5q83 60 168 104.5t147 64.5t112.5 31.5t76.5 13.5l26 1q59 6 103 -6t68.5 -37.5t38.5 -59.5t16 -73t-1 -78.5t-11 -75.5t-16 -64t-14 -45l-6 -17l-10 10q44 116 42.5 191t-36 115.5t-75 59.5t-73.5 22l-34 3q-9 0 -24.5 -1t-65 -10.5t-100.5 -25.5 t-124 -51.5t-141 -83.5q111 -18 203.5 -61t155 -99.5t112.5 -125t78 -139.5t48 -140.5t27 -130.5t10 -108t2 -74l-1 -27h-1141q-4 -63 9.5 -114t38 -82.5t55 -54.5t61.5 -33.5t56.5 -17t42.5 -7.5h16q9 0 23.5 1t53.5 11.5t71 28.5t64 58t44 95h598q-26 -95 -71 -176.5 t-99 -138.5t-117 -103t-126.5 -74.5t-125 -49.5t-115 -30.5t-94 -15t-63.5 -6.5h-23q-160 0 -219 12q-77 -61 -161 -105.5t-150 -65t-120.5 -32t-83.5 -13.5l-30 -1q-76 0 -132.5 31.5t-85 80t-42 107t-11 111zM154.5 -55q-0.5 -48 5.5 -87t15 -58l9 -19q4 -4 11.5 -9.5 t34.5 -18.5t58.5 -21t84 -9.5t109.5 9.5t135.5 42.5t162.5 82.5q-16 4 -43.5 11.5t-103.5 36.5t-141 64.5t-136.5 97t-109.5 132.5q-45 -69 -68 -137.5t-23.5 -116.5zM733 813h543q3 74 -23.5 129t-65.5 80t-79 39.5t-68 16.5l-28 1q-6 0 -16 -0.5t-39.5 -6t-56.5 -14.5 t-59.5 -29t-55.5 -47t-38 -71t-14 -98z" /> +<glyph unicode="" horiz-adv-x="1843" d="M86 1190q3 33 31 65l245 246q12 10 25 8t19 -16l198 -373q16 -33 -10 -63l-90 -90q-25 -25 -29 -64q0 -38 26 -92t63 -104t74 -94t63 -71l26 -26q10 -10 27.5 -27t68 -60.5t96.5 -76.5t100.5 -60t92.5 -26q39 0 66 27l106 106q11 11 29.5 14t32.5 -5l358 -211 q14 -8 16 -21t-8 -24l-246 -246q-32 -28 -65 -31q-73 -10 -160 9.5t-167.5 59t-161 89.5t-146 102.5t-117 96t-79.5 70.5l-29 28q-11 11 -29 29.5t-69 78t-97 119t-100.5 144.5t-91.5 162.5t-57.5 165.5t-10.5 161z" /> +<glyph unicode="" d="M0 651q0 208 81 397.5t218.5 327t327 218.5t397.5 81t397.5 -81t327 -218.5t218.5 -327t81 -397.5t-81 -397.5t-218.5 -327t-327 -218.5t-397.5 -81t-397.5 81t-327 218.5t-218.5 327t-81 397.5zM264 651q0 -29 2 -48.5t8.5 -43.5t22.5 -40.5t41 -24.5q14 -5 35 -9 q85 -3 174 82q82 73 119 185q50 155 20 409q-4 24 -4 35q-6 12 0 18q3 6 27 -2q80 -20 159 -59q96 -44 209 -143q94 -82 178 -183q79 -94 164 -213q83 -116 180 -157q47 -22 80.5 -17t56 21.5t36 49t19 66.5t5.5 74q0 98 -24 197q-4 18 -17 57q-29 89 -84 172 q-106 161 -277.5 253.5t-363.5 92.5q-137 0 -256 -45q-164 -57 -288 -182.5t-181 -290.5q-3 -9 -9 -28.5t-9 -28.5q-26 -106 -23 -197z" /> +<glyph unicode="" horiz-adv-x="2498" d="M0 1370q-3 10 5 19.5t18 11.5q22 4 62.5 13.5t57.5 12.5q1 34 2 100.5t2 100.5q3 25 27 25q11 0 20 -8t9 -21q-4 -122 -4 -186q23 5 71 15l72 15q38 7 113.5 20.5t113.5 20.5q830 142 1626 148q12 0 19.5 -10t5.5 -21q-1 -23 -4 -68t-4 -67q39 -3 262 -23q11 0 18.5 -9 t6.5 -19q-46 -282 -139.5 -845t-139.5 -845q76 -12 156 -24q16 -3 21.5 -17t-1 -26.5t-20.5 -12.5h-6q-26 4 -79.5 13.5t-80.5 13.5q-3 -28 -10 -64q-3 -18 -21 -22q-2 -2 -8 -2h-8q-615 154 -1229 239q-255 5 -305 5q-56 0 -338 -5q0 -1 1 -3t1 -3q1 -13 -8.5 -21.5 t-22.5 -8.5q-21 0 -24 22q-1 9 -4.5 31.5t-4.5 34.5h-26q-16 1 -21.5 14.5t2 27t23.5 13.5h2h14l-12 111q-15 109 -41.5 320.5t-44 342.5t-51 311.5t-74.5 329.5zM61 1354q43 -158 89 -412q-7 167 -7 428q-30 -4 -82 -16zM199 1167q3 -403 43 -868q6 -78 22 -223 q2 -24 9.5 -68.5t9.5 -54.5q136 -6 392.5 -26.5t373.5 -26.5q27 -1 137.5 -7t149 -8.5t134 -8t148.5 -9.5t133.5 -10.5t149 -13.5t137.5 -15q22 328 66 932t61 842q-953 -9 -1966 -220q-3 -108 0 -215zM387 834q0 -140 87 -228t222 -88q142 0 224 88h4q-27 -144 -133 -227 q-84 -69 -207 -78q-82 -7 -107 -4v-154q72 0 117 4q217 16 350 140q178 168 178 477q0 193 -96 314.5t-270 121.5q-159 0 -264 -108t-105 -258zM580 846q0 92 46 150.5t119 58.5h3q89 0 133.5 -73t42.5 -185q0 -32 -11 -54q-54 -86 -165 -86q-77 0 -122.5 53.5t-45.5 135.5z M762 -131l196 -21l764 -81q292 -63 428 -99q1 6 3.5 18.5t3.5 18.5q-177 28 -338 51q-508 71 -1057 113zM1155 834q0 -140 88 -228t221 -88q141 0 226 88h2q-27 -143 -131 -227q-87 -69 -209 -78q-82 -7 -107 -4v-154q72 0 117 4q217 16 350 140q178 163 178 477 q0 193 -95.5 314.5t-268.5 121.5q-161 0 -266 -108t-105 -258zM1348 846q0 92 46.5 150.5t118.5 58.5h3q89 0 133.5 -73t42.5 -185q0 -32 -11 -54q-54 -86 -165 -86q-77 0 -122.5 53.5t-45.5 135.5zM2079 -227q12 -2 41.5 -6.5t46.5 -6.5q40 245 132 802t140 855 q-22 2 -104 9.5t-127 9.5q-12 -173 -55 -750.5t-64 -892.5q0 -10 -8 -18q-2 0 -2 -2z" /> +<glyph unicode="" horiz-adv-x="1708" d="M0 -369l854 2048l854 -2048h-756v277l348 174l-26 113l-322 -162v137l201 106l-29 117l-172 -92v178h-188v-321l-176 121l-33 -132l209 -143v-373h-764z" /> +<glyph unicode="" horiz-adv-x="2299" d="M-2 106v762q0 11 7.5 19t19.5 8h360v264q0 11 7.5 20t19.5 9h200v-1053q0 -11 -7 -20t-17 -9h-590zM221 276h137q12 0 19.5 8.5t7.5 20.5v422h-137q-12 0 -19.5 -9t-7.5 -20v-422zM682 106v762q0 11 7.5 19t19.5 8h200v-760q0 -11 -7 -20t-17 -9h-203zM682 1018v141 q0 12 7.5 20.5t17.5 8.5h202v-141q0 -11 -7 -20t-17 -9h-203zM987 106v762q0 11 7.5 19t19.5 8h590v-1032q0 -11 -8 -19t-19 -8h-590l2 141q0 11 7.5 20t17.5 9h360v100h-387zM1212 276h138q10 0 17 8.5t7 20.5v422h-137q-10 0 -17.5 -9t-7.5 -20v-422zM1681 -23 q0 11 7.5 20t19.5 9h360v100h-387v762q0 11 7.5 19t19.5 8h588v-1032q0 -11 -7.5 -19t-17.5 -8h-590v141zM1905 276h137q12 0 19 8.5t7 20.5v422h-137q-11 0 -18.5 -9t-7.5 -20v-422z" /> +<glyph unicode="" d="M0 674q0 151 105.5 256.5t254.5 105.5q129 0 234 -88l733 367q0 4 -1 11t-1 11q0 149 106 255t257 106q149 0 254.5 -106t105.5 -255q0 -151 -105.5 -256.5t-254.5 -105.5q-132 0 -234 86l-733 -367q0 -3 1 -9.5t1 -10.5q0 -3 -1 -10.5t-1 -10.5l733 -366q102 86 234 86 q149 0 254.5 -106t105.5 -255q0 -151 -105.5 -256.5t-254.5 -105.5q-151 0 -257 105.5t-106 256.5q0 3 1 10t1 11l-733 366q-102 -86 -234 -86q-149 0 -254.5 106t-105.5 255z" /> +<glyph unicode="" d="M0 653q0 208 81 397.5t218.5 327t327 218.5t397.5 81t397.5 -81t327 -218.5t218.5 -327t81 -397.5q0 -207 -78.5 -394t-218.5 -327q-122 149 -297.5 233.5t-374.5 84.5q-220 0 -408 -101.5t-309 -275.5q-169 144 -265.5 347t-96.5 433zM336 948q0 -36 25 -61t61 -25 q12 0 18 2q294 119 611 119q316 0 610 -119q3 0 9 -1t9 -1q35 0 60.5 25.5t25.5 60.5q0 53 -47 76q-326 129 -667 129q-348 0 -674 -131q-41 -26 -41 -74zM430 643l12 -33q16 -26 47 -26q7 0 19 4q258 112 543 112q287 0 546 -114q8 -4 15 -4q31 0 47 26l10 35q0 26 -20 43 q-282 127 -598 127q-315 0 -600 -127q-21 -21 -21 -43zM528 348q11 -28 33 -34.5t31 1.5q221 105 459 105q228 0 448 -98q51 -26 72 24q10 26 0 47t-29 31q-215 108 -491 108q-264 0 -500 -112q-13 -7 -22.5 -25.5t-0.5 -46.5zM653 -301q75 99 186.5 156t239.5 57 q114 0 217 -47t179 -129q-212 -107 -451 -107q-192 0 -371 70z" /> +<glyph unicode="" horiz-adv-x="2467" d="M-10 662q0 87 49.5 161t128 115t164.5 41q128 0 219 -74h2q281 168 686 168l4 4l148 553l501 -76q2 1 4 4l2 3q12 18 13 20q25 35 31 41q71 68 176 68t176 -69.5t71 -174.5t-71 -179.5t-176 -74.5q-119 0 -183 79t-67 197q-13 2 -42 6t-75.5 11.5t-75.5 11.5 q-212 30 -221 31q-11 -32 -59 -211q-51 -174 -66 -242l2 -2q149 -2 305 -43t269 -119q52 38 73.5 52t63 27.5t90.5 13.5q145 0 245.5 -101.5t100.5 -247.5q0 -97 -54 -179.5t-143 -125.5q-1 -93 -32.5 -177.5t-82 -149t-122 -122.5t-144 -98.5t-157.5 -76.5q-6 -2 -49 -21.5 t-66 -26.5q-68 -20 -189.5 -38.5t-191.5 -18.5q-247 0 -477 74q-26 18 -80.5 44t-68.5 34q-71 38 -129.5 76.5t-116.5 91t-97.5 108.5t-65 128t-26.5 151h-2q-72 38 -127 106l-18 25q-31 57 -40 95.5t-9 107.5zM80 637q0 -121 98 -209q17 116 100.5 226.5t194.5 197.5 q-64 43 -149 43q-97 0 -170.5 -80t-73.5 -178zM289 338q0 -87 41 -169.5t108 -146.5t152 -117t172 -86.5t170 -49.5q158 -29 297 -29q244 0 461.5 76t369.5 235h-2q69 91 97 153t28 146q0 86 -35.5 167.5t-94 144.5t-135 116.5t-157 89.5t-162.5 58q-169 47 -366 47 q-119 0 -244 -22t-251.5 -72t-225.5 -121.5t-161 -180.5t-62 -239zM649 487q0 80 49.5 129.5t128.5 49.5t134 -49.5t55 -129.5q0 -77 -56.5 -129.5t-132.5 -52.5q-77 0 -127.5 52.5t-50.5 129.5zM719 162h108q53 -93 162 -141t225 -48q118 0 222.5 48t171.5 141h104 q-30 -72 -86.5 -129t-125.5 -90.5t-142 -50.5t-144 -17q-69 0 -142 17.5t-143 51t-126.5 90.5t-83.5 128zM1411 487q0 82 50.5 130.5t131.5 48.5q75 0 127 -52t52 -127q0 -74 -52.5 -128t-126.5 -54q-79 0 -130.5 51.5t-51.5 130.5zM1954 1446q0 -68 47.5 -116t116.5 -48 q70 0 113.5 46.5t43.5 117.5q0 66 -45.5 112t-111.5 46q-65 0 -114.5 -47t-49.5 -111zM1991 870q107 -74 185.5 -183t111.5 -234q104 85 104 180q0 115 -70 197.5t-182 82.5q-81 0 -149 -43z" /> +<glyph unicode="" horiz-adv-x="1570" d="M4 55q0 40 25 131q48 178 177.5 323.5t301.5 211.5q-76 61 -119 147.5t-43 182.5q0 116 59 213.5t158.5 153t214.5 55.5t214.5 -55.5t158.5 -153t59 -213.5q0 -96 -41.5 -181.5t-115.5 -146.5q217 -78 362.5 -260.5t145.5 -405.5q0 -85 -36 -144t-114 -73q-6 -19 -27 -53 q-8 -24 -30.5 -44.5t-57 -35t-69 -25t-81 -19t-77 -13t-73.5 -10t-56 -7.5q-4 0 -14.5 -2t-14.5 -2h-245q-103 0 -263.5 34.5t-183.5 90.5q-36 36 -51 86q-48 10 -86 43q-42 17 -60 66.5t-18 105.5z" /> +<glyph unicode="" horiz-adv-x="1581" d="M8 631v211q0 90 52.5 204t132 215.5t171 187.5t171.5 130q160 90 383 90q71 0 143.5 -12.5t145.5 -41.5t129 -71t91 -107.5t35 -144.5q0 -26 -4 -50t-14.5 -49t-18.5 -43t-28 -43.5t-29 -38t-35 -39t-34.5 -34.5t-38.5 -36t-35 -33h108h236q4 -148 4 -221q0 -108 -5 -218 t-25.5 -250t-55.5 -200q-71 -124 -193.5 -221t-261.5 -144q-81 -30 -114 -30h-173q-7 0 -98 34q-124 55 -185 140.5t-61 216.5q0 7 1 21.5t1 21.5q-275 142 -368 440q-27 91 -27 115zM307 897q0 -82 19.5 -166t58 -162t107.5 -127t157 -49q25 0 81 31t101 31q29 0 105 -22 t76 -40q0 -26 -13.5 -34.5t-40.5 -8.5q-51 0 -88.5 -4.5t-82.5 -18.5t-70 -47.5t-25 -84.5q0 -81 43.5 -137t108.5 -79.5t145 -23.5q96 0 188.5 34t149.5 101q53 62 69.5 144t16.5 192q0 38 -2 113t-2 112q0 98 10 164h-395q-2 -16 -2 -47q0 -24 2 -71t2 -70q0 -73 -16 -115 q-10 -2 -35 -2q-60 0 -109 25.5t-80 66t-52 94t-29.5 107.5t-8.5 108q0 52 8.5 108t29 115.5t50 106.5t77.5 77t106 30q19 0 43 -7q-9 -52 -9 -69q0 -71 39.5 -118.5t108.5 -47.5q70 0 117 47.5t47 118.5q0 64 -36.5 114t-93.5 78t-118.5 42t-120.5 14q-181 0 -326 -78 t-228 -221t-83 -324z" /> +<glyph unicode="" horiz-adv-x="1761" d="M2 739.5q-15 -169.5 38 -368t171 -377.5q38 -58 71.5 -100.5t78.5 -87t96.5 -68.5t105.5 -25q45 -1 87 12.5t72.5 30t82.5 30t113 13.5q61 1 112.5 -12.5t81 -30t71 -30t85.5 -13.5q54 1 106 27t99.5 75t80.5 91.5t74 103.5q64 98 133 248q-85 32 -149.5 93.5t-99 135 t-42 158t14 163t77 149t138.5 116.5q-77 99 -181.5 154t-211.5 55q-78 0 -149 -22t-131 -44t-112 -22q-54 0 -119 22t-136 44t-138 22q-118 0 -234.5 -69t-195.5 -189q-75 -115 -90 -284.5zM852 1268q-16 85 14 170t88 155q56 68 143 115t169 53q13 -89 -15.5 -175 t-83.5 -156q-56 -72 -142 -117.5t-173 -44.5z" /> +<glyph unicode="" horiz-adv-x="2039" d="M0 276v756q0 175 87 324t236 236t324 87h453q134 -16 284 -116.5t213 -235.5q3 -6 10.5 -20t10 -19.5t8 -19t8 -25.5t7 -32t8.5 -45.5t8 -59.5q5 -44 7.5 -59t8.5 -43.5t15 -44t22 -27.5q22 -20 83.5 -24.5t121 -6.5t74.5 -14l28 -23l17 -35l6 -28l-4 -525 q-1 -174 -87.5 -322.5t-235 -235.5t-322.5 -87h-744q-175 0 -324 87t-236 235.5t-87 322.5zM530 287q0 -51 36.5 -87t88.5 -36h729q51 0 87 36t36 87t-36 87t-87 36h-729q-52 0 -88.5 -36t-36.5 -87zM530 1028q0 -51 36.5 -88t88.5 -37h359q51 0 87 37t36 88t-36 87t-87 36 h-359q-52 0 -88.5 -36t-36.5 -87z" /> +<glyph unicode="" d="M0 655q0 201 78 392q74 182 225 333q296 299 719 299q429 0 731 -299q147 -147 219 -331q76 -183 76 -394q0 -210 -74 -393q-72 -181 -219 -325q-153 -150 -340 -228q-194 -78 -393 -78q-198 0 -389 78q-183 76 -332 225t-225 332t-76 389zM184 655q0 -160 66 -317 q65 -154 186 -272q123 -123 273 -183q147 -63 317 -63q168 0 320 63q150 63 278 185q240 234 240 587q0 173 -64 322q-62 155 -180 270q-245 248 -594 248q-350 0 -590 -246q-120 -120 -186 -274q-66 -157 -66 -320zM440 655q0 146 86 232q83 86 215 86q190 0 273 -148 l-137 -71q-22 48 -56 63q-32 19 -59 19q-137 0 -137 -181q0 -82 34 -131q37 -49 103 -49q89 0 127 86l127 -63q-44 -74 -113 -117q-70 -43 -158 -43q-137 0 -221 84t-84 233zM1032 655q0 146 86 232t215 86q191 0 271 -148l-136 -71q-21 47 -53 63q-36 19 -61 19 q-137 0 -137 -181q0 -86 34 -131q34 -49 103 -49q87 0 125 86l129 -63q-45 -75 -115 -117q-70 -43 -154 -43q-142 0 -223 84q-84 84 -84 233z" /> +<glyph unicode="" d="M0 655q0 208 81 397.5t218.5 327t327 218.5t397.5 81t397.5 -81t327 -218.5t218.5 -327t81 -397.5t-81 -397.5t-218.5 -327t-327 -218.5t-397.5 -81t-397.5 81t-327 218.5t-218.5 327t-81 397.5zM170 655q0 -154 56 -299.5t159 -263.5q99 192 311.5 366.5t415.5 219.5 q-24 57 -59 129q-353 -113 -762 -113q-80 0 -119 2q0 -7 -1 -20.5t-1 -20.5zM197 866q45 -4 133 -4q341 0 649 92q-155 276 -342 461q-163 -83 -278.5 -227.5t-161.5 -321.5zM502 -18q111 -87 246.5 -134t275.5 -47q151 0 301 58q-41 353 -160 678q-188 -40 -379.5 -206 t-283.5 -349zM815 1481q182 -188 334 -465q280 118 420 297q-115 95 -255.5 145.5t-289.5 50.5q-103 0 -209 -28zM1223 870q17 -36 69 -165q153 14 330 14q126 0 252 -6q-7 135 -59.5 263t-141.5 232q-132 -198 -450 -338zM1343 561q104 -302 142 -622q162 105 263.5 268 t123.5 354q-150 10 -273 10q-113 0 -256 -10z" /> +<glyph unicode="" horiz-adv-x="1714" d="M0 1047q0 80 31 118q20 30 53 43q40 19 96 19h193q31 0 53.5 22.5t22.5 53.5q-1 43 -3 90v120q0 50 25 91q30 44 102 63q27 8 83.5 11.5t133.5 -4t132 -29.5q34 -14 60 -49.5t32 -77.5q169 5 280 -9q196 -23 265 -49q38 -12 67.5 -46t40.5 -91q21 -111 37.5 -429 t3.5 -448q-33 -350 -88 -520q-28 -87 -57 -141.5t-56 -86.5t-74.5 -46t-87.5 -17.5t-120 -3.5q-114 0 -181 10t-113.5 40.5t-63.5 82.5t-17 138q0 74 14 123.5t40.5 76t65.5 39t89.5 13.5t111.5 0q8 0 11 -3t1 -10.5t-5 -16t-6 -22t-3 -26.5t2 -26l3 -19.5t1.5 -12.5t-3 -8 t-11.5 -2h-19h-21.5t-20 -0.5t-20.5 -2.5t-17.5 -5.5t-16 -8.5t-11.5 -12.5t-8.5 -18t-2.5 -23.5q0 -20 3.5 -35t8 -25.5t16.5 -17t21 -10t31 -5t36 -2t45 -0.5h11q116 0 149 27.5t33 130.5q0 66 -8 114.5t-20.5 77t-33 46.5t-41 25t-50.5 11q-176 18 -244 41 q-111 41 -109 236v8q0 5 -5 5t-5 -5q0 -138 -37 -246l-16 -49q-9 -19 -21.5 -30.5t-23.5 -17t-32.5 -5.5t-34 1.5t-42.5 7t-45 7.5q-86 10 -213.5 39.5t-191.5 57.5q-30 13 -45 30t-31 52q-35 73 -73.5 264.5t-47.5 271.5q-8 68 -8 105zM12 1290v4l375 369q0 2 2 2l-6 -12 q-23 -44 -23 -99q0 -45 2 -211q0 -8 -5.5 -14t-14.5 -6h-190q-67 0 -121 -23q-11 -6 -19 -10zM1176 696q44 6 94 6q92 -3 166 -36q0 173 -125 178q-35 1 -61 -11.5t-40.5 -36t-22.5 -47.5t-11 -53z" /> +<glyph unicode="" horiz-adv-x="2156" d="M0 635q0 212 150 362t362 150t362 -150t150 -362t-150 -362t-362 -150t-362 150t-150 362zM1130 635q0 212 150 362t362 150t362 -150t150 -362t-150 -362t-362 -150t-362 150t-150 362z" /> +<glyph unicode="" horiz-adv-x="1323" d="M0 -2q0 86 48.5 169t130.5 146.5t199 102.5t245 39h110q-86 82 -86 176q0 58 33 119q-20 -2 -59 -2q-213 0 -348.5 132.5t-135.5 327.5q0 122 78.5 230t205.5 171.5t267 63.5h635l-141 -102h-201q96 -37 150.5 -139.5t54.5 -227.5q0 -96 -49 -181.5t-131 -150.5 q-75 -59 -98 -93.5t-23 -86.5q0 -39 55 -98.5t111 -99.5q124 -88 172.5 -180t48.5 -232q0 -87 -42 -168t-118.5 -146t-197 -104t-265.5 -39q-177 0 -324 44.5t-236 131t-89 197.5zM229 66q0 -140 119.5 -240t298.5 -100q243 0 353 89.5t110 239.5q0 39 -8 66 q-6 22 -14.5 41.5t-25.5 39t-28 32.5t-39.5 34.5t-41.5 30.5t-52 35.5t-53 36.5q-81 24 -158 24q-120 1 -226.5 -43t-170.5 -120.5t-64 -165.5zM365 1210q22 -161 123.5 -277.5t224.5 -119.5q80 -3 141 46.5t88.5 138t13.5 194.5q-22 161 -122.5 274.5t-223.5 116.5 q-123 4 -194 -104.5t-51 -268.5z" /> +<glyph unicode="" horiz-adv-x="1798" d="M0 397q0 -299 207 -526q205 -225 532 -225q325 0 531 225q207 223 207 526q0 160 -56 299q-81 -50 -174 -69q45 -105 45 -234q0 -157 -73 -291q-76 -133 -203 -206q-127 -74 -277 -74q-151 0 -278 74q-130 76 -201 206q-76 134 -76 291q0 241 164 414q164 170 391 170 q106 0 201 -39q8 83 55 176q-116 43 -256 43q-327 0 -544 -242q-195 -219 -195 -518zM573 -121q24 -4 52.5 -6t45.5 -2h17q151 95 254.5 222.5t148.5 254.5t64 259t8 245t-26.5 202t-32.5 140l-17 51q-44 140 -88 244t-66 138l-22 34q59 -31 100.5 -69.5t60.5 -75.5t28 -75 t6.5 -69.5t-7 -56.5t-10.5 -39l-6 -14q14 -192 6 -352t-34.5 -289t-64.5 -231.5t-83.5 -180t-92 -134.5t-90 -94.5t-77 -60t-53.5 -32.5zM1139.5 1115q-9.5 58 2.5 101t29 78t33 54l17 18q25 28 80.5 54t98.5 38l42 12q46 10 89 36.5t71 57.5t50 61t32 49l10 20 q52 -72 78 -159.5t26.5 -161t-6 -137t-16.5 -100.5l-11 -36q-16 -43 -40 -81t-46.5 -62.5t-42.5 -43t-32 -26.5l-13 -8q-49 -29 -102 -37.5t-122.5 15.5t-135.5 89q86 47 157 96t115 89.5t77.5 79t49.5 67t25.5 50t11.5 32.5l2 12q-36 -81 -99 -149.5t-127.5 -107.5 t-123.5 -66.5t-96 -37.5l-37 -10q-37 56 -46.5 114z" /> +<glyph unicode="" horiz-adv-x="997" d="M-4 -303q208 12 266 55q62 44 62 219v1364q0 167 -62 217q-58 49 -266 58v57h1001v-57q-207 -9 -268 -58t-61 -217v-1364q0 -176 61 -219t268 -55v-57h-1001v57z" /> +<glyph unicode="" horiz-adv-x="2527" d="M0 297q0 162 98 345.5t279 365.5q118 117 244.5 203.5t237.5 129.5t203.5 42t143.5 -52q91 -91 29 -295q-9 -29 6 -36t34 0l19 8q197 81 348 81.5t218 -85.5q63 -90 -2 -252q-12 -32 -2 -43.5t42 -20.5q58 -18 110 -47t98 -71t73 -101t27 -127q0 -79 -37.5 -163 t-106 -163.5t-171.5 -150.5t-227 -124.5t-280 -84.5t-323 -31q-158 0 -311.5 29.5t-288.5 87.5t-238 137.5t-163 187.5t-60 230zM256 199q13 -136 125.5 -240.5t293.5 -154t388 -29.5q154 15 290.5 68.5t231.5 130.5t146 175t41 199q-14 135 -127 239.5t-293.5 153.5 t-386.5 29q-207 -20 -375 -103.5t-258 -208t-76 -259.5zM559.5 200.5q1.5 69.5 34.5 135.5q42 87 126 147.5t182.5 79.5t201.5 -4q102 -26 169.5 -95t82 -156.5t-24.5 -184.5q-42 -96 -131.5 -161.5t-194.5 -82t-214 14.5q-74 23 -127.5 70.5t-79.5 107t-24.5 129z M698.5 110q12.5 -49 61.5 -71q50 -23 105.5 -5t86.5 68q30 47 16 96.5t-63 69.5q-50 21 -104.5 3t-83.5 -66q-31 -46 -18.5 -95zM988 271.5q6 -18.5 26 -25.5q19 -8 40 -0.5t31 26.5q11 19 5 38t-25 26q-19 6 -40.5 -1.5t-31.5 -25.5q-11 -19 -5 -37.5zM1645 1544 q-9 38 13 72t60 43q173 36 344 -17.5t293 -189.5q123 -136 159.5 -313.5t-17.5 -339.5v-2q-12 -37 -48.5 -55.5t-74.5 -6.5t-56 48t-6 73v2q39 115 13 242t-113 223q-88 97 -209.5 134.5t-243.5 10.5q-40 -8 -73.5 14t-40.5 62zM1726 1223q-7 34 11.5 63t52.5 37 q85 18 168 -8t143 -92q59 -67 77 -154t-9 -166q-10 -32 -41.5 -48t-63.5 -5q-33 10 -48.5 40.5t-4.5 63.5q27 91 -35 156q-60 69 -151 49q-33 -7 -62 12t-37 52z" /> +<glyph unicode="" horiz-adv-x="2224" d="M0 -373v2048h526v-760h469q101 146 289.5 417.5t237.5 342.5h585l-671 -977q0 -25 197 -293t394 -523l197 -255h-702q-98 136 -293 409.5t-293 409.5h-410v-819h-526z" /> +<glyph unicode="" horiz-adv-x="2129" d="M-10 1432q0 101 71.5 168t186.5 67t183.5 -66.5t70.5 -168.5t-69 -170t-189 -68h-2q-112 0 -182 68t-70 170zM16 -360v1368h455v-1368h-455zM723 -360h455v763q0 72 16 111q28 71 86.5 118.5t146.5 47.5q118 0 174 -82t56 -227v-731h454v784q0 154 -39 273t-110 193 t-165 112t-208 38q-86 0 -156 -21t-119 -58.5t-78.5 -71t-57.5 -76.5v-4h-2l2 4v195h-455q6 -131 0 -1368z" /> +<glyph unicode="" horiz-adv-x="2760" d="M0 565q0 71 4 215q53 17 98 17h37q34 -48 81.5 -144t64.5 -125q4 17 16.5 74.5t20.5 86.5t22 75.5t32 82t40 64.5q75 -12 116 -8q49 -111 93.5 -333.5t79.5 -317.5q-2 0 -8 2t-7 2q-19 0 -52.5 -11.5t-45.5 -13.5q-81 206 -127 416q-24 -43 -27 -110t-4.5 -137 t-21.5 -115l-11 4q-16 0 -45 -4t-43 -4h-37q-60 107 -116 182q-6 -12 -6 -31q0 -18 5 -52t5 -52l-2 -25q-64 -31 -107 -31q-14 0 -20 2q-35 113 -35 291zM727 410q0 39 10 86t29 93.5t53.5 77.5t77.5 31q21 0 57.5 -10t46.5 -12q19 -87 19 -166q0 -58 -12 -113 q-25 9 -78.5 10.5t-75.5 6.5q-10 -42 -10 -76q0 -42 20.5 -75.5t61.5 -33.5q18 0 53 10.5t53 10.5q34 0 47 -29q-87 -33 -168 -33q-95 0 -139.5 62t-44.5 160zM846 467l16 2q5 0 15.5 -4t15.5 -4l14 6q4 28 4 45q0 37 -10 82q-45 -51 -55 -127zM1071 356q0 252 160 373 q67 -6 123 -47q-1 -36 -16.5 -139t-10.5 -160q-40 -4 -59 -4q-16 0 -88 10q-11 -26 -11 -47q0 -45 35.5 -77t79.5 -32q54 0 84 48q36 -12 43 -35q-46 -43 -129 -43q-47 0 -94 16t-82 52t-35 85zM1186 444q7 -12 28 -12h19q18 40 18 100q0 26 -12 80q-6 -17 -20.5 -51.5 t-23 -62.5t-9.5 -54zM1389 483q-3 54 47 54q13 0 36.5 -2.5t34.5 -2.5q6 30 6 64q0 60 -15 177t-15 177q0 89 20 148q18 -10 41 -9.5t45 -9t51 -43.5q-12 -54 -12 -137q0 -41 8 -166t2 -194h13q12 -1 17 7t4.5 18t1 18t7.5 8q16 0 37.5 -17.5t46 -44t31.5 -32.5 q-18 -14 -83.5 -18.5t-78.5 -8.5q-2 -25 -2 -74q0 -32 1 -67.5t2.5 -78.5t2.5 -67q-16 -2 -46.5 -4t-45.5 -4v21q1 49 -6 138t-8 124q-13 3 -66 6t-77 20zM1829 500q0 40 4 118q22 -3 41 -10.5t43.5 -21t36.5 -19.5l-2 -55q0 -121 18 -238q31 11 53 37t33.5 58t17.5 72 t7.5 74t1.5 69v22q6 -2 18 -2q43 -4 101 -51q0 -6 1 -19.5t1 -19.5q0 -31 -8.5 -61t-15.5 -45t-29.5 -51.5t-28.5 -47.5q-34 -27 -70 -86q-44 -14 -78 -14q-145 0 -145 291zM2238 279q12 11 50 20q21 189 48 277q66 217 220 217q69 0 156 -50q34 -72 34 -153 q0 -135 -95.5 -243t-229.5 -140q-4 -66 -4 -98q0 -149 37 -240q-17 4 -76 4q-31 0 -45 4q-18 45 -26 129.5t-21 158.5t-48 114zM2423 330q80 21 134 98t54 162q0 61 -31 115q-36 -33 -63 -77t-45 -100.5t-27 -94.5t-22 -103z" /> +<glyph unicode="" horiz-adv-x="2037" d="M0 291q0 59 40 99t99 40q57 0 97 -40.5t40 -98.5q0 -57 -40 -98t-97 -41q-58 0 -98.5 41t-40.5 98zM0 1018q0 57 40.5 98t98.5 41q57 0 97 -41t40 -98t-40 -98t-97 -41q-58 0 -98.5 41t-40.5 98zM399 459q0 58 40.5 98.5t97.5 40.5q59 0 99 -40t40 -99q0 -57 -40.5 -97 t-98.5 -40q-57 0 -97.5 40t-40.5 97zM399 860q0 58 40.5 98.5t97.5 40.5q59 0 99 -40.5t40 -98.5q0 -57 -40.5 -97t-98.5 -40q-57 0 -97.5 40t-40.5 97zM518 -229q0 57 40.5 97t98.5 40q57 0 98.5 -40t41.5 -97q0 -58 -41.5 -99t-98.5 -41q-58 0 -98.5 40.5t-40.5 99.5z M518 1540q0 58 40 98.5t99 40.5q57 0 98.5 -40.5t41.5 -98.5q0 -57 -41.5 -97t-98.5 -40q-58 0 -98.5 40t-40.5 97zM676 182q0 57 40.5 98.5t98.5 41.5q57 0 97 -41.5t40 -98.5q0 -58 -40 -98.5t-97 -40.5q-59 0 -99 40.5t-40 98.5zM676 1139q0 57 40.5 98t98.5 41 q57 0 97 -41t40 -98q0 -58 -40 -99t-97 -41q-58 0 -98.5 40.5t-40.5 99.5zM1073 182q0 57 41 98.5t98 41.5t98.5 -41.5t41.5 -98.5q0 -58 -41.5 -98.5t-98.5 -40.5t-98 40.5t-41 98.5zM1073 1139q0 57 41 98t98 41t98.5 -41t41.5 -98q0 -58 -41.5 -99t-98.5 -41t-98 41 t-41 99zM1233 1540q0 58 40.5 98.5t98.5 40.5q57 0 97 -40.5t40 -98.5q0 -57 -40 -97t-97 -40q-58 0 -98.5 40t-40.5 97zM1249 -229q0 57 41 97t99 40q57 0 97 -40t40 -97q0 -58 -40 -99t-97 -41q-59 0 -99.5 40.5t-40.5 99.5zM1352 459q0 58 40 98.5t97 40.5q59 0 99 -40 t40 -99q0 -57 -40.5 -97t-98.5 -40q-57 0 -97 40t-40 97zM1352 860q0 58 40 98.5t97 40.5q59 0 99 -40.5t40 -98.5q0 -57 -40.5 -97t-98.5 -40q-57 0 -97 40t-40 97zM1761 291q0 58 40 98.5t97 40.5q59 0 99.5 -40.5t40.5 -98.5q0 -57 -41 -98t-99 -41q-57 0 -97 41t-40 98z M1761 1018q0 57 40 98t97 41q58 0 99 -41t41 -98t-41 -98t-99 -41q-57 0 -97 41t-40 98z" /> +<glyph unicode="" horiz-adv-x="1744" d="M2.5 588q-7.5 98 4 232.5t50.5 250.5q5 14 14 37.5t44 90.5t76.5 127t112 132t149.5 121.5t190.5 78.5t233.5 19q176 0 323.5 -60t246.5 -158.5t167.5 -228.5t99.5 -267t31 -277q0 -163 -27.5 -305t-76.5 -247.5t-103.5 -181.5t-120.5 -136q-114 -102 -249.5 -140 t-319.5 -43q-57 -2 -122 9t-139.5 36t-148 71t-141 107.5t-125.5 152t-96 198.5q-6 18 -16 51t-30 132.5t-27.5 197.5zM460 386.5q7 -111.5 15 -162t14 -64.5q12 -98 39 -175.5t61 -123.5t72 -79t74 -46.5t65 -20.5t46 -7l18 1q90 2 156.5 32.5t110.5 83.5t74 139t46 183.5 t27 233.5q7 288 1 464t-17 253l-11 76q-14 61 -26.5 105.5t-33.5 97.5t-48.5 89.5t-65.5 68.5t-90 48t-117 16q-49 7 -93 -3.5t-77 -33.5t-62 -54.5t-49.5 -68t-37.5 -73.5t-27 -71t-17 -60.5t-10 -42.5l-3 -16q-13 -94 -20.5 -225t-9.5 -215l-1 -85q-10 -153 -3 -264.5z " /> +<glyph unicode="" horiz-adv-x="2148" d="M0 424q19 285 344 354q15 108 43 231.5t80 262t111 198.5q98 101 245.5 155t298.5 54q175 0 335.5 -79.5t240.5 -225.5q39 -74 84.5 -268t62.5 -315q33 -13 70 -13q32 0 46.5 14t14.5 46q0 23 -12 69t-10 72v8q37 2 85 -51t79.5 -117.5t31.5 -101.5q0 -40 -19 -72 t-39.5 -50t-66.5 -35.5t-66.5 -22.5t-73.5 -17q-11 -3 -17 -4q12 -396 -158 -571l51 -51q9 -5 52 -24.5t72 -38t38 -36.5q-133 -104 -270 -104q-68 0 -154 35q-181 -76 -369 -76q-243 0 -479 125q-70 -15 -112 -39q-13 -8 -54.5 -37.5t-75.5 -48.5t-57 -19q-6 37 -6 76 q0 161 109 258q-123 203 -127 527l-15 2q-64 1 -161 -36.5t-132 -37.5q-8 0 -20 4zM475 233q0 -3 6 -27.5t8 -27.5q24 -83 72.5 -161.5t110.5 -120.5q88 -60 216.5 -96t239.5 -36q135 0 298 58t245 147q139 149 139 527q0 206 -46.5 412.5t-141.5 363.5q-37 60 -56 77 q-33 27 -85 27q-102 0 -219 -125q-157 97 -287 97q-77 0 -143 -35t-114 -96.5t-87.5 -140t-65 -171.5t-44 -184t-28 -185t-14 -166.5t-4.5 -136.5zM846 1067q0 44 31.5 76.5t74.5 32.5q44 0 76.5 -32.5t32.5 -76.5t-32 -75t-77 -31q-43 0 -74.5 31t-31.5 75zM961 1104 q0 -9 7 -17t17 -8q9 0 17 8t8 17q0 10 -8 18t-17 8q-10 0 -17 -7.5t-7 -18.5zM1153 981l4 4l-2 -6zM1163 991l107 107l104 -107q-46 -14 -102 -14q-60 0 -109 14zM1167 946q55 -10 103 -10q45 0 100 10l-100 -100zM1382 979v6l2 -4zM1438 1067q0 44 32 76.5t76 32.5 t76.5 -32.5t32.5 -76.5t-32 -75t-77 -31q-44 0 -76 31t-32 75zM1552 1104q0 -9 8 -17t17 -8q10 0 18.5 8t8.5 17q0 10 -8 18t-19 8q-9 0 -17 -8t-8 -18z" /> +<glyph unicode="" horiz-adv-x="1779" d="M6 -334v1960q246 43 608 43q286 0 482.5 -49.5t339.5 -157.5q338 -257 338 -757q0 -274 -89 -477.5t-241 -331.5q-303 -258 -924 -258q-292 0 -514 28zM457 -2q39 -8 157 -8q209 -1 360 73t236.5 232.5t85.5 392.5q0 316 -167 475.5t-467 159.5q-135 0 -205 -18v-1307z " /> +<glyph unicode="" d="M0 -94q0 112 80 192t192 80q114 0 193.5 -79.5t79.5 -192.5q0 -114 -79.5 -193.5t-193.5 -79.5q-113 0 -192.5 79.5t-79.5 193.5zM0 592v391q183 0 358.5 -48.5t323.5 -136t273 -212.5t212.5 -273t136 -323.5t48.5 -358.5h-394q0 192 -72.5 367.5t-207.5 310.5 q-137 137 -311.5 210t-366.5 73zM0 1286v393q278 0 543 -74t489.5 -206t414 -321.5t321.5 -414t206 -489.5t74 -543h-393q0 225 -59.5 439.5t-166.5 396t-260 334t-334.5 259.5t-396 166.5t-438.5 59.5z" /> +<glyph unicode="" horiz-adv-x="2019" d="M0 1120q0 114 44 217.5t119 178.5t178.5 119t217.5 44q159 0 297 -86q80 15 164 15q196 0 374.5 -76.5t308 -205.5t206 -307.5t76.5 -373.5q0 -95 -23 -207q57 -120 57 -248q0 -114 -44 -217.5t-119 -178.5t-178.5 -119t-217.5 -44q-138 0 -264 66q-91 -16 -176 -16 q-195 0 -373.5 76.5t-307.5 205.5t-205.5 307.5t-76.5 374.5q0 93 19 193q-76 133 -76 282zM453 371q0 -85 61 -174q146 -213 504 -213q81 0 158 13.5t151.5 44.5t130 77.5t89.5 118.5t34 161q0 80 -28 143.5t-75 104.5t-108 71.5t-128.5 49.5t-134.5 34.5t-128 30 t-108 32.5t-75 46t-28 66q0 36 24 63.5t61 41.5t73 21t69 7q60 0 105 -13.5t70 -35.5t43.5 -48t32.5 -52t30 -48t42.5 -35.5t63.5 -13.5q56 0 98 39t42 94q0 54 -31 111q-32 59 -86.5 102.5t-121.5 67t-133.5 34.5t-135.5 11q-74 0 -145 -11t-143 -38t-125.5 -68 t-87.5 -106.5t-34 -147.5q0 -78 27.5 -138.5t73.5 -98.5t105.5 -66.5t126 -46t132.5 -33t125.5 -31.5t105.5 -36t73.5 -53t27.5 -78q0 -46 -26.5 -80.5t-68.5 -53t-85 -27.5t-86 -9q-67 0 -116 16.5t-76.5 42.5t-47 57.5t-34 63.5t-31 58t-44 42.5t-67.5 16.5 q-58 0 -99.5 -35t-41.5 -92z" /> +<glyph unicode="" horiz-adv-x="2519" d="M0 -178q62 -6 123 -6q360 0 643 221q-168 3 -300.5 102.5t-182.5 255.5q41 -8 96 -8q69 0 137 19q-180 36 -298 177.5t-118 327.5v7q110 -61 236 -64q-106 70 -169 184t-63 246q0 138 72 260q193 -238 470 -380.5t595 -159.5q-14 68 -14 118q0 140 69 259t188.5 188 t260.5 69q110 0 207.5 -43t169.5 -120q178 37 327 127q-28 -90 -86.5 -164.5t-138.5 -122.5q150 17 295 82q-101 -154 -256 -269v-67q0 -147 -31 -296.5t-94.5 -293.5t-153.5 -275t-214 -242t-269.5 -192t-327.5 -126.5t-380 -45.5q-427 0 -793 232z" /> +<glyph unicode="" horiz-adv-x="1759" d="M-31 211q0 92 13 332q8 108 78 177t178 75q205 10 616 10t616 -10q108 -6 178 -75t78 -177q11 -204 11 -332q0 -129 -11 -332q-8 -108 -78 -177t-178 -75q-205 -10 -616 -10t-616 10q-108 6 -178 75t-78 177q-13 241 -13 332zM106 500h125v-668h121v668h125v112h-371 v-112zM240 1735h122l78 -312h9l73 312h123l-94 -303q-6 -21 -16.5 -50t-18 -53t-12.5 -51v-324h-121q0 3 1 85.5t1 150t-2 74.5q-4 28 -11.5 52.5t-18.5 53.5t-17 51zM477 -78q0 -98 74 -98q65 0 125 72v-64h106v576h-106v-439q-43 -43 -64 -43q-28 0 -28 39v443h-107v-486z M639 1100v299q0 69 45 107t115 38q67 0 109 -41t42 -108v-297q0 -74 -41 -116t-114 -42q-72 0 -114 44t-42 116zM750 1085q0 -21 12 -34t33 -13q23 0 35 14t12 38v313q0 20 -13.5 31.5t-33.5 11.5q-18 0 -31.5 -11.5t-13.5 -29.5v-320zM887 -168h108v43q42 -51 103 -51 q96 0 96 127v319q0 146 -104 146q-51 0 -95 -56v252h-108v-780zM995 -59v360q23 23 45 23q23 0 34 -17t11 -41v-303q0 -49 -38 -49q-29 0 -52 27zM1042 1044v486h107v-440q0 -39 29 -39q25 0 63 43v436h107v-576h-107v64q-60 -72 -125 -72q-74 0 -74 98zM1276 -6 q0 -79 39 -128.5t117 -49.5q159 0 159 178v43h-110q0 -4 1 -27.5t0 -34t-5 -27.5t-15 -24.5t-28 -7.5t-27.5 7t-14.5 21.5t-5 25t-1 28.5v108h205v148q0 77 -38 122.5t-115 45.5q-73 0 -117.5 -47.5t-44.5 -120.5v-260zM1386 197v61q0 64 48 64q47 0 47 -64v-61h-95z" /> +<glyph unicode="" horiz-adv-x="2347" d="M0 1122q112 134 225.5 238t195.5 158t148 88.5t99 43.5l34 9q59 11 107 -4.5t81 -50.5t60.5 -91t44 -116.5t32 -136t25.5 -141t23.5 -140.5t26.5 -125q66 -258 105 -364.5t85 -106.5q49 0 136 114t192 310q33 62 45.5 123.5t4.5 109.5t-35.5 83t-68 50t-98 4.5 t-122.5 -49.5q39 228 219 384q149 130 335 160q184 30 307 -54q147 -101 139 -325q-1 -50 -11 -105q-27 -152 -90 -308.5t-143.5 -289t-179 -260.5t-193.5 -228.5t-190 -188t-165.5 -143t-122.5 -89.5q-63 -41 -129 -47.5t-120 15t-103.5 61t-84 85.5t-58.5 94 q-33 70 -120 354t-168.5 541.5t-109.5 290.5q-3 3 -8.5 7.5t-27 9.5t-49 0.5t-75 -28t-102.5 -67.5z" /> +<glyph unicode="" horiz-adv-x="2525" d="M0 -150l215 760q71 41 175 64t172 26l69 2q102 0 213 -20q8 -2 22.5 -5t55 -14.5t76 -25t76 -35t65.5 -45.5l-213 -758q-75 56 -164 92t-141 44l-52 8q-71 6 -133 6q-12 0 -33 -0.5t-80 -6t-111.5 -15t-113 -30t-98.5 -47.5zM258 827l215 760q72 41 176 64t172 25l68 3 q104 0 213 -20q8 -2 22.5 -5t55 -14.5t76 -25t76 -35t65.5 -45.5l-213 -760q-75 56 -164 92t-141 44l-52 8q-71 6 -131 6q-12 0 -33 -0.5t-80.5 -6t-112 -14.5t-113.5 -29t-99 -47zM1141 -223l213 760q76 -56 165 -92t140 -44l51 -8q70 -6 133 -6q12 0 33 0.5t80.5 6 t112 14.5t112.5 28.5t98 46.5l-213 -759q-72 -41 -176 -64t-172 -26l-67 -3q-99 0 -213 21q-8 2 -22.5 5t-55.5 14.5t-76.5 25t-76.5 35t-66 45.5zM1386 750l213 757q76 -56 165 -92t140 -43l52 -8q70 -6 133 -6q12 0 33 0.5t80 6t111.5 14.5t113 28.5t98.5 46.5l-213 -758 q-72 -42 -176.5 -65.5t-173.5 -26.5l-68 -2q-102 0 -211 23q-23 4 -60 13t-117 41.5t-120 70.5z" /> +<glyph unicode="" horiz-adv-x="1841" d="M-102 246h448l354 585l-266 469h-448l266 -469zM639 430l709 1245h475l-707 -1245l455 -803h-475z" /> +<glyph unicode="" horiz-adv-x="2824" d="M0 1421l12 -39q7 -12 15 -20.5t12 -11.5l4 -2l39 -21h227l588 -704q23 -25 23 -52v-393q0 -16 -6 -24.5t-12 -9.5l-5 -1q-25 0 -151.5 -2.5t-139.5 -3.5q-20 0 -20 -18v-113h1056v117q-1 6 -5.5 9.5t-8.5 3.5l-4 1h-295q-2 0 -5 1t-8 8.5t-5 21.5v414q-2 5 3 13.5 t11 14.5l6 6q24 24 541 510h272q19 1 37 15l35 39q12 14 12 37v28q-2 5 -6 8t-7 3l-3 1h-893l-14 -12q-2 -13 2.5 -26t10.5 -20l5 -7l47 -47l37 -15h235l-423 -399l-467 596h84q27 -2 45 8l139 43l6 3t9.5 10t4.5 18v29q0 6 -4.5 9.5t-9.5 4.5h-4q-1 0 -79 0.5t-186 0.5 t-237.5 0.5t-238 0.5t-183.5 -0.5t-78 -1.5q-16 -2 -20 -14v-17zM2437 1645l379 -15l-170 -1161l-125 6zM2464 82l8 225l225 -8l-8 -225z" /> +<glyph unicode="" horiz-adv-x="1781" d="M2 28q-14 46 86 115q13 31 33.5 72.5t33 67t13.5 32.5q1 3 6 28.5t13.5 65t19 87.5t26 106.5t31.5 110.5q26 84 63 153.5t59.5 97t35.5 37.5q11 9 13 13t-7 10q-7 5 -20.5 18t-35.5 45.5t-39 72.5t-26.5 103t-1.5 132q2 17 8 16q10 -1 19 -59v-2q3 -28 15 -64t32.5 -77 t55 -76t75.5 -52q3 -1 17 4.5t50.5 16.5t90 23.5t152 26t218.5 22.5q3 75 15 155q-14 10 -22.5 27.5t-10.5 29.5l-2 13q-10 -18 -18.5 -23.5t-22.5 -3.5q-12 1 -15 55t3 101q3 40 38.5 65t65.5 27q4 2 11 5t26.5 7.5t36.5 3.5q29 30 92 39.5t111 3.5l49 -6q43 5 80.5 1 t69.5 -14t55 -20t36 -18l13 -8q62 3 92 -55q14 -22 24.5 -52.5t15 -68.5t-11.5 -64l-5 -1q-10 5 -23 36q-7 -24 -18.5 -43.5t-18.5 -27.5l-8 -7q1 -32 -2.5 -63t-12.5 -58t-14.5 -42.5t-16.5 -36.5l-10 -21q-7 -16 5 -43q12 -32 46 -176t31 -201q-3 -63 -30 -133.5 t-56 -99.5q8 -70 -43 -168q-13 -23 -35 -91t-30 -108q-20 -104 -2 -127q2 -3 20 -25.5t29.5 -41.5t9.5 -31q-3 -19 -33.5 -38.5t-52.5 -19.5q-25 0 -56 14.5t-40 39.5q-9 27 -10.5 68t4.5 67q5 19 11.5 47.5t16.5 85t16 109.5t5 114t-12 105q-11 -5 -30.5 -12t-85 -18.5 t-134.5 -10.5q-12 -62 -27 -116.5t-24 -78.5l-9 -24q-10 -17 -10 -232q0 -84 29 -211q18 -13 27 -29t8 -26v-10q-4 -26 -32 -42t-61 -16q-34 0 -64 23t-30 57q0 7 3 102t1 144q-1 22 -2 55.5t-2 50.5t-3.5 39.5t-6.5 40.5q-53 202 -55 293q-15 0 -27 10q-28 -33 -55 -61.5 t-40 -40.5l-13 -12q2 -11 8 -32.5t10 -38t4 -21.5q0 -16 29 -29q24 -10 51.5 -31t26.5 -41q-2 -25 -48.5 -28.5t-93.5 18.5q-12 5 -80 217q-6 27 -7 32t5 28q34 98 31 131q-2 30 -46.5 66t-80.5 36q-11 0 -24.5 -5.5t-29.5 -17t-28 -21.5t-30.5 -25.5t-26.5 -22.5 q-31 -23 -77.5 -66t-49.5 -45q-11 -6 -76 -125t-84 -166q-1 -2 -4.5 -16t-7.5 -25t-10.5 -27.5t-16 -29t-22 -24.5t-30 -18t-38.5 -5q-35 2 -43 28z" /> +<glyph unicode="" horiz-adv-x="2045" d="M0 608q0 153 47 318.5t127 296.5q85 143 231.5 248t314 156.5t337.5 51.5q134 0 269 -46t249.5 -125.5t209.5 -184t157 -223.5q51 -87 76.5 -205.5t25.5 -232.5q0 -230 -85 -425.5t-232 -328t-347.5 -206t-427.5 -71.5q38 68 124.5 223t152.5 270.5t131 219.5l2 4 q7 11 24.5 38t25.5 40t19.5 35t18.5 42.5t12 43.5q13 54 13 98q0 162 -99 291l563 166q-583 0 -876 -2q-14 2 -45 2q-133 0 -243 -69.5t-167.5 -187t-42.5 -249.5q-4 18 -4 57q0 92 31 158l-418 412l406 -699q40 -147 162.5 -240.5t275.5 -93.5q27 0 67 7l-135 -566 q-120 0 -241.5 41t-226 111.5t-193 161t-154.5 192.5q-135 209 -135 471zM639 647q0 -157 111 -269t268 -112t268 112t111 269t-111 268t-268 111t-268 -111t-111 -268z" /> +<glyph unicode="" horiz-adv-x="1701" d="M0 -317q0 55 63 55q17 0 28 0.5t38 5t46.5 12.5t44.5 25.5t40.5 42t27 64t11.5 89.5v1258q0 55 -7.5 97.5t-26.5 83.5t-58 65.5t-96 29.5q-18 2 -30 7t-18 9t-9 15t-3 15.5v19.5q-4 51 47 51q9 0 127.5 -3t280 -6t276.5 -3q236 0 403.5 11t248 21.5t106.5 10.5 q35 0 49.5 -20t14.5 -44q0 -6 -12.5 -52.5t-12.5 -84.5q0 -32 7 -96t7 -90q0 -37 -24 -56.5t-49 -19.5q-21 0 -31.5 12t-11.5 45v24q4 17 0.5 34.5t-7 34.5t-21 33.5t-42 31t-70 26.5t-105.5 21t-148 14t-197 5q-100 0 -163 -5.5t-100 -14t-53.5 -29t-20 -39t-3.5 -56.5 q0 -59 1 -275t1 -237q0 -39 13 -54t46 -15h477q78 0 134.5 44.5t62.5 135.5q3 34 11 50t17 19t29 3q29 0 46.5 -23.5t13.5 -69.5q-1 -17 -10 -95t-9 -132q0 -50 9.5 -136.5t9.5 -117.5q0 -34 -23 -51t-49 -6.5t-35 45.5q-6 25 -8.5 35t-12.5 35.5t-20 38.5t-29.5 32.5 t-43 29.5t-59.5 17.5t-79 7.5h-424q-36 0 -52.5 -22t-16.5 -78v-543q0 -40 8 -70.5t29.5 -60.5t67.5 -46.5t114 -16.5q20 0 87.5 -1t106 -0.5t106 2.5t115 9t102.5 18t98.5 30t76.5 44q48 38 69.5 94t41.5 166q6 31 42 36q43 7 70 -31q23 -31 21 -83q-2 -24 -34 -129 t-32 -153q0 -12 1.5 -43.5t1 -47.5t-4.5 -37t-16 -30.5t-31 -9.5q-16 0 -32.5 4.5t-34.5 10t-73 10t-140 4.5q-136 0 -660.5 -3.5t-583.5 -3.5q-38 0 -50.5 11.5t-12.5 38.5z" /> +<glyph unicode="" horiz-adv-x="2129" d="M4 100v1180q0 3 6 39l695 -594l-693 -666q-8 28 -8 41zM96 1401q15 6 35 6h1870q19 0 37 -6l-697 -596l-92 -74l-182 -149l-182 149l-92 74zM98 -20l699 669l270 -219l270 219l699 -669q-17 -7 -35 -7h-1870q-15 0 -33 7zM1430 725l692 594q6 -18 6 -39v-1180 q0 -20 -6 -41z" /> +<glyph unicode="" horiz-adv-x="2265" d="M0 424v309q0 22 14.5 36.5t36.5 14.5h543l-236 -411h-307q-22 0 -36.5 14.5t-14.5 36.5zM250 -76l135 -78zM271 13.5q-6 20.5 3 39.5l623 1082q10 19 30.5 24t39.5 -6l133 -76q20 -10 25.5 -31t-5.5 -40l-620 -1082q-10 -19 -31.5 -24t-40.5 6l-133 78q-18 9 -24 29.5z M901 373l236 411h137l192 -411h-565zM1060 1653q2 19 13 24q21 11 73 -63.5t146.5 -237.5t126.5 -215q57 -90 154.5 -268.5t184.5 -343.5t91 -172q22 -39 -4.5 -74t-62.5 -49q-3 -1 -13 -5.5t-13 -5.5t-11.5 -4t-12.5 -3t-12 -0.5t-14.5 1.5t-15.5 5t-19 8q-18 9 -71.5 110 t-119.5 247t-114 254.5t-84 193.5q-10 22 -28 62.5t-34.5 78t-37.5 85t-38.5 90t-34.5 86.5t-28 80t-17 66.5t-4 49.5zM1733 784h481q21 0 36 -15t15 -36v-309q0 -21 -15 -36t-36 -15h-272q-8 31 -17 47q-16 31 -49 94q-129 243 -143 270zM1759 136q6 22 27 32l76 39 q20 10 42 2.5t33 -27.5l64 -123q10 -22 4 -44.5t-25 -34.5l-55 -33q-20 -11 -43 -5.5t-35 25.5l-82 127q-12 20 -6 42zM1915 -176q-6 24 3 43t14 25.5t18 19.5l34 14q100 29 141 -61q35 -76 19 -234q-7 22 -44.5 39.5t-85.5 42t-72 58.5q-21 29 -27 53z" /> +<glyph unicode="" horiz-adv-x="2220" d="M-2 4v182v111v424h287v-424h1648v424h289v-424v-111v-182h-2224z" /> +<glyph unicode="" d="M0 610q0 217 81 413.5t218.5 339t327 226.5t397.5 84t397.5 -84t327 -226.5t218.5 -339t81 -413.5q0 -7 -1 -20.5t-1 -20.5q-7 209 -91 398t-220 325.5t-321.5 216.5t-389.5 80t-389.5 -80t-321.5 -216.5t-220 -325.5t-91 -398q0 7 -1 20.5t-1 20.5zM375 612 q0 183 87 338.5t236.5 245.5t325.5 90t325.5 -90t236.5 -245.5t87 -338.5q0 -7 -1 -20.5t-1 -20.5q-10 174 -98.5 319t-234 229.5t-314.5 84.5t-314.5 -84.5t-234 -229.5t-98.5 -319q0 7 -1 20.5t-1 20.5zM715 213q0 53 5.5 97t13.5 76.5t23.5 58t30 42t38 28.5t42.5 18 t49 9.5t51 4t56 0.5t56 -0.5t51 -4t49 -9.5t42.5 -18t38 -28.5t30 -42t23.5 -58t13.5 -76.5t5.5 -97q0 -159 -41.5 -294.5t-112.5 -214.5t-155 -79t-155 79t-112.5 214.5t-41.5 294.5zM811 786q0 91 62.5 156.5t150.5 65.5t150.5 -65.5t62.5 -156.5t-62.5 -156t-150.5 -65 t-150.5 65t-62.5 156z" /> +<glyph unicode="" horiz-adv-x="2250" d="M2 89q11 15 33 3q243 -141 529 -219t585 -78q400 0 793 150q9 4 28.5 12t28.5 12q31 12 48.5 -12t-11.5 -45q-46 -34 -94 -62q-176 -105 -394 -162t-424 -57q-318 0 -603 111.5t-511 314.5q-19 17 -8 32zM618 674q0 142 70 241.5t191 151.5q113 48 272 68q54 7 180 16v35 v28v32.5t-1.5 28.5t-4.5 32.5t-8.5 26.5t-13.5 28q-21 29 -58.5 45t-77.5 16h-16q-67 -6 -116.5 -42.5t-63.5 -102.5q-7 -42 -41 -47l-236 29q-41 10 -32 51q18 95 67 166.5t118 113t144 62.5t160 26h51q99 0 198.5 -29.5t166.5 -90.5q19 -18 34.5 -37t26 -42t18.5 -41 t12.5 -46.5t7.5 -45t4 -50.5t1.5 -48.5t0 -53.5t-0.5 -52v-377q0 -53 15.5 -97.5t29 -64t47.5 -61.5q24 -40 -4 -62q-142 -124 -184 -159q-25 -19 -59 -5q-23 20 -40 36t-31 32.5t-22 27t-23 31.5t-24 33q-114 -123 -225 -155q-73 -21 -172 -21q-158 0 -259.5 97t-101.5 276 zM971 715q0 -79 39.5 -127.5t107.5 -48.5q6 0 18 2t15 2q85 22 133 110q23 39 34 85.5t12 74.5t1 94v51q-119 0 -180 -16q-180 -52 -180 -227zM1828.5 55.5q3.5 8.5 14.5 16.5q54 35 99 47q99 26 191.5 19.5t109.5 -29.5q8 -12 8 -37v-15q0 -72 -39 -169t-109 -156 q-15 -12 -26.5 -6.5t-5.5 22.5q101 236 67 281q-28 33 -196 20q-52 -6 -95 -12q-11 -1 -16.5 4.5t-2 14z" /> +<glyph unicode="" horiz-adv-x="2371" d="M0 418v1261h432v-616q322 184 754 184q241 0 461 -64t378.5 -172t252.5 -257.5t94 -313.5q0 -132 -60 -255t-169.5 -222.5t-255.5 -174.5t-327 -116t-374 -41q-237 0 -453.5 62t-374.5 167.5t-254 251t-102 306.5h-2zM432 440q0 -147 101 -271t274.5 -195.5t378.5 -71.5 t378 71.5t274 195.5t101 271q0 146 -100.5 270t-274 196.5t-378.5 72.5t-378.5 -72.5t-274.5 -196.5t-101 -270zM686 440q0 -97 67 -179t182 -129.5t251 -47.5q135 0 249.5 47.5t181 129.5t66.5 179t-66.5 179t-181 130t-249.5 48q-136 0 -251 -48t-182 -130t-67 -179z" /> +<glyph unicode="" horiz-adv-x="2267" d="M-4 514q0 140 68.5 259t186.5 188t257 69l2 -2q0 5 -1 14t-1 13q0 119 45.5 226.5t123 185t184 123.5t224.5 46q211 0 371 -135.5t197 -339.5h35q118 0 224.5 -46t184 -123.5t123 -185t45.5 -226.5q0 -158 -77 -292t-210 -212t-290 -78q-17 0 -25 2v-2h-1137h-18h-19h-10 v2q-201 11 -342 160t-141 354z" /> +<glyph unicode="" horiz-adv-x="2074" d="M-25 586l439 334l-439 331l637 416l416 -356l426 356l619 -395l-406 -338l406 -348l-629 -379l-416 319l-416 -319zM412 72v116l192 -112l416 317l2 -2v-727zM422 924l602 -379l606 401l-602 346zM1022 -336l2 727l4 2l414 -317l205 123v-129z" /> +<glyph unicode="" horiz-adv-x="2881" d="M0 371q0 45 4.5 79t19.5 72.5t40 66.5t69 54.5t105 43t148.5 26.5t197.5 10q175 0 303 -27q76 -16 119 -37v-329h-600q0 -33 1.5 -53.5t11 -53t27 -51t53 -33t85.5 -14.5q174 0 174 125h129h4h115v-182q-59 -29 -115 -39q-145 -31 -307 -31q-109 0 -195 9.5t-147 26 t-105 43t-70.5 55.5t-41.5 69.5t-20 79.5t-5 90zM406 440h364v30.5t-3 29.5t-9 32t-19.5 26t-33 24t-50.5 13.5t-71 6.5q-38 0 -67.5 -6.5t-47.5 -15.5t-31 -25t-19 -27.5t-9.5 -32t-3.5 -28.5v-27zM1006 68v182h159q-3 -104 -151 -178q-4 -4 -8 -4zM1006 68q4 0 8 4 q148 74 151 178h-159v80h165q6 53 1 102.5t-20.5 90.5t-52 76t-93.5 60v375h219v-416h4q34 50 76.5 70.5t103.5 20.5q87 0 141 -54q-82 -60 -82 -209q0 -96 38 -163t118 -86q-3 -63 -12 -110.5t-31 -96t-66.5 -75t-109.5 -26.5q-67 0 -111.5 24t-74.5 79h-2v-86h-211v162z M1006 330v329q57 -25 93.5 -60t52 -76t20.5 -90.5t-1 -102.5h-165zM1225 307q0 -158 17.5 -220t72.5 -62q57 0 75.5 62t18.5 220v9q0 49 -0.5 72.5t-3 60t-8.5 54t-16 36.5t-26.5 26.5t-39.5 7.5q-17 0 -30 -4.5t-22 -16t-16 -22t-11 -32.5t-6.5 -37.5t-3.5 -47t-1 -50 v-56.5zM1468 446q0 149 82 209q22 -23 37.5 -60t22.5 -64t10.5 -81.5t3.5 -71.5v-75v-106q-80 19 -118 86t-38 163zM1485 772q0 142 82 193q69 53 207 53q7 0 100 -6l219 -447v-209q0 -28 3.5 -79.5t4.5 -69.5h-205l-10 106h-4q-66 -118 -205 -118q-37 0 -53 2v106v75 t-3.5 71.5t-10.5 81.5t-22.5 64t-37.5 60q89 68 326 60v63q0 59 -17.5 88t-72.5 29q-28 0 -45.5 -9.5t-25 -29.5t-9.5 -37.5t-2 -46.5h-219zM1683 457q0 -127 84 -127q23 0 41.5 8t30 20t19.5 32.5t12 37.5t5.5 43.5t1.5 42.5t-0.5 42.5t-0.5 35.5q-9 -1 -31.5 -1.5 t-31 -1.5t-27 -2.5t-26 -4.5t-21.5 -8t-20 -11.5t-14.5 -16.5t-12 -22.5t-6.5 -29t-3 -37.5zM1821 1118h315l205 -475l223 475h293l-387 -735v-389h-289v389l-88 182v187q0 42 -4 73.5t-17.5 64.5t-37 55.5t-64 40.5t-96.5 26zM1874 1012q56 -8 96.5 -26t64 -40.5t37 -55.5 t17.5 -64.5t4 -73.5v-187z" /> +<glyph unicode="" horiz-adv-x="1673" d="M573 580v391h316v196q0 212 138.5 362t334.5 150h313v-391h-313q-31 0 -55.5 -34t-24.5 -83v-200h393v-391h-393v-949h-393v949h-316z" /> +<glyph unicode="" horiz-adv-x="1923" d="M0 -55q0 -129 127 -221.5t307 -92.5q181 0 308.5 92.5t127.5 221.5q0 131 -127.5 223t-308.5 92q-2 0 -6 -1t-6 -1q-96 92 0 207q145 8 245.5 112t100.5 248q0 57 -14 103q57 10 90 28v236q-107 -71 -238 -66q-94 64 -207 64q-154 0 -262 -107t-108 -258q0 -97 48.5 -179 t131.5 -130q-20 -25 -33 -53.5t-20.5 -67.5t4.5 -87t45 -97q-94 -42 -149.5 -112.5t-55.5 -153.5zM248 829q0 67 43.5 115.5t103.5 48.5q61 0 104.5 -48t43.5 -116t-43.5 -115.5t-104.5 -47.5q-60 0 -103.5 48t-43.5 115zM254 -55q0 55 52.5 93t127.5 38t128.5 -38t53.5 -93 q0 -54 -53.5 -92.5t-128.5 -38.5t-127.5 38.5t-52.5 92.5zM932 1513q0 69 48.5 117.5t117.5 48.5t118.5 -48.5t49.5 -117.5t-49.5 -118t-118.5 -49t-117.5 49t-48.5 118zM971 188v981h274v-981h-274zM1341 961h113v-582v-2q8 -61 39.5 -105.5t71 -65t77.5 -32t64 -12.5 l25 -2q42 -1 77 5.5t54.5 16.5t33 20t18.5 18l5 7l4 203q-60 -22 -104.5 -26.5t-64.5 5t-31.5 22t-12.5 23.5l-2 11q0 6 -2 8v488h186v208h-186v191h-252v-191h-113v-208z" /> +<glyph unicode="" horiz-adv-x="1560" d="M-82 1354v37q13 25 36.5 44.5t43 30.5t62.5 22.5t61.5 15.5t73.5 14q48 9 73 13.5t68 10t67.5 5t57 -5.5t52.5 -17t38.5 -33t28.5 -51q22 -65 0 -103q-13 -22 -50.5 -33t-73.5 -20.5t-46 -26.5q-9 -14 -9 -131q0 -51 -8.5 -218t0.5 -220q8 -98 25 -108q19 -4 29.5 -3 t33.5 7.5t29 7.5q24 5 87.5 19t88 19t73.5 14.5t92.5 15.5t94.5 12q4 0 57 3t84 7.5t41 13.5q12 10 16.5 32t3 39t-6 46.5t-4.5 34.5q-18 157 0 332q0 4 2 16.5t3 19t2.5 19.5t1.5 21t0.5 19.5t0 19.5t-2 17t-4.5 15t-7 10q-8 8 -47 15t-44 10q-57 24 -93 71.5t-19 110.5 q9 26 71 58q42 21 89 34t123 25.5t102 17.5l71 -1q70 0 70 1q23 1 51.5 -35.5t45 -85t6.5 -77.5q-7 -22 -69.5 -48.5t-72.5 -37.5q-14 -18 -20 -59t-6.5 -75.5t1 -98t1.5 -83.5v-846q0 -10 -0.5 -32.5t-0.5 -39.5t0.5 -36.5t2.5 -32t6 -16.5q9 -8 46 -9t46 -4 q41 -13 69 -72.5t1 -105.5q-4 -7 -20 -14.5t-39.5 -16t-35.5 -14.5q-70 -33 -164.5 -56t-175.5 -17q-52 3 -109 62.5t-50 111.5q5 37 65 61q8 3 47.5 8t51.5 17t13.5 43.5t-4 84t-5.5 66.5v107q0 8 0.5 22t0.5 25v22.5t-1.5 19.5t-3.5 11q-16 23 -203 0q-238 -35 -363 -74 q-5 -1 -35 -9.5t-47.5 -14t-39.5 -17.5t-31 -26t-11.5 -47.5t-0.5 -63.5t6.5 -73.5t5.5 -55.5q1 -10 -0.5 -33.5t-1 -42t5.5 -26.5q8 -12 29.5 -16t45 -4t27.5 -1q35 -12 66.5 -53.5t25.5 -83.5q-4 -37 -47 -66.5t-108.5 -47t-123 -26.5t-114.5 -14t-98 5q-43 11 -83.5 58 t-37.5 87q7 51 113 86q5 2 24.5 6.5t24.5 9.5q16 20 0 158q-21 177 -25 492q-1 81 -6.5 241.5t-5.5 265.5q0 12 0.5 35.5t0.5 40.5t-0.5 36t-2.5 32t-6 18q-8 12 -46.5 18.5t-47.5 10.5q-39 17 -61.5 43.5t-43.5 77.5z" /> +<glyph unicode="" d="M0 655q0 208 81 397.5t218.5 327t327 218.5t397.5 81t397.5 -81t327 -218.5t218.5 -327t81 -397.5t-81 -397.5t-218.5 -327t-327 -218.5t-397.5 -81t-397.5 81t-327 218.5t-218.5 327t-81 397.5zM205 655q0 -167 65 -318.5t174.5 -261t261 -174.5t318.5 -65t318.5 65 t261 174.5t174.5 261t65 318.5t-65 319t-174.5 261.5t-261 174.5t-318.5 65t-318.5 -65t-261 -174.5t-174.5 -261.5t-65 -319zM580 295q0 -63 44 -107.5t107 -44.5q67 0 116.5 49.5t49.5 116.5v17v534l410 76v-426q-30 10 -58 10q-67 0 -116.5 -49t-49.5 -117 q0 -63 43.5 -107t106.5 -44q64 0 114.5 46.5t51.5 110.5v9v16v782l-594 -102v-614q-30 10 -57 10q-69 0 -118.5 -49t-49.5 -117z" /> +<glyph unicode="" horiz-adv-x="1564" d="M0 -375v2048h1565v-1673l-1170 6v-381h-395zM391 360h817v922h-817v-922z" /> +<glyph unicode="" d="M0 535v91v7.5v6.5v8v7q0 239 11 332q27 222 150 364q48 55 111 103q307 231 752 225h10v-1591h254v426q8 -12 77 -124.5t108 -168.5q59 -83 129.5 -109t187.5 -26h74v242q-37 0 -50.5 0.5t-38 3t-35 8t-28 16.5t-31.5 28t-32 42q-21 28 -42.5 62.5t-46.5 77t-40 65.5 l350 487h-303l-279 -387v928q279 -45 488 -205q40 -31 73.5 -63t59.5 -68t46 -67.5t34.5 -74.5t25 -73.5t16.5 -80.5t10 -79.5t5.5 -86.5t1.5 -86v-91v-29q0 -239 -11 -332q-27 -221 -150 -363q-47 -55 -111 -103q-300 -226 -752 -226t-752 226q-40 31 -73.5 62.5t-59.5 68 t-46 68t-34.5 74.5t-25 73.5t-16.5 80.5t-10 79.5t-5.5 86t-1.5 85.5zM166 213q76 -78 172 -107.5t221 -29.5q77 0 147 20t127 58.5t91 102t34 144.5q0 91 -27.5 154t-71 93t-96.5 47t-106.5 23t-97 13t-71 26t-27.5 54q0 53 42.5 74.5t100.5 21.5q117 0 178 -61l160 160 q-122 122 -348 122q-103 0 -187.5 -35t-138 -110.5t-53.5 -179.5q0 -77 22.5 -133t59.5 -86.5t82 -49t93.5 -26.5t90.5 -13t76.5 -13t48.5 -23q21 -24 21 -62q0 -94 -148 -94q-157 0 -231 74z" /> +<glyph unicode="" horiz-adv-x="2727" d="M-2 655q0 221 108.5 407.5t295 295t407.5 108.5q254 0 450 -130t300 -369q30 -75 264 -615q26 -58 45 -94.5t48 -75.5t61 -61t79 -37.5t107 -17.5q149 -4 243.5 73.5t94.5 196.5q0 37 -7.5 66t-27 52t-39 38.5t-57.5 32.5t-67 27t-83 28q-101 33 -172.5 63.5t-133 70.5 t-98 85.5t-57 105.5t-20.5 135q0 186 118 298t320 112q260 0 391 -236l-172 -88q-93 127 -229 127q-95 0 -157 -58.5t-62 -147.5q0 -25 5 -46t11.5 -38t21.5 -33t27 -27t36 -23.5t40.5 -20t48.5 -18.5t51 -17.5t58 -18.5t61 -19q111 -36 184 -74t126.5 -91t77.5 -124 t24 -169q0 -135 -71.5 -244t-195.5 -169.5t-276 -59.5q-105 0 -189 25t-148.5 76t-112.5 119t-91 163l-28 67l-260 590q-68 157 -214.5 253.5t-324.5 96.5q-160 0 -296 -79t-215 -215t-79 -296t79 -296t215 -214.5t296 -78.5q168 0 307.5 86.5t214.5 230.5l105 -242 q-112 -139 -276.5 -218t-350.5 -79q-221 0 -407.5 108.5t-295 295t-108.5 407.5z" /> +<glyph unicode="" horiz-adv-x="2478" d="M14 -240v1837h379l19 -16h1689l19 16h356v-1843h-350v15h-1751v-9h-361zM375 31v-164h1751v151l-707 531l-162 -133l-176 143zM375 154l629 469l-629 516v-985zM545 1466l712 -610l711 610h-1423zM1497 612l629 -471v992z" /> +<glyph unicode="" d="M0 1016l647 661v-252l617 -567l383 94l-400 -426l801 -897l-909 803l-385 -393l61 346l-522 647z" /> +<glyph unicode="" horiz-adv-x="2217" d="M0 354q-2 129 50 239t137 182t188.5 129t207 88.5t189.5 51.5t140 26l53 7v-252q-117 -9 -214.5 -40.5t-159 -74.5t-108.5 -93t-71 -98t-38.5 -87.5t-17.5 -63.5l-4 -24q-17 -78 8 -147.5t78 -119t121 -91t139 -67.5t131 -44t98 -25l38 -8v-211q-199 20 -360 71 t-258.5 116t-170 139t-104.5 144t-50.5 127t-19.5 92zM1044 -369v1848l291 200v-1888zM1405 842q52 1 106.5 -11.5t95 -31.5t73.5 -38t50 -33l17 -13l-170 -70l641 -160v502l-219 -125q-52 55 -132.5 97.5t-158 63.5t-147.5 34.5t-113 16.5l-43 3v-235z" /> +<glyph unicode="" d="M0 -96v1503q0 114 79 193t193 79h1504q114 0 193 -79t79 -193v-1503q0 -114 -79 -193.5t-193 -79.5h-1504q-114 0 -193 79.5t-79 193.5zM78 -39q0 -104 74 -178t178 -74h1388q104 0 178 74t74 178v1389q0 104 -74 178t-178 74h-1388q-104 0 -178 -74t-74 -178v-1389z M489 27v61h101q36 0 62.5 15.5t39 38t19 45t7.5 37.5l1 16v12v59v772q0 45 -12.5 78.5t-30.5 48.5t-36.5 23t-31.5 9l-12 1h-102v66h714q68 0 125 -16.5t93 -42.5t64 -58t42.5 -63.5t23.5 -57.5t11 -43l2 -16v-127q0 -63 -18.5 -113.5t-48.5 -81.5t-66 -54t-72 -33t-66 -16 t-48 -7h-19h-293v-344q0 -40 14.5 -69.5t35 -43t41.5 -21.5t35 -9l15 -1h97v-65h-687zM936 692h223q8 0 20.5 1t44.5 12t56 29.5t44 59t19 95.5l-2 125q0 8 -1 21t-12 46.5t-29.5 60.5t-60 51t-97.5 28h-205v-529z" /> +<glyph unicode="" horiz-adv-x="1820" d="M0 750q0 150 46 291t130 254.5t195.5 199t250.5 132t287 46.5q186 0 354.5 -73t291 -196.5t194.5 -294.5t72 -359q0 -244 -117 -452t-315 -333q2 -5 7 -13.5t24 -32.5t43 -45t66.5 -43.5t92.5 -35.5v-155q-82 -18 -151 -13t-120 20.5t-94.5 48.5t-74.5 71t-58 88 q-102 -27 -215 -27q-185 0 -353.5 73t-290 197t-193.5 294.5t-72 357.5zM453 629q0 -156 62 -288.5t169 -210t234 -77.5q50 0 106 17q-4 6 -11 17t-30 38t-48 48.5t-62.5 39.5t-75.5 20v162v19q141 8 257 -43.5t199 -139.5q61 78 95 181t34 217v237q0 156 -62 288.5 t-169 210t-233 77.5q-127 0 -234 -77.5t-169 -210t-62 -288.5v-237z" /> +<glyph unicode="" horiz-adv-x="2459" d="M0 655q0 143 39.5 278t110.5 247t170.5 205.5t217 158t253 100t276.5 35.5q178 0 332 -51v-618q-129 71 -271 71q-82 0 -173.5 -27t-157.5 -73q-93 -67 -165.5 -168.5t-72.5 -196.5q0 -184 117.5 -288.5t304.5 -104.5q159 0 309.5 85t222.5 222q9 16 26 54t17 49 q3 137 3 293t-1.5 346.5t-1.5 294.5q40 -20 78 -44.5t92 -62.5t74 -51q127 -87 284 -137.5t308 -50.5q41 0 54.5 -15.5t13.5 -60.5q0 -55 -33.5 -112t-85 -102.5t-108 -80.5t-107.5 -53q8 -63 8 -142q0 -214 -87 -405.5t-232 -326.5t-340.5 -213.5t-407.5 -78.5 q-141 0 -276.5 35.5t-253 100t-217 158t-170.5 205.5t-110.5 247t-39.5 278z" /> +<glyph unicode="" horiz-adv-x="2361" d="M0 289q0 30 7 88.5t20 64.5q13 -6 21.5 -66t8.5 -87q0 -28 -8.5 -87.5t-21.5 -64.5q-13 6 -20 63.5t-7 88.5zM131 289q0 51 10.5 150t12.5 126q0 5 4 9t8 4q8 0 12 -13q3 -29 10 -86t11 -104t4 -86q0 -49 -11.5 -144.5t-13.5 -121.5q-4 -15 -12 -15q-5 0 -8.5 4.5 t-3.5 10.5q-2 25 -12.5 120.5t-10.5 145.5zM297 289q0 50 9.5 150.5t10.5 111.5q0 7 4.5 12.5t10.5 5.5q16 0 16 -18q2 -24 9 -81t10.5 -100t3.5 -81q0 -40 -3.5 -86.5t-10.5 -106.5t-9 -86q0 -16 -16 -16q-6 0 -10.5 5t-4.5 11q-1 13 -10.5 119.5t-9.5 159.5zM485 289 q0 103 9 302.5t10 223.5q0 8 5.5 14.5t12.5 6.5q9 0 15 -6.5t6 -14.5q1 -33 10.5 -228t9.5 -298q0 -53 -9.5 -158t-10.5 -119q0 -8 -6 -14t-15 -6q-7 0 -12.5 6t-5.5 14q-2 31 -7 87t-8.5 103t-3.5 87zM678 289q0 114 6.5 327t7.5 263q2 9 9 16.5t16 7.5t15.5 -7.5 t8.5 -16.5q1 -71 9 -275.5t8 -314.5q0 -51 -8 -146t-9 -127q-2 -9 -8.5 -16.5t-15.5 -7.5t-16 7.5t-9 16.5q-1 21 -7.5 120.5t-6.5 152.5zM872 289q0 108 6 315.5t7 237.5q2 12 10 21t18 9t18.5 -9t10.5 -21q1 -61 4.5 -174.5t5.5 -205.5t2 -173q0 -39 -2 -84t-5.5 -100.5 t-4.5 -84.5v3q-1 -13 -9.5 -22t-19.5 -9t-19 8t-9 20q-1 11 -7 114t-6 155zM1067 287q0 107 2 227t5.5 266.5t4.5 225.5q2 15 11 25.5t22 10.5q12 0 22 -10.5t11 -25.5q1 -79 4.5 -225.5t5.5 -266.5t2 -227q0 -37 -2 -80.5t-5.5 -97.5t-4.5 -82q-2 -14 -11.5 -24.5 t-21.5 -10.5q-13 0 -22 10.5t-11 24.5q-1 28 -4.5 82t-5.5 97.5t-2 80.5zM1230 722q0 169 3 318q-1 20 26 36t66 24t71 12t50 4q198 0 345.5 -148t164.5 -366q59 27 112 27q120 0 204.5 -94t84.5 -226t-84.5 -225.5t-204.5 -93.5h-804q-12 0 -21.5 12.5t-9.5 26.5 q0 112 -1.5 318t-1.5 375z" /> +<glyph unicode="" horiz-adv-x="1261" d="M0 840v290q124 42 207 113q83 69 137 176q55 106 72 260h293v-518h485v-321h-485v-525q0 -177 18 -229q18 -50 70 -80q68 -41 155 -41q158 0 310 101v-322q-132 -64 -238 -88q-112 -25 -229 -25q-140 0 -250 35q-114 40 -183 103q-75 63 -106 139q-29 71 -29 215v717 h-227z" /> +<glyph unicode="" horiz-adv-x="1875" d="M0.5 862q-5.5 39 3.5 70q8 73 32 128t53 82t57 43.5t46 19.5l19 3q50 4 98 -19t80.5 -60t54 -78.5t25.5 -75.5q3 -23 4.5 -46t1 -66t-11.5 -80t-30 -75.5t-57 -66.5t-91 -39t-100 0t-78 38t-55.5 64t-35 78t-16 80zM130.5 64q12.5 62 36 108.5t60 87.5t67 66t56.5 45 t29 24t53.5 46t109.5 106t101 135q30 49 78 89t111 60.5t128.5 15t136 -53.5t128.5 -138q6 -9 17.5 -24t51 -62t82.5 -93t111 -109.5t139 -118.5q54 -42 81 -102.5t27 -116.5t-7.5 -106t-18.5 -81l-12 -30l-8 -16t-26.5 -36.5t-48.5 -48.5t-74 -44t-102.5 -30.5t-135.5 -0.5 t-171 38q-73 24 -161.5 26.5t-140.5 -6.5l-52 -9q-8 -2 -21 -4.5t-56 -9.5t-81.5 -10.5t-96 -6t-99.5 3.5q-46 -1 -86 14t-68.5 39t-52 53.5t-38 59.5t-24.5 54.5t-14 39.5l-4 16q-17 68 -4.5 130zM426 147q-15 -98 20 -180q7 -13 20 -30t52.5 -44.5t89.5 -37.5h260v628 l-116 2v-170h-140q-39 0 -72.5 -17.5t-53.5 -42t-34.5 -49t-19.5 -42.5zM475 1364q0 131 64.5 223t156.5 92t157 -92t65 -223t-65 -223t-157 -92t-156.5 92t-64.5 223zM549 47q-12 43 8 96q4 11 12 22.5t26.5 27t41.5 22.5h113v-256h-105q-33 0 -57 22t-32 44zM932 -31 q0 -36 31 -64t61 -38l31 -10h299v444h-129v-334h-123q-18 3 -30 12.5t-14 18.5l-3 8v297l-123 -2v-332zM1039 1236q-7 54 1 110q6 61 49 131.5t107 116t119 32.5q89 -21 152.5 -117.5t48.5 -195.5q-8 -51 -31.5 -103t-59.5 -96.5t-88.5 -69.5t-111.5 -18q-59 8 -100 38.5 t-60 74t-26 97.5zM1405 752q0 307 221 307q56 0 101.5 -20.5t72 -50.5t45 -66.5t25 -65.5t6.5 -51q0 -4 0.5 -25t0.5 -35.5t-2 -41t-5.5 -46t-11 -45.5t-18 -45t-27 -39t-38 -32.5t-51 -21t-65.5 -9.5q-51 -1 -91 8t-66 24t-45 40t-29 48t-15.5 56t-6.5 56t-1 55z" /> +<glyph unicode="" horiz-adv-x="2070" d="M0 -43v1389q0 134 88 233.5t221 99.5h1428q144 0 239 -76.5t95 -218.5v-120q-190 35 -228 41q-10 1 -33.5 3t-42.5 4.5t-34 6.5q-22 6 -61 20.5t-69.5 21.5t-66.5 7q-125 0 -270 -96q-66 -6 -194.5 -14.5t-231.5 -19t-195 -28.5q-137 -26 -168 -40q-46 -21 -59 -68 q-10 -39 -10 -174v-258l-7 -37l1078 -27l163 56q-86 -154 -143 -271l-217 -96l-831 -14q-7 -6 -21.5 -8t-21.5 -9q8 -51 14 -80q8 -35 32.5 -59t60.5 -36.5t66.5 -17.5t69.5 -8q422 -26 686 -26q78 0 246.5 41t259.5 41q133 0 228 -60v-110q0 -156 -80 -237t-236 -81h-1481 q-125 0 -199.5 98t-74.5 228zM1413 1075q0 29 20.5 50.5t49.5 21.5t50 -21.5t21 -50.5q0 -28 -21 -48.5t-50 -20.5t-49.5 20.5t-20.5 48.5z" /> +<glyph unicode="" d="M0 653q0 208 81 397.5t218.5 327t327 218.5t397.5 81t397.5 -81t327 -218.5t218.5 -327t81 -397.5t-81 -397.5t-218.5 -327t-327 -218.5t-397.5 -81t-397.5 81t-327 218.5t-218.5 327t-81 397.5zM80 653q0 -277 146 -505.5t386 -344.5l-450 1235q-82 -184 -82 -385z M233 1171q8 0 21 -0.5t23 -0.5t18 1q98 1 252 13q24 2 35.5 -16.5t3 -38.5t-32.5 -23l-109 -10l344 -1022l207 618l-147 404q-49 6 -98 10q-24 2 -32.5 22t3 39t35.5 17q69 -5 131 -8.5t89 -3.5l28 -1q99 1 251 13q24 2 35.5 -16.5t3.5 -38.5t-32 -23l-107 -10l340 -1016 l94 315q6 18 19 60t18 59t14 49.5t13 51.5t7 42.5t3 42.5q0 134 -80 263q-5 8 -26 43.5t-27 47.5t-18.5 39t-16.5 48t-4 43q0 67 46 117.5t114 50.5q2 0 6 -1t6 -1q-127 118 -291.5 182.5t-347.5 64.5q-244 0 -452.5 -114.5t-338.5 -311.5zM758 -254q124 -37 266 -37 q165 0 313 53q-1 2 -3 6.5t-3 6.5l-291 796zM1499 -164q214 125 341.5 342.5t127.5 474.5q0 246 -115 453q7 -51 7 -96q0 -128 -72 -338z" /> +<glyph unicode="" horiz-adv-x="2052" d="M0 655q0 -178 58.5 -342t164.5 -297q-28 82 -14.5 178t59.5 199.5t106.5 202.5t128 188t123.5 156.5t93 107.5l37 39q-302 187 -480 267q-131 -141 -203.5 -320.5t-72.5 -378.5zM285 -51q34 102 93 207.5t126 192.5t140.5 169.5t140 144t120 108.5t85.5 71l32 24 q13 -10 36.5 -27.5t91.5 -75t132 -117t145.5 -147.5t145 -172.5t118 -185t76.5 -192.5q-142 -149 -334.5 -233.5t-406.5 -84.5q-216 0 -407.5 84t-333.5 234zM360 1434q136 117 306.5 181t359.5 64q188 0 358 -64t306 -181q-78 41 -166.5 41t-177 -29.5t-160 -65 t-116.5 -64.5l-44 -30h-2q-9 6 -24 16.5t-62.5 39t-95 51.5t-114 46t-126 32.5t-125 1.5t-117.5 -39zM1294 1087q304 187 482 267q131 -141 203.5 -320.5t72.5 -378.5q0 -179 -58.5 -342.5t-166.5 -296.5q28 82 15 178t-59 199.5t-106.5 202.5t-128 188t-124 156.5 t-93.5 107.5z" /> +<glyph unicode="" horiz-adv-x="1533" d="M7.5 473q-2.5 -108 12.5 -168q10 -37 39.5 -52t59.5 -5l418 129q45 15 63 54.5t0 78.5t-65 53l-418 168q-28 6 -56 -15.5t-34 -62.5q-17 -72 -19.5 -180zM186 1450q-20 35 2.5 70t77.5 55q169 65 350 94q59 3 83.5 -18t27.5 -60q36 -467 51 -794q3 -49 -24 -76t-66 -19 t-65 50q-304 472 -437 698zM309 -169.5q-3 30.5 19 52.5l284 340q34 39 74 43t65.5 -29t20.5 -90v-452q-5 -28 -35 -44t-69 -5q-73 12 -173.5 52t-150.5 77q-32 25 -35 55.5zM920 629q4 32 28 59l266 367q19 20 54.5 14.5t60.5 -37.5q51 -53 108 -144t76 -151q11 -38 -4 -64 t-45 -32l-428 -109q-35 -9 -63.5 3.5t-42.5 37t-10 56.5zM939.5 264q1.5 -32 23.5 -61l233 -389q16 -22 55 -19.5t68 31.5q56 49 114 128t85 142q14 40 3 70t-40 39l-420 143q-36 14 -63.5 3t-43.5 -33t-14.5 -54z" /> +<glyph unicode="" horiz-adv-x="1478" d="M0 94v27v168q1 13 5.5 24.5t8.5 16.5l4 6q133 157 399.5 471.5t399.5 472.5q-116 -23 -210.5 -29.5t-149 0t-95.5 21.5t-56.5 27.5t-24.5 25.5q-2 0 -2 2q-3 4 -5 6q-12 29 -6 80q9 96 101 225q4 5 12 14.5t12 14.5q20 20 56 2q36 -20 40 -20q114 -46 304 -54 q262 -12 544 47q19 4 28.5 -3.5t8.5 -16.5v-10q-3 -28 -9 -86.5t-9 -87.5q-1 -6 -8 -15t-14.5 -16.5t-18 -17t-12.5 -11.5q-70 -82 -330 -385q-145 -169 -389 -448q-62 -73 -123 -144q-23 -26 -27 -37.5t-4 -48.5q139 5 309 -100q92 -60 176 -104.5t122 -58.5l38 -15 q250 -67 395 47q12 -47 8.5 -100.5t-14 -106.5t-37.5 -100.5t-61.5 -82.5t-85.5 -52.5t-109 -10.5q-80 9 -160.5 45t-179.5 93q-46 27 -147.5 104.5t-161.5 108.5q-98 50 -193.5 63.5t-240.5 13.5h-63q-18 0 -25 35z" /> +<glyph unicode="" horiz-adv-x="2525" d="M-129 1122q190 36 288.5 69.5t137.5 76.5q6 7 16 20.5t35 61.5t41 104q24 -30 36.5 -62t13.5 -57t-1 -45.5t-6 -31.5l-4 -11q-12 -27 -21 -43.5t-15.5 -27.5t-20 -22.5t-21 -17.5t-32.5 -22.5t-42 -28.5q-72 -55 -69 -128t63 -111q53 -32 103.5 12.5t107.5 159.5 q22 45 34.5 106.5t19.5 105.5t36 97.5t84 95.5q31 24 67.5 33.5t70.5 8.5t71.5 -3.5t78 2t82.5 20.5t92 56.5t100 104.5q5 7 14.5 17.5t41 38t65.5 48t85.5 37.5t103.5 16.5t117 -25t128 -77.5q-72 31 -137.5 39.5t-112.5 -3t-87 -32.5t-65.5 -48.5t-44 -52t-25.5 -41.5 l-8 -16q-24 -57 -45 -99t-38 -71t-37 -48.5t-35.5 -31t-39.5 -20t-42.5 -13t-52 -12.5t-60.5 -16q-75 -23 -97 -90q-20 -60 13 -105q41 -54 124 -29q34 10 71 33q62 40 103 82t60.5 75.5t39 66.5t54 65t89.5 60q69 34 138 51t116 18.5t112 3.5t109 9q61 10 103 18.5 t110.5 27.5t117 42t97.5 61t76 84q11 18 27.5 48t44 101t28.5 117q34 -119 23 -213.5t-54 -164t-90 -116t-84 -68.5l-37 -23q-124 -64 -218.5 -98.5t-139 -40.5t-98 -20t-105.5 -42q-210 -113 -106 -318q43 -84 125.5 -91t158.5 61l11 11t25 30t32 48.5t26 64.5t13 79 q27 -63 32.5 -124.5t-5.5 -104.5t-26 -77t-29 -51l-13 -16q-55 -59 -94.5 -89.5t-90 -46.5t-108 -10t-143.5 30q-109 30 -182.5 38t-112 -0.5t-76.5 -31.5q-57 -33 -87.5 -87.5t-4.5 -99.5q20 -34 43 -47.5t62 -6t96 41.5q79 47 134 61t140 17q79 2 156 -18t129 -60 q75 -49 151 -117q-83 49 -162.5 62.5t-135 -1.5t-98.5 -37.5t-64 -43.5l-21 -21q-70 -80 -118.5 -122.5t-93.5 -56t-80 -8t-91 27.5q-25 10 -61 26t-61 26.5t-44 14.5v226q0 120 -49.5 219.5t-138.5 161.5q-121 81 -275 81q-156 0 -274 -79q-42 58 -105 67v154q0 63 -44 107 t-107 44h-37zM131 -33v332q0 134 39 203q38 67 109 106t165 39q142 0 227 -89t85 -224v-277h-414v-137q0 -47 27 -72.5t75 -25.5q94 0 103 100h209q0 -128 -84 -215q-88 -88 -228 -88q-94 0 -165 39t-109 106q-39 69 -39 203zM342 215h205v115q0 56 -27.5 85t-75.5 29 t-75 -29t-27 -85v-115zM879 -193q22 74 22 146q0 23 -6 41q50 -8 70 -10q125 -11 174 -95q2 -2 4 -6.5t8.5 -19t9 -28.5t4.5 -35.5t-4 -39.5q-39 32 -83 48.5t-78 17t-62 -3t-44 -9.5z" /> +<glyph unicode="" horiz-adv-x="1742" d="M4 -115q6 63 25 135q23 93 148 719t145 715q13 55 22 85.5t25 59.5t34 42t51 24t72.5 13.5t102.5 2.5h493q121 0 276 -2t238 -2q73 0 97 -72q25 -73 -12 -158q-41 -93 -129 -122q-31 -10 -66 -10h-821l-103 -477l721 -7q77 0 104 -71q26 -69 -9 -146q-38 -85 -121 -108 q-24 -6 -50 -6h-737l-98 -508h884q130 0 157 -92q21 -73 -28 -161q-44 -78 -109 -100q-19 -6 -36 -6h-1133q-62 0 -98 35t-43.5 94.5t-1.5 122.5z" /> +<glyph unicode="" horiz-adv-x="1777" d="M0 221q0 91 64.5 156t156.5 65q91 0 156 -65t65 -156q0 -94 -69 -160q133 -151 334 -151q141 0 237 84q96 87 96 217q0 81 -51 158q-48 78 -123 131q-65 44 -235 116q-154 61 -250 121q-87 57 -150 131q-62 73 -94 152q-28 79 -28 162q0 209 165 352q168 145 404 145 q159 0 317 -67q135 -59 232 -164q76 -66 76 -164q0 -92 -65.5 -156.5t-156.5 -64.5q-92 0 -156.5 64.5t-64.5 156.5q0 39 21 90q-65 33 -181 33q-141 0 -229 -64t-88 -163q0 -87 78 -156q81 -68 262 -145q183 -79 289 -150q103 -68 168 -151q68 -83 98 -175q1 -2 2 -6t2 -6 q-72 -60 -113 -143.5t-41 -179.5q0 -109 58 -213q-25 -31 -49 -56q-177 -168 -422 -168q-243 0 -426 131q-181 130 -285 398l6 2q-10 30 -10 59zM1255 68q0 -106 74 -181t180 -75t180 75t74 181q0 105 -74.5 179.5t-179.5 74.5t-179.5 -74.5t-74.5 -179.5z" /> +<glyph unicode="" horiz-adv-x="1359" d="M0 1649h205l16 -248h21l10 6q79 133 208 202.5t296 69.5q176 0 313.5 -91.5t214 -255.5t76.5 -374q0 -154 -36.5 -282t-98.5 -216t-145.5 -149t-176.5 -89.5t-192 -28.5q-142 0 -258 58.5t-177 162.5l-4 6h-22l-6 -14v-775h-232v1559q0 181 -12 459zM244 803 q0 -63 12 -113q38 -143 151 -231t259 -88q207 0 331.5 157t124.5 418q0 244 -124.5 397.5t-321.5 153.5q-147 0 -262 -93t-152 -241q-18 -67 -18 -108v-252z" /> +<glyph unicode="" horiz-adv-x="1773" d="M0 -401v1015v1016l1026 -1016zM0 -401l1026 1015l274 -272l-413 -240l-887 -512v9zM0 1630v8l887 -512l413 -239l-274 -273zM1026 614l274 273l474 -273l-474 -272z" /> +<glyph unicode="" horiz-adv-x="2650" d="M27 643v105q0 51 81.5 94.5t222 68.5t306.5 25t306.5 -25t222 -68.5t81.5 -94.5v-105q-2 -77 -180.5 -131.5t-429.5 -54.5t-429.5 54.5t-180.5 131.5zM614 1141v55q3 38 131 66t306 28q177 0 304 -28t130 -66h2v-55h-2q-3 -40 -129.5 -68.5t-304.5 -28.5t-305 28.5 t-132 68.5zM1047 129v121v10q5 75 112.5 137.5t288 98.5t393.5 36t393.5 -36t287.5 -98.5t112 -137.5v-8v-115v-8q-4 -75 -111 -137.5t-288 -98.5t-394 -36t-393.5 36t-288 98.5t-112.5 137.5zM1513 827v2v78v6q5 59 155 100.5t360 41.5t359.5 -41.5t154.5 -100.5v-4v-80v-2 q0 -60 -150 -102.5t-364 -42.5t-364.5 42.5t-150.5 102.5z" /> +<glyph unicode="" horiz-adv-x="2312" d="M0 1319q0 40 27 67t67 27h481q33 0 59.5 -20t33.5 -52l49 -200h1380l14 43q9 30 34 47.5t55 17.5q18 0 26 -4q30 -7 49 -32.5t19 -55.5q0 -11 -4 -27l-242 -804q-7 -30 -32 -49t-56 -19h-1145q-32 0 -58 20.5t-34 51.5l-221 897h-408q-40 0 -67 27t-27 65zM762 954 l127 -508h1001l4 19l148 489h-1280zM848 -37q0 78 56 133.5t134 55.5t133.5 -55.5t55.5 -133.5t-55.5 -133t-133.5 -55t-134 55t-56 133zM981 795h340v-189h-299zM1483 606l2 189h332l-50 -189h-284zM1559 -37q0 78 56 133.5t134 55.5t133 -55.5t55 -133.5t-55 -133 t-133 -55t-134 55t-56 133z" /> +<glyph unicode="" horiz-adv-x="1918" d="M10 -184v682l238 264h174v-131h-115l-164 -182v-502h1629v502l-164 182h-115v131h174l236 -264v-682h-1893zM422 469v162v131v383l309 309h762v-692v-131v-162h-1071zM545 594h825v737h-516v-309h-309v-428z" /> +<glyph unicode="" horiz-adv-x="1425" d="M-20 176q0 129 57 201q49 64 151 92q-32 83 -32 121q0 69 71 143q75 72 142 72q31 0 82 -19q-103 297 -142 426q-49 165 -49 236q0 99 49 154q51 57 137 57q149 0 355 -604l35 -101q11 28 24 68q101 295 192.5 446.5t176.5 151.5q82 0 129 -55q49 -55 49 -144 q0 -59 -49 -231q-45 -153 -135 -410q115 -27 168 -110q55 -86 55 -273q0 -363 -217 -596q-221 -231 -561 -231q-135 0 -260 49q-123 44 -220 135q-102 95 -155 203q-53 109 -53 219zM113 186q0 -50 28 -120q26 -66 80 -138q82 -108 199 -166q117 -57 264 -57q263 0 444 199 q179 197 179 497q0 89 -13 146q-10 44 -39 69q-55 45 -217 82q-161 37 -344 37q-45 0 -57 -12q-14 -7 -14 -41q0 -83 94 -119q101 -43 338 -43h57q33 0 47 -22q17 -17 23 -64q-34 -34 -113 -63q-64 -24 -108 -54q-83 -61 -132 -141q-47 -78 -47 -151q0 -41 21 -105 q22 -68 22 -88v-12l-8 -31q-49 3 -79.5 23.5t-51.5 60.5q-36 65 -39 168q-6 -2 -24 -2h-23q2 -10 2 -25q0 -60 -47 -104q-46 -43 -111 -43q-96 0 -194 92q-98 95 -98 184q0 18 6 33q3 16 32 45q51 -62 70 -88q86 -121 156 -121q19 0 35 13q12 12 12 20q0 13 -25 59 q-17 30 -76 109q-60 77 -92 102q-32 29 -45 29q-38 0 -75 -45q-37 -46 -37 -113zM297 578q0 -28 33 -93q31 -59 92 -139q64 -82 115 -127q49 -41 73 -41q14 0 29 15q14 17 14 32q0 26 -37 119q-48 113 -94 188q-49 76 -80 101q-34 31 -63 31q-22 0 -51 -31q-31 -31 -31 -55z M389 1462q0 -71 49 -219q45 -144 135 -389q19 12 58 12q2 0 14 -1t21 -1q7 0 53 -4l-141 410q-56 158 -91 213q-26 43 -53 43q-17 0 -31 -17t-14 -47zM729 418q26 -64 39 -103q41 48 82 78q-10 2 -31 5t-31 5q-35 7 -59 15zM944 836l137 -25q102 284 142 408q51 165 51 196 q0 33 -14 51q-9 15 -31 15q-29 0 -64 -56q-36 -55 -88 -206z" /> +<glyph unicode="" d="M0 -205v1639q0 85 60 144.5t145 59.5h1638q85 0 145 -59.5t60 -144.5v-1639q0 -85 -60 -145t-145 -60h-1638q-85 0 -145 60t-60 145zM410 614q0 -167 82 -308.5t223.5 -223.5t308.5 -82t308.5 82t223.5 223.5t82 308.5q0 125 -48.5 239t-130.5 196.5t-196 131t-239 48.5 t-239 -48.5t-196 -131t-130.5 -196.5t-48.5 -239zM614 614q0 169 120.5 289.5t289.5 120.5t289.5 -120.5t120.5 -289.5t-120.5 -289t-289.5 -120t-289.5 120t-120.5 289z" /> +<glyph unicode="" horiz-adv-x="1425" /> +<glyph horiz-adv-x="1359" /> +</font> +</defs></svg>
\ No newline at end of file diff --git a/addons/auth_oauth/static/lib/zocial/css/zocial-regular-webfont.ttf b/addons/auth_oauth/static/lib/zocial/css/zocial-regular-webfont.ttf Binary files differnew file mode 100755 index 00000000000..94809d3a57f --- /dev/null +++ b/addons/auth_oauth/static/lib/zocial/css/zocial-regular-webfont.ttf diff --git a/addons/auth_oauth/static/lib/zocial/css/zocial-regular-webfont.woff b/addons/auth_oauth/static/lib/zocial/css/zocial-regular-webfont.woff Binary files differnew file mode 100755 index 00000000000..1d6c4abc9d9 --- /dev/null +++ b/addons/auth_oauth/static/lib/zocial/css/zocial-regular-webfont.woff diff --git a/addons/auth_oauth/static/lib/zocial/css/zocial.css b/addons/auth_oauth/static/lib/zocial/css/zocial.css new file mode 100644 index 00000000000..89fc7450631 --- /dev/null +++ b/addons/auth_oauth/static/lib/zocial/css/zocial.css @@ -0,0 +1,420 @@ +@charset "UTF-8"; + +/*! +Code written by Sam Collins (@smcllns) of www.eventasaur.us +You are free to use this work commercially +You are free to extend this work without permissions from the author (just do so tastefully eh?) +Enjoy +*/ + +/* Reference icons from font-files */ + +@font-face { + font-family: 'zocial'; + font-style: normal; + font-weight: normal; + src: url('zocial-regular-webfont.eot'); + src: url('zocial-regular-webfont.eot?#iefix') format('embedded-opentype'), + url('zocial-regular-webfont.woff') format('woff'), + url('zocial-regular-webfont.ttf') format('truetype'), + url('zocial-regular-webfont.svg#ZocialRegular') format('svg'); + unicode-range: U+0-U+10FFFF; +} + +/* Button structure */ + +.zocial, +a.zocial { + border: 1px solid #777; + border-color: rgba(0,0,0,0.2); + border-bottom-color: #333; + border-bottom-color: rgba(0,0,0,0.4); + color: #fff; + -moz-box-shadow: inset 0 0.08em 0 rgba(255,255,255,0.4), inset 0 0 0.1em rgba(255,255,255,0.9); + -webkit-box-shadow: inset 0 0.08em 0 rgba(255,255,255,0.4), inset 0 0 0.1em rgba(255,255,255,0.9); + box-shadow: inset 0 0.08em 0 rgba(255,255,255,0.4), inset 0 0 0.1em rgba(255,255,255,0.9); + cursor: pointer; + display: inline-block; + font: bold 100%/2.1 "Lucida Grande", Tahoma, sans-serif; + padding: 0 .95em 0 0; + text-align: center; + text-decoration: none; + text-shadow: 0 1px 0 rgba(0,0,0,0.5); + white-space: nowrap; + + -moz-user-select: none; + -webkit-user-select: none; + user-select: none; + + position: relative; + + -moz-border-radius: .3em; + -webkit-border-radius: .3em; + border-radius: .3em; +} + +.zocial:before { + content: ""; + border-right: 0.075em solid rgba(0,0,0,0.1); + float: left; + font: 120%/1.65 zocial; + font-style: normal; + font-weight: normal; + margin: 0 0.5em 0 0; + padding: 0 0.5em; + text-align: center; + text-decoration: none; + text-transform: none; + + -moz-box-shadow: 0.075em 0 0 rgba(255,255,255,0.25); + -webkit-box-shadow: 0.075em 0 0 rgba(255,255,255,0.25); + box-shadow: 0.075em 0 0 rgba(255,255,255,0.25); + + -webkit-font-smoothing: antialiased; +} + +.zocial:active { + outline: none; /* outline is visible on :focus */ +} + +/* Buttons can be displayed as standalone icons by adding a class of "icon" */ + +.zocial.icon { + overflow: hidden; + max-width: 2.4em; + padding-left: 0; + padding-right: 0; + max-height: 2.15em; + white-space: nowrap; +} +.zocial.icon:before { + padding: 0; + width: 2em; + height: 2em; + + box-shadow: none; + border: none; +} + +/* Gradients */ + +.zocial { + background-image: -moz-linear-gradient(rgba(255,255,255,.1), rgba(255,255,255,.05) 49%, rgba(0,0,0,.05) 51%, rgba(0,0,0,.1)); + background-image: -ms-linear-gradient(rgba(255,255,255,.1), rgba(255,255,255,.05) 49%, rgba(0,0,0,.05) 51%, rgba(0,0,0,.1)); + background-image: -o-linear-gradient(rgba(255,255,255,.1), rgba(255,255,255,.05) 49%, rgba(0,0,0,.05) 51%, rgba(0,0,0,.1)); + background-image: -webkit-gradient(linear, left top, left bottom, from(rgba(255,255,255,.1)), color-stop(49%, rgba(255,255,255,.05)), color-stop(51%, rgba(0,0,0,.05)), to(rgba(0,0,0,.1))); + background-image: -webkit-linear-gradient(rgba(255,255,255,.1), rgba(255,255,255,.05) 49%, rgba(0,0,0,.05) 51%, rgba(0,0,0,.1)); + background-image: linear-gradient(rgba(255,255,255,.1), rgba(255,255,255,.05) 49%, rgba(0,0,0,.05) 51%, rgba(0,0,0,.1)); +} + +.zocial:hover, .zocial:focus { + background-image: -moz-linear-gradient(rgba(255,255,255,.15) 49%, rgba(0,0,0,.1) 51%, rgba(0,0,0,.15)); + background-image: -ms-linear-gradient(rgba(255,255,255,.15) 49%, rgba(0,0,0,.1) 51%, rgba(0,0,0,.15)); + background-image: -o-linear-gradient(rgba(255,255,255,.15) 49%, rgba(0,0,0,.1) 51%, rgba(0,0,0,.15)); + background-image: -webkit-gradient(linear, left top, left bottom, from(rgba(255,255,255,.15)), color-stop(49%, rgba(255,255,255,.15)), color-stop(51%, rgba(0,0,0,.1)), to(rgba(0,0,0,.15))); + background-image: -webkit-linear-gradient(rgba(255,255,255,.15) 49%, rgba(0,0,0,.1) 51%, rgba(0,0,0,.15)); + background-image: linear-gradient(rgba(255,255,255,.15) 49%, rgba(0,0,0,.1) 51%, rgba(0,0,0,.15)); +} + +.zocial:active { + background-image: -moz-linear-gradient(bottom, rgba(255,255,255,.1), rgba(255,255,255,0) 30%, transparent 50%, rgba(0,0,0,.1)); + background-image: -ms-linear-gradient(bottom, rgba(255,255,255,.1), rgba(255,255,255,0) 30%, transparent 50%, rgba(0,0,0,.1)); + background-image: -o-linear-gradient(bottom, rgba(255,255,255,.1), rgba(255,255,255,0) 30%, transparent 50%, rgba(0,0,0,.1)); + background-image: -webkit-gradient(linear, left top, left bottom, from(rgba(255,255,255,.1)), color-stop(30%, rgba(255,255,255,0)), color-stop(50%, transparent), to(rgba(0,0,0,.1))); + background-image: -webkit-linear-gradient(bottom, rgba(255,255,255,.1), rgba(255,255,255,0) 30%, transparent 50%, rgba(0,0,0,.1)); + background-image: linear-gradient(bottom, rgba(255,255,255,.1), rgba(255,255,255,0) 30%, transparent 50%, rgba(0,0,0,.1)); +} + +/* Adjustments for light background buttons */ + +.zocial.bitcoin, +.zocial.cloudapp, +.zocial.dropbox, +.zocial.email, +.zocial.eventful, +.zocial.github, +.zocial.gmail, +.zocial.instapaper, +.zocial.itunes, +.zocial.ninetyninedesigns, +.zocial.openid, +.zocial.plancast, +.zocial.posterous, +.zocial.reddit, +.zocial.secondary, +.zocial.viadeo, +.zocial.weibo, +.zocial.wikipedia { + border: 1px solid #aaa; + border-color: rgba(0,0,0,0.3); + border-bottom-color: #777; + border-bottom-color: rgba(0,0,0,0.5); + -moz-box-shadow: inset 0 0.08em 0 rgba(255,255,255,0.7), inset 0 0 0.08em rgba(255,255,255,0.5); + -webkit-box-shadow: inset 0 0.08em 0 rgba(255,255,255,0.7), inset 0 0 0.08em rgba(255,255,255,0.5); + box-shadow: inset 0 0.08em 0 rgba(255,255,255,0.7), inset 0 0 0.08em rgba(255,255,255,0.5); + text-shadow: 0 1px 0 rgba(255,255,255,0.8); +} + +/* :hover adjustments for light background buttons */ + +.zocial.bitcoin:focus, +.zocial.bitcoin:hover, +.zocial.dropbox:focus, +.zocial.dropbox:hover, +.zocial.email:focus, +.zocial.email:hover, +.zocial.eventful:focus, +.zocial.eventful:hover, +.zocial.github:focus, +.zocial.github:hover, +.zocial.gmail:focus, +.zocial.gmail:hover, +.zocial.instapaper:focus, +.zocial.instapaper:hover, +.zocial.itunes:focus, +.zocial.itunes:hover, +.zocial.ninetyninedesigns:focus, +.zocial.ninetyninedesigns:hover, +.zocial.openid:focus, +.zocial.openid:hover, +.zocial.plancast:focus, +.zocial.plancast:hover, +.zocial.posterous:focus, +.zocial.posterous:hover, +.zocial.reddit:focus, +.zocial.reddit:hover, +.zocial.secondary:focus, +.zocial.secondary:hover, +.zocial.twitter:focus, +.zocial.viadeo:focus, +.zocial.viadeo:hover, +.zocial.weibo:focus, +.zocial.weibo:hover, +.zocial.wikipedia:focus, +.zocial.wikipedia:hover { + background-image: -webkit-gradient(linear, left top, left bottom, from(rgba(255,255,255,0.5)), color-stop(49%, rgba(255,255,255,0.2)), color-stop(51%, rgba(0,0,0,0.05)), to(rgba(0,0,0,0.15))); + background-image: -moz-linear-gradient(top, rgba(255,255,255,0.5), rgba(255,255,255,0.2) 49%, rgba(0,0,0,0.05) 51%, rgba(0,0,0,0.15)); + background-image: -webkit-linear-gradient(top, rgba(255,255,255,0.5), rgba(255,255,255,0.2) 49%, rgba(0,0,0,0.05) 51%, rgba(0,0,0,0.15)); + background-image: -o-linear-gradient(top, rgba(255,255,255,0.5), rgba(255,255,255,0.2) 49%, rgba(0,0,0,0.05) 51%, rgba(0,0,0,0.15)); + background-image: -ms-linear-gradient(top, rgba(255,255,255,0.5), rgba(255,255,255,0.2) 49%, rgba(0,0,0,0.05) 51%, rgba(0,0,0,0.15)); + background-image: linear-gradient(top, rgba(255,255,255,0.5), rgba(255,255,255,0.2) 49%, rgba(0,0,0,0.05) 51%, rgba(0,0,0,0.15)); +} + +/* :active adjustments for light background buttons */ + +.zocial.bitcoin:active, +.zocial.dropbox:active, +.zocial.email:active, +.zocial.eventful:active, +.zocial.github:active, +.zocial.gmail:active, +.zocial.instapaper:active, +.zocial.itunes:active, +.zocial.ninetyninedesigns:active, +.zocial.openid:active, +.zocial.plancast:active, +.zocial.posterous:active, +.zocial.reddit:active, +.zocial.secondary:active, +.zocial.viadeo:active, +.zocial.weibo:active, +.zocial.wikipedia:active { + background-image: -webkit-gradient(linear, left top, left bottom, from(rgba(255,255,255,0)), color-stop(30%, rgba(255,255,255,0)), color-stop(50%, rgba(0,0,0,0)), to(rgba(0,0,0,0.1))); + background-image: -moz-linear-gradient(bottom, rgba(255,255,255,0), rgba(255,255,255,0) 30%, rgba(0,0,0,0) 50%, rgba(0,0,0,0.1)); + background-image: -webkit-linear-gradient(bottom, rgba(255,255,255,0), rgba(255,255,255,0) 30%, rgba(0,0,0,0) 50%, rgba(0,0,0,0.1)); + background-image: -o-linear-gradient(bottom, rgba(255,255,255,0), rgba(255,255,255,0) 30%, rgba(0,0,0,0) 50%, rgba(0,0,0,0.1)); + background-image: -ms-linear-gradient(bottom, rgba(255,255,255,0), rgba(255,255,255,0) 30%, rgba(0,0,0,0) 50%, rgba(0,0,0,0.1)); + background-image: linear-gradient(bottom, rgba(255,255,255,0), rgba(255,255,255,0) 30%, rgba(0,0,0,0) 50%, rgba(0,0,0,0.1)); +} + +/* Button icon and color */ +/* Icon characters are stored in unicode private area */ +.zocial.amazon:before {content: "\E040";} +.zocial.android:before {content: "\E005";} +.zocial.angellist:before {content: "\E06C";} +.zocial.aol:before {content: "\E001";} +.zocial.appstore:before {content: "\E020";} +.zocial.bitcoin:before {content: "\E011"; color: #f7931a;} +.zocial.blogger:before {content: "\E021";} +.zocial.call:before {content: "\E016";} +.zocial.cal:before {content: "\E00D";} +.zocial.cart:before {content: "\E06A";} +.zocial.chrome:before {content: "\E03A";} +.zocial.cloudapp:before {content: "\E042";} +.zocial.creativecommons:before {content: "\E022";} +.zocial.delicious:before {content: "\E002";} +.zocial.digg:before {content: "\E01A";} +.zocial.disqus:before {content: "\E030";} +.zocial.dribbble:before {content: "\E023";} +.zocial.dropbox:before {content: "\E043"; color: #1f75cc;} +.zocial.email:before {content: "\E03C"; color: #312c2a;} +.zocial.eventasaurus:before {content: "\E055"; color: #9de428;} +.zocial.eventbrite:before {content: "\E05B";} +.zocial.eventful:before {content: "\E006"; color: #0066CC;} +.zocial.evernote:before {content: "\E024";} +.zocial.facebook:before {content: "\E045";} +.zocial.fivehundredpx:before {content: "\E00F"; color: #29b6ff;} +.zocial.flattr:before {content: "\E004";} +.zocial.flickr:before {content: "\E025";} +.zocial.forrst:before {content: "\E019"; color: #50894f;} +.zocial.foursquare:before {content: "\E013";} +.zocial.github:before {content: "\E046";} +.zocial.gmail:before {content: "\E04C"; color: #f00;} +.zocial.google:before {content: "\E026";} +.zocial.googleplay:before {content: "\E05E";} +.zocial.googleplus:before {content: "\E00A";} +.zocial.gowalla:before {content: "\E01F";} +.zocial.grooveshark:before {content: "\E017";} +.zocial.guest:before {content: "\E01E";} +.zocial.html5:before {content: "\E014";} +.zocial.ie:before {content: "\E015";} +.zocial.instagram:before {content: "\E06D";} +.zocial.instapaper:before {content: "\E028";} +.zocial.intensedebate:before {content: "\E05A";} +.zocial.itunes:before {content: "\E048"; color: #1a6dd2;} +.zocial.klout:before {content: "\E02A"; } +.zocial.lanyrd:before {content: "\E00C";} +.zocial.lastfm:before {content: "\E04B";} +.zocial.linkedin:before {content: "\E02B";} +.zocial.macstore:before {content: "\E03D";} +.zocial.meetup:before {content: "\E02C";} +.zocial.myspace:before {content: "\E03E";} +.zocial.ninetyninedesigns:before {content: "\E018"; color: #f50;} +.zocial.openid:before {content: "\E04E"; color: #ff921d;} +.zocial.opentable:before {content: "\E05F";} +.zocial.paypal:before {content: "\E003";} +.zocial.pinboard:before {content: "\E04D";} +.zocial.pinterest:before {content: "\E010";} +.zocial.plancast:before {content: "\E02F";} +.zocial.plurk:before {content: "\E049";} +.zocial.podcast:before {content: "\E03F";} +.zocial.posterous:before {content: "\E05D";} +.zocial.print:before {content: "\E06B";} +.zocial.quora:before {content: "\E050";} +.zocial.reddit:before {content: "\E01D"; color: red;} +.zocial.rss:before {content: "\E031";} +.zocial.scribd:before {content: "\E05C"; color: #00d5ea;} +.zocial.skype:before {content: "\E032";} +.zocial.smashing:before {content: "\E009";} +.zocial.songkick:before {content: "\E04A";} +.zocial.soundcloud:before {content: "\E052";} +.zocial.spotify:before {content: "\E01C";} +.zocial.stumbleupon:before {content: "\E00E";} +.zocial.tumblr:before {content: "\E053";} +.zocial.twitter:before {content: "\E033";} +.zocial.viadeo:before {content: "\E027"; color: #f59b20;} +.zocial.vimeo:before {content: "\E035";} +.zocial.weibo:before {content: "\E029"; color: #e6162d;} +.zocial.wikipedia:before {content: "\E00B";} +.zocial.windows:before {content: "\E036";} +.zocial.xing:before {content: "\E037"} +.zocial.wordpress:before {content: "\E056";} +.zocial.yahoo:before {content: "\E038";} +.zocial.yelp:before {content: "\E058";} +.zocial.youtube:before {content: "\E034";} + +/* Button background and text color */ + +.zocial.amazon {background-color: #ffad1d; color: #030037; text-shadow: 0 1px 0 rgba(255,255,255,0.5);} +.zocial.android {background-color: #a4c639;} +.zocial.angellist {background-color: #000;} +.zocial.aol {background-color: #f00;} +.zocial.appstore {background-color: #000;} +.zocial.bitcoin {background-color: #efefef; color: #4d4d4d;} +.zocial.blogger {background-color: #ee5a22;} +.zocial.call {background-color: #008000;} +.zocial.cal {background-color: #d63538;} +.zocial.cart {background-color: #333;} +.zocial.chrome {background-color: #006cd4;} +.zocial.cloudapp {background-color: #fff; color: #312c2a;} +.zocial.creativecommons {background-color: #000;} +.zocial.delicious {background-color: #3271cb;} +.zocial.digg {background-color: #164673;} +.zocial.disqus {background-color: #5d8aad;} +.zocial.dribbble {background-color: #ea4c89;} +.zocial.dropbox {background-color: #fff; color: #312c2a;} +.zocial.email {background-color: #f0f0eb; color: #312c2a;} +.zocial.eventasaurus {background-color: #192931; color: #fff;} +.zocial.eventbrite {background-color: #ff5616;} +.zocial.eventful {background-color: #fff; color: #47ab15;} +.zocial.evernote {background-color: #6bb130; color: #fff;} +.zocial.facebook {background-color: #4863ae;} +.zocial.fivehundredpx {background-color: #333;} +.zocial.flattr {background-color: #8aba42;} +.zocial.flickr {background-color: #ff0084;} +.zocial.forrst {background-color: #1e360d;} +.zocial.foursquare {background-color: #44a8e0;} +.zocial.github {background-color: #fbfbfb; color: #050505;} +.zocial.gmail {background-color: #efefef; color: #222;} +.zocial.google {background-color: #4e6cf7;} +.zocial.googleplay {background-color: #000;} +.zocial.googleplus {background-color: #dd4b39;} +.zocial.gowalla {background-color: #ff720a;} +.zocial.grooveshark {background-color: #111; color:#eee;} +.zocial.guest {background-color: #1b4d6d;} +.zocial.html5 {background-color: #ff3617;} +.zocial.ie {background-color: #00a1d9;} +.zocial.instapaper {background-color: #eee; color: #222;} +.zocial.instagram {background-color: #3f729b;} +.zocial.intensedebate {background-color: #0099e1;} +.zocial.klout {background-color: #e34a25;} +.zocial.itunes {background-color: #efefeb; color: #312c2a;} +.zocial.lanyrd {background-color: #2e6ac2;} +.zocial.lastfm {background-color: #dc1a23;} +.zocial.linkedin {background-color: #0083a8;} +.zocial.macstore {background-color: #007dcb} +.zocial.meetup {background-color: #ff0026;} +.zocial.myspace {background-color: #000;} +.zocial.ninetyninedesigns {background-color: #fff; color: #072243;} +.zocial.openid {background-color: #f5f5f5; color: #333;} +.zocial.opentable {background-color: #990000;} +.zocial.paypal {background-color: #fff; color: #32689a; text-shadow: 0 1px 0 rgba(255,255,255,0.5);} +.zocial.pinboard {background-color: blue;} +.zocial.pinterest {background-color: #c91618;} +.zocial.plancast {background-color: #e7ebed; color: #333;} +.zocial.plurk {background-color: #cf682f;} +.zocial.podcast {background-color: #9365ce;} +.zocial.posterous {background-color: #ffd959; color: #bc7134;} +.zocial.print {background-color: #f0f0eb; color: #222; text-shadow: 0 1px 0 rgba(255,255,255,0.8);} +.zocial.quora {background-color: #a82400;} +.zocial.reddit {background-color: #fff; color: #222;} +.zocial.rss {background-color: #ff7f25;} +.zocial.scribd {background-color: #231c1a;} +.zocial.skype {background-color: #00a2ed;} +.zocial.smashing {background-color: #ff4f27;} +.zocial.songkick {background-color: #ff0050;} +.zocial.soundcloud {background-color: #ff4500;} +.zocial.spotify {background-color: #60af00;} +.zocial.stumbleupon {background-color: #eb4924;} +.zocial.tumblr {background-color: #374a61;} +.zocial.twitter {background-color: #46c0fb;} +.zocial.viadeo {background-color: #fff; color: #000;} +.zocial.vimeo {background-color: #00a2cd;} +.zocial.weibo {background-color: #faf6f1; color: #000;} +.zocial.wikipedia {background-color: #fff; color: #000;} +.zocial.windows {background-color: #0052a4; color: #fff;} +.zocial.wordpress {background-color: #464646;} +.zocial.xing {background-color: #0A5D5E;} +.zocial.yahoo {background-color: #a200c2;} +.zocial.yelp {background-color: #e60010;} +.zocial.youtube {background-color: #f00;} + +/* +The Miscellaneous Buttons +These button have no icons and can be general purpose buttons while ensuring consistent button style +Credit to @guillermovs for suggesting +*/ + +.zocial.primary, .zocial.secondary {margin: 0.1em 0; padding: 0 1em;} +.zocial.primary:before, .zocial.secondary:before {display: none;} +.zocial.primary {background-color: #333;} +.zocial.secondary {background-color: #f0f0eb; color: #222; text-shadow: 0 1px 0 rgba(255,255,255,0.8);} + +/* Any browser-specific adjustments */ + +button:-moz-focus-inner { + border: 0; + padding: 0; +} + + diff --git a/addons/auth_oauth/static/lib/zocial/sample.html b/addons/auth_oauth/static/lib/zocial/sample.html new file mode 100644 index 00000000000..98dec554ff1 --- /dev/null +++ b/addons/auth_oauth/static/lib/zocial/sample.html @@ -0,0 +1,265 @@ +<!DOCTYPE html> +<html> +<head> + <meta charset="utf-8"> + <title>Zocial CSS3 Buttons</title> + <link rel="stylesheet" type="text/css" href="css/zocial.css" /> + <link href='http://fonts.googleapis.com/css?family=Pompiere' rel='stylesheet' type='text/css'> + + <style> + html { + background: #f0f0eb; + font-family: "Helvetica Neue", sans-serif; + } + h2, p { + font-family: "Pompiere","Helvetica Neue", sans-serif; + } + body { + background: #FFF; + -webkit-box-shadow: 0 1px 1px rgba(0,0,0,0.5); + -moz-box-shadow: 0 1px 1px rgba(0,0,0,0.5); + box-shadow: 0 1px 1px rgba(0,0,0,0.5); + -webkit-border-radius: 0 0 2px 2px; + -moz-border-radius: 0 0 2px 2px; + border-radius: 0 0 2px 2px; + margin: 0 auto 2em; + padding: 2em 1em; + width: 600px; + } + body .zocial { + margin: 8px 4px; + font-size: 13px; + } + h2 { + font-size: 17px; + font-weight: normal; + padding: 1em 0 0.75em; + border-bottom: 1px solid #eee; + } + </style> + + <!--[if IE]><script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script><![endif]--> + +</head> + +<body> + <h2 id="popular-kids">The Popular Kids</h2> + <a href="#" class="zocial facebook">Sign in with Facebook</a> + <a href="#" class="zocial googleplus">Sign in with Google+</a> + <a href="#" class="zocial twitter">Sign in with Twitter</a> + <a href="#" class="zocial linkedin">Sign in with LinkedIn</a> + + <h2 id="cool-kids">The Cool Kids</h2> + <a href="#" class="zocial dropbox">Sync with Dropbox</a> + <a href="#" class="zocial evernote">Clip to Evernote</a> + <a href="#" class="zocial forrst">Follow me on Forrst</a> + <a href="#" class="zocial dribbble">Sign in with Dribbble</a> + <a href="#" class="zocial cloudapp">Sign in to CloudApp</a> + <a href="#" class="zocial github">Fork me on Github</a> + <a href="#" class="zocial spotify">Play on Spotify</a> + <a href="#" class="zocial instapaper">Read It Later</a> + <a href="#" class="zocial soundcloud">Follow me on Soundcloud</a> + <a href="#" class="zocial tumblr">Follow me on Tumblr</a> + <a href="#" class="zocial smashing">Read on Smashing Magazine</a> + <a href="#" class="zocial itunes">Available on iTunes</a> + <a href="#" class="zocial appstore">Available on the App Store</a> + <a href="#" class="zocial macstore">Available on the Mac App Store</a> + <a href="#" class="zocial android">Available on Android Market</a> + <a href="#" class="zocial pinterest">Follow me on Pinterest</a> + <a href="#" class="zocial quora">Follow me on Quora</a> + <a href="#" class="zocial lanyrd">Attend on Lanyrd</a> + + <h2 id="not-so-cool-kids">The Not-So-Cool But Have-To-Be-Invited Kids</h2> + <a href="#" class="zocial paypal">Pay with Paypal</a> + <a href="#" class="zocial amazon">Sign in with Amazon</a> + <a href="#" class="zocial skype">Call me on Skype</a> + <a href="#" class="zocial lastfm">Sign in with Last.fm</a> + <a href="#" class="zocial yelp">Write a review on Yelp</a> + <a href="#" class="zocial foursquare">Check in with foursquare</a> + <a href="#" class="zocial klout">Influence with Klout</a> + + <h2 id="older-kids">The Older (but Solid) Kids</h2> + <a href="#" class="zocial wikipedia">View on Wikipedia</a> + <a href="#" class="zocial disqus">Sign in with Disqus</a> + <a href="#" class="zocial intensedebate">Sign in with IntenseDebate</a> + <a href="#" class="zocial google">Sign in with Google</a> + <a href="#" class="zocial gmail">Sign in with Gmail</a> + <a href="#" class="zocial vimeo">Upload to Vimeo</a> + <a href="#" class="zocial scribd">Read more on Scribd</a> + <a href="#" class="zocial youtube">Subscribe on YouTube</a> + <a href="#" class="zocial wordpress">Sign in with WordPress</a> + <a href="#" class="zocial songkick">Sign in with Songkick</a> + <a href="#" class="zocial posterous">Sign in with Posterous</a> + <a href="#" class="zocial eventbrite">Sign in with Eventbrite</a> + <a href="#" class="zocial flattr">Tip with Flattr</a> + <a href="#" class="zocial plancast">Follow me on Plancast</a> + + + <h2 id="smelly-kids">The Kids That Kinda Smell but Some People Don't Mind</h2> + <a href="#" class="zocial yahoo">Submit resume for CEO</a> + <a href="#" class="zocial ie">Download Internet Explorer 5</a> + <a href="#" class="zocial meetup">Report bugs with Meetup.com</a> + <a href="#" class="zocial openid">Learn how-to-use OpenID</a> + <a href="#" class="zocial html5">Register now for HTML6</a> + <a href="#" class="zocial aol">Chat with your parents</a> + + <h2 id="quiet-kids">The Kids That Nobody Normally Notices</h2> + <a href="#" class="zocial guest">Sign in as guest</a> + <a href="#" class="zocial creativecommons">View Creative Commons Licence</a> + <a href="#" class="zocial rss">Subscribe to RSS</a> + <a href="#" class="zocial chrome">Add to Chrome</a> + + <h2>The He's-My-Son-So-Of-Course-He's-Here Kid</h2> + <a href="#" class="zocial eventasaurus">Sign up for Eventasaurus</a> + + <h2 id="kids-by-request">Kids By Request</h2> + <a href="#" class="zocial weibo">Join me on Weibo</a> + <a href="#" class="zocial plurk">Sign in with Plurk</a> + <a href="#" class="zocial grooveshark">Play on Grooveshark</a> + <a href="#" class="zocial blogger">Post on Blogger</a> + <a href="#" class="zocial viadeo">Sign in with Viadeo</a> + <a href="#" class="zocial podcast">Subscribe to this Podcast</a> + <a href="#" class="zocial fivehundredpx">View Portfolio on 500px</a> + <a href="#" class="zocial bitcoin">Bitcoin accepted here</a> + <a href="#" class="zocial ninetyninedesigns">View Portfolio on 99Designs</a> + <a href="#" class="zocial pinboard">Bookmark with Pinboard</a> + <a href="#" class="zocial stumbleupon">Stumble!</a> + <a href="#" class="zocial myspace">Find me on Myspace</a> + <a href="#" class="zocial windows">Sign in with Windows Live</a> + <a href="#" class="zocial eventful">Find Events with Eventful</a> + <a href="#" class="zocial xing">Sign in with Xing</a> + <a href="#" class="zocial flickr">Upload to Flickr</a> + <a href="#" class="zocial delicious">Sign in with Del.icio.us</a> + <a href="#" class="zocial googleplay">Download from Google Play</a> + <a href="#" class="zocial opentable">Reserve with OpenTable</a> + <a href="#" class="zocial digg">Digg this</a> + <a href="#" class="zocial reddit">Share on Reddit</a> + <a href="#" class="zocial angellist">Fund us on AngelList</a> + <a href="#" class="zocial instagram">Sign-in with Instagram</a> + + <h2 id="multipurpose-kids">The Multi-Purpose Kids (Credit: <a href="http://pictos.drewwilson.com">Pictos Icons</a>)</h2> + + <a href="#" class="zocial call">Call a phone</a> + <a href="#" class="zocial email">Send a message</a> + <a href="#" class="zocial cal">Add to calendar</a> + <a href="#" class="zocial cart">Add to cart</a> + <a href="#" class="zocial print">Print this page</a> + <a href="#" class="zocial primary" title="A primary button for general purposes to keep consistency with Zocial">Primary action</a> + <a href="#" class="zocial secondary" title="A secondary button for general purposes to keep consistency with Zocial">Secondary action</a> + + + <h2 id="icons">Icon versions of the above</h2> + <a href="#" class="zocial icon facebook">Sign in with Facebook</a> + <a href="#" class="zocial icon googleplus">Sign in with Google+</a> + <a href="#" class="zocial icon twitter">Sign in with Twitter</a> + <a href="#" class="zocial icon google">Sign in with Google</a> + <a href="#" class="zocial icon linkedin">Sign in with LinkedIn</a> + <a href="#" class="zocial icon paypal">Pay with Paypal</a> + <a href="#" class="zocial icon amazon">Sign in with Amazon</a> + <a href="#" class="zocial icon dropbox">Sync with Dropbox</a> + <a href="#" class="zocial icon evernote">Clip to Evernote</a> + <a href="#" class="zocial icon skype">Call me on Skype</a> + <a href="#" class="zocial icon guest">Sign in as guest</a> + <a href="#" class="zocial icon spotify">Play on Spotify</a> + <a href="#" class="zocial icon lastfm">Sign in with Last.fm</a> + <a href="#" class="zocial icon songkick">Sign in with Songkick</a> + <a href="#" class="zocial icon forrst">Follow me on Forrst</a> + <a href="#" class="zocial icon dribbble">Sign in with Dribbble</a> + <a href="#" class="zocial icon cloudapp">Sign in to CloudApp</a> + <a href="#" class="zocial icon github">Fork me on Github</a> + <a href="#" class="zocial pinterest icon">Follow me on Pinterest</a> + <a href="#" class="zocial quora icon">Follow me on Quora</a> + <a href="#" class="zocial pinboard icon">Bookmark with Pinboard</a> + <a href="#" class="zocial lanyrd icon">Attend on Lanyrd</a> + <a href="#" class="zocial icon itunes">Download on iTunes</a> + <a href="#" class="zocial icon android">Download on Android</a> + <a href="#" class="zocial icon disqus">Sign in with Disqus</a> + <a href="#" class="zocial icon yahoo">Sign in with Yahoo</a> + <a href="#" class="zocial icon vimeo">Upload to Vimeo</a> + <a href="#" class="zocial icon chrome">Add to Chrome</a> + <a href="#" class="zocial icon ie">Get a new browser</a> + <a href="#" class="zocial icon html5">Made from HTML5</a> + <a href="#" class="zocial icon instapaper">Read It Later</a> + <a href="#" class="zocial icon scribd">Read more on Scribd</a> + <a href="#" class="zocial icon wikipedia">View on Wikipedia</a> + <a href="#" class="zocial icon flattr">Tip with Flattr</a> + <a href="#" class="zocial icon tumblr">Follow me on Tumblr</a> + <a href="#" class="zocial icon posterous">Subscribe to my Posterous</a> + <a href="#" class="zocial icon gowalla">Check in with Gowalla</a> + <a href="#" class="zocial icon foursquare">Check in with foursquare</a> + <a href="#" class="zocial icon yelp">Write a review on Yelp</a> + <a href="#" class="zocial icon soundcloud">Follow me on Soundcloud</a> + <a href="#" class="zocial icon smashing">Read on Smashing Magazine</a> + <a href="#" class="zocial icon wordpress">Sign in with WordPress</a> + <a href="#" class="zocial icon intensedebate">Sign in with IntenseDebate</a> + <a href="#" class="zocial icon openid">Sign in with OpenID</a> + <a href="#" class="zocial icon gmail">Sign in with Gmail</a> + <a href="#" class="zocial icon eventbrite">Sign in with Eventbrite</a> + <a href="#" class="zocial icon eventasaurus">Sign in with Eventasaurus</a> + <a href="#" class="zocial icon meetup">Sign in with Meetup.com</a> + <a href="#" class="zocial icon aol">Sign in with AIM</a> + <a href="#" class="zocial icon plancast">Follow me on Plancast</a> + <a href="#" class="zocial icon youtube">Subscribe on YouTube</a> + <a href="#" class="zocial icon appstore">Available on the Mac App Store</a> + <a href="#" class="zocial icon creativecommons">View Creative Commons Licence</a> + <a href="#" class="zocial icon rss">Subscribe to RSS</a> + <a href="#" class="zocial weibo icon">Follow me on Weibo</a> + <a href="#" class="zocial plurk icon">Follow me on Plurk</a> + <a href="#" class="zocial grooveshark icon">Follow me on Grooveshark</a> + <a href="#" class="zocial blogger icon">Post on Blogger</a> + <a href="#" class="zocial viadeo icon">Sign in with Viadeo</a> + <a href="#" class="zocial podcast icon">Subscribe to this Podcast</a> + <a href="#" class="zocial fivehundredpx icon">View Portfolio on 500px</a> + <a href="#" class="zocial bitcoin icon">Bitcoin accepted here</a> + <a href="#" class="zocial ninetyninedesigns icon">View Portfolio on 99Designs</a> + <a href="#" class="zocial stumbleupon icon">Stumble!</a> + <a href="#" class="zocial itunes icon">Download on iTunes</a> + <a href="#" class="zocial myspace icon">Find me on Myspace</a> + <a href="#" class="zocial windows icon">Sign in with Windows Live</a> + <a href="#" class="zocial eventful icon">Find Events with Eventful</a> + <a href="#" class="zocial klout icon">Influence with Klout</a> + <a href="#" class="zocial xing icon">Sign in with Xing</a> + <a href="#" class="zocial flickr icon">Upload to Flickr</a> + <a href="#" class="zocial delicious icon">Sign in with Del.icio.us</a> + <a href="#" class="zocial googleplay icon">Download from Google Play</a> + <a href="#" class="zocial opentable icon">Reserve with OpenTable</a> + <a href="#" class="zocial digg icon">Digg this</a> + <a href="#" class="zocial reddit icon">Share on Reddit</a> + <a href="#" class="zocial angellist icon">Fund us on AngelList</a> + <a href="#" class="zocial instagram icon">Sign-in with Instagram</a> + <a href="#" class="zocial call icon">Call a phone</a> + <a href="#" class="zocial email icon">Send a message</a> + <a href="#" class="zocial cal icon">Add to calendar</a> + <a href="#" class="zocial print icon">Print this page</a> + <a href="#" class="zocial cart icon">Add to cart</a> + + + + <p>Thanks to <a href="http://twitter.com/guillermovs" target="_blank">@guillermovs</a>, <a href="http://twitter.com/kamens" target="_blank">@kamens</a>, <a href="http://twitter.com/vizualover" target="_blank">@vizualover</a>, and <a href="http://twitter.com/leaverou" target="_blank">@leaverou</a> for code refinements and suggestions.</p> + + <p>Massive thanks to <a href="http://twitter.com/drewwilson" target="_blank">@drewwilson</a> for making the multi-purpose buttons possible with his incredible <a href="http://pictos.drewwilson.com">Pictos icons</a>.</p> + + <p>See code samples at <a href="http://zocial.smcllns.com">zocial.smcllns.com</a> — ask questions to <a href="http://twitter.com/smcllns">@smcllns</a></p> + + <a href="https://twitter.com/share" class="twitter-share-button" data-url="http://zocial.smcllns.com" data-via="smcllns">Tweet</a> + <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="http://platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script> + + <script type="text/javascript"> + + var _gaq = _gaq || []; + _gaq.push(['_setAccount', 'UA-25061452-1']); + _gaq.push(['_setDomainName', 'smcllns.com']); + _gaq.push(['_setAllowHash', 'false']); + _gaq.push(['_trackPageview']); + _gaq.push(['_trackPageLoadTime']); + + (function() { + var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; + ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; + var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); + })(); + + </script> + +</body> +</html> diff --git a/addons/auth_oauth/static/src/js/auth_oauth.js b/addons/auth_oauth/static/src/js/auth_oauth.js new file mode 100644 index 00000000000..eae423fae1f --- /dev/null +++ b/addons/auth_oauth/static/src/js/auth_oauth.js @@ -0,0 +1,64 @@ +openerp.auth_oauth = function(instance) { + var QWeb = instance.web.qweb; + + instance.web.Login = instance.web.Login.extend({ + start: function(parent, params) { + var d = this._super.apply(this, arguments); + this.$element.on('click', 'a.zocial', this.on_oauth_sign_in); + this.oauth_providers = []; + if(this.params.oauth_error === 1) { + this.do_warn("Sign up error.","Sign up is not allowed on this database."); + } else if(this.params.oauth_error === 2) { + this.do_warn("Authentication error",""); + } + return d.then(this.do_oauth_load); + }, + do_oauth_load: function() { + var db = this.$("form [name=db]").val(); + if (db) { + this.rpc("/auth_oauth/list_providers", { dbname: db }).then(this.on_oauth_loaded); + } + }, + on_oauth_loaded: function(result) { + this.oauth_providers = result; + console.log(result); + var buttons = QWeb.render("auth_oauth.Login.button",{"widget":this}); + console.log(buttons); + this.$(".oe_login_pane form ul").after(buttons); + }, + on_oauth_sign_in: function(ev) { + ev.preventDefault(); + var index = $(ev.target).data('index'); + var p = this.oauth_providers[index]; + var ret = location.protocol+"//"+location.host+"/"; + var dbname = self.$("form [name=db]").val(); + var state_object = { + d: dbname, + p: p.id + } + var state = JSON.stringify(state_object); + var params = { + response_type: 'token', + client_id: p.client_id, + redirect_uri: ret, + scope: p.scope, + state: state, + }; + var url = p.auth_endpoint + '?' + $.param(params); + window.location = url; + }, + }); + + instance.web.WebClient = instance.web.WebClient.extend({ + start: function() { + this._super.apply(this, arguments); + var params = $.deparam(window.location.hash.substring(1)); + // alert(JSON.stringify(params)); + if (params.hasOwnProperty('access_token')) { + var url = "/auth_oauth/signin" + '?' + $.param(params); + window.location = url; + } + }, + }); + +}; diff --git a/addons/auth_oauth/static/src/xml/auth_oauth.xml b/addons/auth_oauth/static/src/xml/auth_oauth.xml new file mode 100644 index 00000000000..c2693804e59 --- /dev/null +++ b/addons/auth_oauth/static/src/xml/auth_oauth.xml @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="UTF-8"?> +<templates id="template" xml:space="preserve"> +<t t-name="auth_oauth.Login.button"> + <t t-foreach="widget.oauth_providers" t-as="p"> + <a href="#" t-att-class="p.css_class" t-att-data-index="p_index"><t t-esc="p.body"/></a> + <br/> + </t> +</t> +</templates> diff --git a/addons/auth_openid/controllers/main.py b/addons/auth_openid/controllers/main.py index dc81730daf2..eba711dae7a 100644 --- a/addons/auth_openid/controllers/main.py +++ b/addons/auth_openid/controllers/main.py @@ -28,6 +28,7 @@ import werkzeug.urls import werkzeug.exceptions from openerp.modules.registry import RegistryManager +from openerp.addons.web.controllers.main import login_and_redirect, set_cookie_and_redirect try: import openerp.addons.web.common.http as openerpweb except ImportError: @@ -159,7 +160,7 @@ class OpenIDController(openerpweb.Controller): def process(self, req, **kw): session = getattr(req.session, 'openid_session', None) if not session: - return werkzeug.utils.redirect('/') + return set_cookie_and_redirect(req, '/') oidconsumer = consumer.Consumer(session, self._store, consumer_class=GoogleAppsAwareConsumer) @@ -168,12 +169,11 @@ class OpenIDController(openerpweb.Controller): display_identifier = info.getDisplayIdentifier() session['status'] = info.status - user_id = None if info.status == consumer.SUCCESS: dbname = session['dbname'] - with utils.cursor(dbname) as cr: - registry = RegistryManager.get(dbname) + registry = RegistryManager.get(dbname) + with registry.cursor() as cr: Modules = registry.get('ir.module.module') installed = Modules.search_count(cr, 1, ['&', ('name', '=', 'auth_openid'), ('state', '=', 'installed')]) == 1 @@ -206,10 +206,9 @@ class OpenIDController(openerpweb.Controller): # TODO fill empty fields with the ones from sreg/ax cr.commit() - req.session.authenticate(dbname, login, key, {}) + return login_and_redirect(req, dbname, login, key) - if not user_id: - session['message'] = 'This OpenID identifier is not associated to any active users' + session['message'] = 'This OpenID identifier is not associated to any active users' elif info.status == consumer.SETUP_NEEDED: session['message'] = info.setup_url @@ -223,8 +222,7 @@ class OpenIDController(openerpweb.Controller): # information in a log. session['message'] = 'Verification failed.' - fragment = '#loginerror' if not user_id else '' - return werkzeug.utils.redirect('/' + fragment) + return set_cookie_and_redirect(req, '/#action=login&loginerror=1') @openerpweb.jsonrequest def status(self, req): diff --git a/addons/auth_openid/res_users.py b/addons/auth_openid/res_users.py index 3fb8cefcbd4..9b02ce42991 100644 --- a/addons/auth_openid/res_users.py +++ b/addons/auth_openid/res_users.py @@ -2,7 +2,7 @@ ############################################################################## # # OpenERP, Open Source Management Solution -# Copyright (C) 2010-2011 OpenERP s.a. (<http://openerp.com>). +# Copyright (C) 2010-2012 OpenERP s.a. (<http://openerp.com>). # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as @@ -18,6 +18,7 @@ # along with this program. If not, see <http://www.gnu.org/licenses/>. # ############################################################################## +from openerp.modules.registry import RegistryManager from openerp.osv import osv, fields import openerp.exceptions import tools @@ -64,23 +65,22 @@ class res_users(osv.osv): if result: return result else: - with utils.cursor(db) as cr: + with RegistryManager.get(db).cursor() as cr: cr.execute("""UPDATE res_users - SET date=now() AT TIME ZONE 'UTC' + SET login_date=now() AT TIME ZONE 'UTC' WHERE login=%s AND openid_key=%s AND active=%s RETURNING id""", (tools.ustr(login), tools.ustr(password), True)) res = cr.fetchone() cr.commit() return res[0] if res else False - def check(self, db, uid, passwd): try: return super(res_users, self).check(db, uid, passwd) except openerp.exceptions.AccessDenied: if not passwd: raise - with utils.cursor(db) as cr: + with RegistryManager.get(db).cursor() as cr: cr.execute('''SELECT COUNT(1) FROM res_users WHERE id=%s diff --git a/addons/auth_openid/res_users.xml b/addons/auth_openid/res_users.xml index df0c31856e2..be4fbdf294b 100644 --- a/addons/auth_openid/res_users.xml +++ b/addons/auth_openid/res_users.xml @@ -4,7 +4,6 @@ <record id="view_users_form" model="ir.ui.view"> <field name="name">res.users.form</field> <field name="model">res.users</field> - <field name="type">form</field> <field name="inherit_id" ref="base.view_users_form"/> <field name="arch" type="xml"> <notebook colspan="4" position="inside"> diff --git a/addons/auth_openid/static/src/js/auth_openid.js b/addons/auth_openid/static/src/js/auth_openid.js index fd6ec01cc0f..1417bc471ce 100644 --- a/addons/auth_openid/static/src/js/auth_openid.js +++ b/addons/auth_openid/static/src/js/auth_openid.js @@ -8,7 +8,7 @@ instance.web.Login = instance.web.Login.extend({ this._super.apply(this, arguments); var self = this; - this._default_error_message = this.$element.find('.login_error_message').text(); + this._default_error_message = this.$element.find('.oe_login_error_message').text(); this.$openid_selected_button = $(); this.$openid_selected_input = $(); @@ -40,8 +40,7 @@ instance.web.Login = instance.web.Login.extend({ } }); - this._check_fragment(); - + this._check_error(); }, @@ -67,11 +66,9 @@ instance.web.Login = instance.web.Login.extend({ }, - _check_fragment: function() { + _check_error: function() { var self = this; - var fragment = jQuery.deparam.fragment(); - console.log(fragment); - if (fragment.loginerror !== undefined) { + if (this.params.loginerror !== undefined) { this.rpc('/auth_openid/login/status', {}, function(result) { if (_.contains(['success', 'failure'], result.status) && result.message) { self.do_warn('Invalid OpenID Login', result.message); @@ -132,11 +129,12 @@ instance.web.Login = instance.web.Login.extend({ do_warn: function(title, msg) { //console.warn(title, msg); - this.$element.find('.login_error_message').text(msg).show(); + this.$element.find('.oe_login_error_message').text(msg).show(); + this._super(title, msg); }, reset_error_message: function() { - this.$element.find('.login_error_message').text(this._default_error_message); + this.$element.find('.oe_login_error_message').text(this._default_error_message); } }); diff --git a/addons/auth_openid/static/src/xml/auth_openid.xml b/addons/auth_openid/static/src/xml/auth_openid.xml index 34894555668..aa61d161657 100644 --- a/addons/auth_openid/static/src/xml/auth_openid.xml +++ b/addons/auth_openid/static/src/xml/auth_openid.xml @@ -3,7 +3,7 @@ <templates id="template" xml:space="preserve"> <t t-extend="Login"> - <t t-jquery=".login .pane div#logo" t-operation="after"> + <t t-jquery=".oe_login .oe_login_logo" t-operation="after"> <ul class="openid_providers"> <li><a href="#login,password" title="Password" data-url="" id="btn_password">Password</a></li> <li><a href="#google" title="Google" data-url="https://www.google.com/accounts/o8/id">Google</a></li> @@ -13,25 +13,8 @@ </ul> </t> </t> - - <t t-extend="Login"> - <t t-jquery=".oe_box2 tr:first" t-operation="after"> - <tr> - <td><label for="googleapps">Google Apps Domain:</label></td> - <td><input type="text" name="googleapps" /></td> - </tr> - <tr> - <td><label for="launchpad">Username:</label></td> - <td><input type="text" name="launchpad" /></td> - </tr> - <tr> - <td><label for="openid_url">OpenID URL:</label></td> - <td><input type="text" name="openid_url" /></td> - </tr> - </t> - </t> <t t-extend="Login"> - <t t-jquery=".login .pane form ul li:nth-child(4)" t-operation="after"> + <t t-jquery=".oe_login .oe_login_pane form ul li:nth-child(4)" t-operation="after"> <li> Google Apps Domain </li> @@ -54,7 +37,7 @@ </t> <t t-extend="Login"> - <t t-jquery=".login .pane form ul li:has(input)"> + <t t-jquery=".oe_login .oe_login_pane form ul li:has(input)"> this.each(function() { var $i = $(this), dp = $i.find('input').attr('name'); diff --git a/addons/auth_openid/utils.py b/addons/auth_openid/utils.py index 444b5eeaa05..806198f99c2 100644 --- a/addons/auth_openid/utils.py +++ b/addons/auth_openid/utils.py @@ -1,8 +1,8 @@ #!/usr/bin/env python ############################################################################## -# +# # OpenERP, Open Source Management Solution -# Copyright (C) 2010-2011 OpenERP s.a. (<http://openerp.com>). +# Copyright (C) 2010-2012 OpenERP s.a. (<http://openerp.com>). # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as @@ -15,11 +15,9 @@ # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. +# along with this program. If not, see <http://www.gnu.org/licenses/>. # ############################################################################## -from contextlib import contextmanager -from openerp.modules.registry import RegistryManager KEY_LENGTH = 16 @@ -35,14 +33,4 @@ SREG2AX = { # from http://www.axschema.org/types/#sreg 'timezone': 'http://axschema.org/pref/timezone', } - -@contextmanager -def cursor(db): - cr = RegistryManager.get(db).db.cursor() - try: - yield cr - finally: - cr.close() - - # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/auth_reset_password/static/src/js/reset_password.js b/addons/auth_reset_password/static/src/js/reset_password.js index 41b48c7e59b..13cf070a548 100644 --- a/addons/auth_reset_password/static/src/js/reset_password.js +++ b/addons/auth_reset_password/static/src/js/reset_password.js @@ -31,7 +31,7 @@ openerp.auth_reset_password = function(instance) { }, do_reset_password: function(db, email) { var self = this; - instance.connection.session_authenticate(db, 'anonymous', 'anonymous', true).pipe(function () { + instance.session.session_authenticate(db, 'anonymous', 'anonymous', true).pipe(function () { var func = new instance.web.Model("res.users").get_func("send_reset_password_request"); return func(email).then(function(res) { // show message diff --git a/addons/auth_signup/__init__.py b/addons/auth_signup/__init__.py index 2e404949550..2331ae629a8 100644 --- a/addons/auth_signup/__init__.py +++ b/addons/auth_signup/__init__.py @@ -1,2 +1,24 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# Copyright (C) 2012-today OpenERP SA (<http://www.openerp.com>) +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/> +# +############################################################################## + +import controllers import res_config -import auth_signup +import res_users diff --git a/addons/auth_signup/__openerp__.py b/addons/auth_signup/__openerp__.py index a869c623db0..765a36ef252 100644 --- a/addons/auth_signup/__openerp__.py +++ b/addons/auth_signup/__openerp__.py @@ -1,22 +1,40 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# Copyright (C) 2009-today OpenERP SA (<http://www.openerp.com>) +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/> +# +############################################################################## + { - 'name': 'Signup', - 'description': 'Allow users to sign up', - 'author': 'OpenERP SA', - 'version': '1.0', - 'category': 'Authentication', - 'website': 'http://www.openerp.com', - 'installable': True, - 'depends': ['auth_anonymous', 'base_setup'], - 'data': [ - 'res_config.xml', - ], - 'js': [ - 'static/src/js/auth_signup.js', - ], - 'css': [ - 'static/src/css/auth_signup.css', - ], - 'qweb': [ - 'static/src/xml/auth_signup.xml', - ], + 'name': 'Signup', + 'description': 'Allow users to sign up', + 'author': 'OpenERP SA', + 'version': '1.0', + 'category': 'Authentication', + 'website': 'http://www.openerp.com', + 'installable': True, + 'depends': ['base_setup'], + 'data': [ + 'res_config.xml', + ], + 'js': [ + 'static/src/js/auth_signup.js', + ], + 'qweb': [ + 'static/src/xml/auth_signup.xml', + ], } diff --git a/addons/auth_signup/auth_signup.py b/addons/auth_signup/auth_signup.py deleted file mode 100644 index ebc72b3aeac..00000000000 --- a/addons/auth_signup/auth_signup.py +++ /dev/null @@ -1,39 +0,0 @@ -from openerp.osv import osv, fields - -class res_users(osv.Model): - _inherit = 'res.users' - - _sql_constraints = [ - ('email_uniq', 'UNIQUE (user_email)', 'You can not have two users with the same email!') - ] - -class signup_signup(osv.TransientModel): - _name = 'auth.signup' - - # TODO add captcha - _columns = { - 'name': fields.char('Name', size=64), - 'email': fields.char('Email', size=64), - 'password': fields.char('Password', size=64), - } - - def create(self, cr, uid, values, context=None): - # NOTE here, invalid values raises exceptions to avoid storing - # sensitive data into the database (which then are available to anyone) - - new_user = { - 'name': values['name'], - 'login': values['email'], - 'user_email': values['email'], - 'password': values['password'], - 'active': True, - } - - user_template_id = self.pool.get('ir.config_parameter').get_param(cr, uid, 'auth.signup_template_user_id', 0) - if user_template_id: - self.pool.get('res.users').copy(cr, 1, user_template_id, new_user, context=context) - else: - self.pool.get('res.users').create(cr, 1, new_user, context=context) - - # Dont store anything - return 0 diff --git a/addons/auth_signup/controllers/__init__.py b/addons/auth_signup/controllers/__init__.py new file mode 100644 index 00000000000..e11f9ba81bb --- /dev/null +++ b/addons/auth_signup/controllers/__init__.py @@ -0,0 +1,3 @@ +import main + +# vim:expandtab:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/auth_signup/controllers/main.py b/addons/auth_signup/controllers/main.py new file mode 100644 index 00000000000..0ed2151d12b --- /dev/null +++ b/addons/auth_signup/controllers/main.py @@ -0,0 +1,34 @@ +import logging + +import werkzeug.urls + +from openerp.modules.registry import RegistryManager +from openerp.addons.web.controllers.main import login_and_redirect +import openerp.addons.web.common.http as openerpweb + +_logger = logging.getLogger(__name__) + +class OpenIDController(openerpweb.Controller): + _cp_path = '/auth_signup' + + @openerpweb.httprequest + def signup(self, req, dbname, name, login, password): + url = '/' + registry = RegistryManager.get(dbname) + with registry.cursor() as cr: + try: + Users = registry.get('res.users') + credentials = Users.auth_signup(cr, 1, name, login, password) + cr.commit() + return login_and_redirect(req, *credentials) + except AttributeError: + # auth_signup is not installed + _logger.exception('attribute error when signup') + url = "/#action=auth_signup&error=NA" # Not Available + except Exception: + # signup error + _logger.exception('error when signup') + url = "/#action=auth_signup&error=UE" # Unexcpected Error + return werkzeug.utils.redirect(url) + +# vim:expandtab:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/auth_signup/res_config.py b/addons/auth_signup/res_config.py index 2828a2b55fd..a9a490de8c5 100644 --- a/addons/auth_signup/res_config.py +++ b/addons/auth_signup/res_config.py @@ -1,3 +1,24 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# Copyright (C) 2012-today OpenERP SA (<http://www.openerp.com>) +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/> +# +############################################################################## + from openerp.osv import osv, fields class base_config_settings(osv.TransientModel): diff --git a/addons/auth_signup/res_config.xml b/addons/auth_signup/res_config.xml index d30d383ecdb..3bea8dc2aed 100644 --- a/addons/auth_signup/res_config.xml +++ b/addons/auth_signup/res_config.xml @@ -6,7 +6,6 @@ <field name="name">base.config.settings.signup</field> <field name="model">base.config.settings</field> <field name="inherit_id" ref="base_setup.view_general_configuration"/> - <field name="type">form</field> <field name="arch" type="xml"> <xpath expr="//group[last()]" position="after"> <group> diff --git a/addons/auth_signup/res_users.py b/addons/auth_signup/res_users.py new file mode 100644 index 00000000000..1d77a3f9473 --- /dev/null +++ b/addons/auth_signup/res_users.py @@ -0,0 +1,46 @@ +import openerp +from openerp.osv import osv + +class res_users(osv.Model): + _inherit = 'res.users' + + def auth_signup_create(self, cr, uid, new_user, context=None): + # new_user: + # login + # email + # name (optional) + # partner_id (optional) + # groups (optional) + # sign (for partner_id and groups) + # + user_template_id = self.pool.get('ir.config_parameter').get_param(cr, uid, 'auth.signup_template_user_id', 0) + if user_template_id: + self.pool.get('res.users').copy(cr, 1, user_template_id, new_user, context=context) + else: + self.pool.get('res.users').create(cr, 1, new_user, context=context) + + def auth_signup(self, cr, uid, name, login, password, context=None): + r = (cr.dbname, login, password) + res = self.search(cr, uid, [("login", "=", login)]) + if res: + # Existing user + user_id = res[0] + try: + self.check(cr.dbname, user_id, password) + # Same password + except openerp.exceptions.AccessDenied: + # Different password + raise + else: + # New user + new_user = { + 'name': name, + 'login': login, + 'user_email': login, + 'password': password, + 'active': True, + } + self.auth_signup_create(cr, uid, new_user) + return r + +# diff --git a/addons/auth_signup/static/src/css/auth_signup.css b/addons/auth_signup/static/src/css/auth_signup.css deleted file mode 100644 index 1e8d7d9d8d8..00000000000 --- a/addons/auth_signup/static/src/css/auth_signup.css +++ /dev/null @@ -1,9 +0,0 @@ -.openerp .oe_login .oe_login_pane ul.oe_signup a { - color: #eeeeee; - margin: 0 8px; -} -.openerp .oe_login .oe_login_pane ul.oe_signup a:hover { - text-decoration: underline; -} - - diff --git a/addons/auth_signup/static/src/js/auth_signup.js b/addons/auth_signup/static/src/js/auth_signup.js index 7384fe1e5f5..2ab13aa7598 100644 --- a/addons/auth_signup/static/src/js/auth_signup.js +++ b/addons/auth_signup/static/src/js/auth_signup.js @@ -1,65 +1,38 @@ openerp.auth_signup = function(instance) { + instance.auth_signup = instance.auth_signup || {}; var _t = instance.web._t; instance.web.Login.include({ start: function() { var self = this; - this.$('a.oe_signup').click(function() { - var db = self.$("form [name=db]").val(); - if (!db) { - self.do_warn(_t("Login"), _t("No database selected!")); - return false; - } - - var cnx = instance.connection; - if (cnx.session_is_valid()) { - self._signup(); - } else { - cnx.session_authenticate(db, 'anonymous', 'anonymous', true).then(function() { - self._signup(); - }).fail(function(error, event) { - console.log(error); - // cannot log as anonymous or auth_signup not installed - self.do_warn(_t('Sign Up'), _.str.sprintf(_t('Signup functionnality is not available for database %s'), db), true); - }); - } + var dbname = self.$("form [name=db]").val(); + self.do_action({ + type: 'ir.actions.client', + tag: 'auth_signup.signup', + params: {'dbname': dbname}, + target: 'new', + name: 'Sign up' + }); return true; }); return this._super(); - }, - - _signup: function() { - this.do_action({ - type: 'ir.actions.client', - tag: 'auth_signup.signup', - target: 'new', - name: 'Sign up' - }); - } }); - instance.auth_signup = instance.auth_signup || {}; instance.auth_signup.Signup = instance.web.Widget.extend({ template: 'auth_signup.signup', - init: function() { - this._super.apply(this, arguments); - this.dataset = new instance.web.DataSet(this, 'auth.signup'); + init: function(parent, params) { + this.params = params; + return this._super(); }, start: function() { var self = this; - this.$('input[type=password]').change(function() { + this.$('input[name=password_confirmation]').keyup(function() { var v = $(this).val(); - var e = !_.isEmpty(v); - if (e) { - e =_.all(self.$('input[type=password]'), function(i) { - return $(i).val() === v; - }); - } var $b = self.$('button'); - if (e) { + if (_.isEmpty(v) || self.$('input[name=password]').val() === v) { $b.removeAttr('disabled'); } else { $b.attr('disabled', 'disabled'); @@ -70,36 +43,18 @@ openerp.auth_signup = function(instance) { if(ev) { ev.preventDefault(); } - var name = self.$('input[name=name]').val(); - var email = self.$('input[name=email]').val(); - var password = self.$('input[name=password]').val(); - - self.dataset.create({ - name: name, - email: email, - password: password - }, function() { - self.do_action({ - type: 'ir.actions.client', - tag: 'login', - params: { - db: instance.connection.db, - login: email, - password: password, - login_successful: function() { - self.do_action('home'); - } - } - }); - }); - return false; - + var params = { + dbname : self.params.dbname, + name: self.$('input[name=name]').val(), + login: self.$('input[name=email]').val(), + password: self.$('input[name=password]').val(), + }; + var url = "/auth_signup/signup?" + $.param(params); + window.location = url; }); - return $.when(this._super()); + return this._super(); } - }); instance.web.client_actions.add("auth_signup.signup", "instance.auth_signup.Signup"); - }; diff --git a/addons/auth_signup/static/src/xml/auth_signup.xml b/addons/auth_signup/static/src/xml/auth_signup.xml index 92343d96281..c2eec846d15 100644 --- a/addons/auth_signup/static/src/xml/auth_signup.xml +++ b/addons/auth_signup/static/src/xml/auth_signup.xml @@ -14,10 +14,10 @@ <t t-name="auth_signup.signup"> <div> <form> - Name = <input type="text" name="name"/> - Email = <input type="email" name="email"/> - Password = <input type="password" name="password"/> - Confirmation = <input type="password" name="password_confirmation"/> + Name = <input type="text" name="name"/><br/> + Email = <input type="email" name="email"/><br/> + Password = <input type="password" name="password"/><br/> + Confirmation = <input type="password" name="password_confirmation"/><br/> <button type="submit" disabled="disabled">Signup</button> </form> </div> diff --git a/addons/base_action_rule/base_action_rule.py b/addons/base_action_rule/base_action_rule.py index 7699256985c..b6eacda63c0 100644 --- a/addons/base_action_rule/base_action_rule.py +++ b/addons/base_action_rule/base_action_rule.py @@ -292,7 +292,7 @@ the rule to mark CC(mail to any other person defined in actions)."), 'object_description': hasattr(obj, 'description') and obj.description or False, 'object_user': hasattr(obj, 'user_id') and (obj.user_id and obj.user_id.name) or '/', 'object_user_email': hasattr(obj, 'user_id') and (obj.user_id and \ - obj.user_id.user_email) or '/', + obj.user_id.email) or '/', 'object_user_phone': hasattr(obj, 'partner_address_id') and (obj.partner_address_id and \ obj.partner_address_id.phone) or '/', 'partner': hasattr(obj, 'partner_id') and (obj.partner_id and obj.partner_id.name) or '/', @@ -319,8 +319,8 @@ the rule to mark CC(mail to any other person defined in actions)."), mail_message = self.pool.get('mail.message') body = self.format_mail(obj, body) if not emailfrom: - if hasattr(obj, 'user_id') and obj.user_id and obj.user_id.user_email: - emailfrom = obj.user_id.user_email + if hasattr(obj, 'user_id') and obj.user_id and obj.user_id.email: + emailfrom = obj.user_id.email name = '[%d] %s' % (obj.id, tools.ustr(obj.name)) emailfrom = tools.ustr(emailfrom) @@ -419,7 +419,7 @@ the rule to mark CC(mail to any other person defined in actions)."), emails = [] if hasattr(obj, 'user_id') and action.act_mail_to_user: if obj.user_id: - emails.append(obj.user_id.user_email) + emails.append(obj.user_id.email) if action.act_mail_to_watchers: emails += (action.act_email_cc or '').split(',') diff --git a/addons/base_action_rule/base_action_rule_view.xml b/addons/base_action_rule/base_action_rule_view.xml index ba51b729305..0d268438a41 100644 --- a/addons/base_action_rule/base_action_rule_view.xml +++ b/addons/base_action_rule/base_action_rule_view.xml @@ -10,7 +10,6 @@ <record id="view_base_action_rule_form" model="ir.ui.view"> <field name="name">base.action.rule.form</field> <field name="model">base.action.rule</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Action Rule" version="7.0"> <sheet> @@ -98,7 +97,6 @@ <record id="view_base_action_rule_tree" model="ir.ui.view"> <field name="name">base.action.rule.tree</field> <field name="model">base.action.rule</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Action Rule"> <field name="sequence"/> diff --git a/addons/base_calendar/base_calendar.py b/addons/base_calendar/base_calendar.py index b570c2ef011..be3244f8a5b 100644 --- a/addons/base_calendar/base_calendar.py +++ b/addons/base_calendar/base_calendar.py @@ -245,7 +245,7 @@ class calendar_attendee(osv.osv): continue else: result[id][name] = self._get_address(attdata.sent_by_uid.name, \ - attdata.sent_by_uid.user_email) + attdata.sent_by_uid.email) if name == 'cn': if attdata.user_id: @@ -289,7 +289,7 @@ class calendar_attendee(osv.osv): if name == 'language': user_obj = self.pool.get('res.users') - lang = user_obj.read(cr, uid, uid, ['context_lang'], context=context)['context_lang'] + lang = user_obj.read(cr, uid, uid, ['lang'], context=context)['lang'] result[id][name] = lang.replace('_', '-') return result @@ -434,7 +434,7 @@ property or property parameter."), if not organizer: organizer = event_obj.user_id event_org.params['CN'] = [organizer.name] - event_org.value = 'MAILTO:' + (organizer.user_email or organizer.name) + event_org.value = 'MAILTO:' + (organizer.email or organizer.name) if event_obj.alarm_id: # computes alarm data @@ -535,7 +535,7 @@ property or property parameter."), return {'value': {'email': ''}} usr_obj = self.pool.get('res.users') user = usr_obj.browse(cr, uid, user_id, *args) - return {'value': {'email': user.user_email, 'availability':user.availability}} + return {'value': {'email': user.email, 'availability':user.availability}} def do_tentative(self, cr, uid, ids, context=None, *args): """ Makes event invitation as Tentative @@ -891,9 +891,9 @@ From: """ % (alarm.name, alarm.trigger_date, alarm.description, \ alarm.user_id.name, alarm.user_id.signature) - mail_to = [alarm.user_id.user_email] + mail_to = [alarm.user_id.email] for att in alarm.attendee_ids: - mail_to.append(att.user_id.user_email) + mail_to.append(att.user_id.email) if mail_to: mail_message.schedule_with_attach(cr, uid, tools.config.get('email_from', False), @@ -947,7 +947,7 @@ class calendar_event(osv.osv): value['duration'] = duration # change start_date's time to 00:00:00 in the user's timezone user = self.pool.get('res.users').browse(cr, uid, uid) - tz = pytz.timezone(user.context_tz) if user.context_tz else pytz.utc + tz = pytz.timezone(user.tz) if user.tz else pytz.utc start = pytz.utc.localize(start).astimezone(tz) # convert start in user's timezone start = start.replace(hour=0, minute=0, second=0) # change start's time to 00:00:00 start = start.astimezone(pytz.utc) # convert start back to utc @@ -1097,8 +1097,8 @@ rule or repeating pattern of time to exclude from the recurring rule."), user_pool = self.pool.get('res.users') user = user_pool.browse(cr, uid, uid, context=context) res = user.name - if user.user_email: - res += " <%s>" %(user.user_email) + if user.email: + res += " <%s>" %(user.email) return res _defaults = { diff --git a/addons/base_calendar/base_calendar_view.xml b/addons/base_calendar/base_calendar_view.xml index 0e12d835710..89066ce74bb 100644 --- a/addons/base_calendar/base_calendar_view.xml +++ b/addons/base_calendar/base_calendar_view.xml @@ -6,7 +6,6 @@ <record id="base_calendar_attendee_form_view" model="ir.ui.view"> <field name="name">calendar.attendee.form</field> <field name="model">calendar.attendee</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Invitation details" version="7.0"> <header> @@ -62,7 +61,6 @@ <record id="base_calendar_attendee_tree_view" model="ir.ui.view"> <field name="name">calendar.attendee.tree</field> <field name="model">calendar.attendee</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Invitation details"> <field name="sent_by_uid" string="Invitation From"/> @@ -81,7 +79,6 @@ <record id="base_calendar_attendee_search_view" model="ir.ui.view"> <field name="name">calendar.attendee.search</field> <field name="model">calendar.attendee</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Search Invitations"> <field name="email" string="Email"/> @@ -129,7 +126,6 @@ <record id="res_alarm_form_view" model="ir.ui.view"> <field name="name">res.alarm.form</field> <field name="model">res.alarm</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Reminder details" version="7.0"> <group col="4"> @@ -150,7 +146,6 @@ <record id="res_alarm_tree_view" model="ir.ui.view"> <field name="name">res.alarm.tree</field> <field name="model">res.alarm</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Reminder details"> <field name="name"/> @@ -189,7 +184,6 @@ <record model="ir.ui.view" id="event_form_view"> <field name="name">Event Form</field> <field name="model">calendar.event</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Events" version="7.0"> <header> @@ -363,7 +357,6 @@ <record model="ir.ui.view" id="event_tree_view"> <field name="name">Event Tree</field> <field name="model">calendar.event</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Events"> <field name="name" string="Subject"/> @@ -382,7 +375,6 @@ <record model="ir.ui.view" id="event_calendar_view"> <field name="name">Events Calendar</field> <field name="model">calendar.event</field> - <field name="type">calendar</field> <field name="priority" eval="2"/> <field name="arch" type="xml"> <calendar string="Events" date_start="date" color="show_as" date_delay="duration"> @@ -398,7 +390,6 @@ <record id="view_calendar_event_filter" model="ir.ui.view"> <field name="name">Calendar Events Search</field> <field name="model">calendar.event</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Search Events"> <field name="name" filter_domain="['|',('name','ilike',self),('location','ilike',self)]" string="Event"/> diff --git a/addons/base_calendar/crm_meeting_demo.xml b/addons/base_calendar/crm_meeting_demo.xml index abba52ee8fe..221653e5fc3 100644 --- a/addons/base_calendar/crm_meeting_demo.xml +++ b/addons/base_calendar/crm_meeting_demo.xml @@ -24,7 +24,6 @@ <field name="name">Initial discussion</field> <field name="description">Discussion with partner for product.</field> <field name="categ_ids" eval="[(6,0,[ref('categ_meet3')])]"/> - <field eval=""contact@tecsas.fr"" name="email_from"/> <field eval="time.strftime('%Y-%m-05 12:00:00')" name="date"/> <field eval="time.strftime('%Y-%m-05 19:00:00')" name="date_deadline"/> <field eval="7.0" name="duration"/> @@ -36,7 +35,7 @@ <field name="user_id" ref="base.user_root"/> <field name="name">Pricing Discussion</field> <field name="description">Internal meeting for discussion for new pricing for product and services.</field> - <field name="categ_ids" eval="[(6,0,[ref('categ_meet2'), ref('categ_meet4')])]"/> + <field name="categ_ids" eval="[(6,0,[ref('categ_meet1'), ref('categ_meet2')])]"/> <field eval="time.strftime('%Y-%m-12 15:55:05')" name="date"/> <field eval="time.strftime('%Y-%m-12 18:55:05')" name="date_deadline"/> <field eval="3.0" name="duration"/> @@ -58,8 +57,7 @@ <field eval="1" name="active"/> <field name="user_id" ref="base.user_demo"/> <field name="name">Changes in Designing</field> - <field name="email_from">info@opensides.be</field> - <field name="categ_ids" eval="[(6,0,[ref('categ_meet5')])]"/> + <field name="categ_ids" eval="[(6,0,[ref('categ_meet1')])]"/> <field eval="time.strftime('%Y-%m-22 11:05:00')" name="date"/> <field eval="time.strftime('%Y-%m-22 16:05:00')" name="date_deadline"/> <field eval="5" name="duration"/> @@ -70,7 +68,7 @@ <field eval="1" name="active"/> <field name="user_id" ref="base.user_root"/> <field name="name">Presentation for new Services</field> - <field name="categ_ids" eval="[(6,0,[ref('categ_meet1'), ref('categ_meet4')])]"/> + <field name="categ_ids" eval="[(6,0,[ref('categ_meet1'), ref('categ_meet2')])]"/> <field eval="time.strftime('%Y-%m-18 2:00:00')" name="date"/> <field eval="time.strftime('%Y-%m-18 10:30:00')" name="date_deadline"/> <field eval="8.5" name="duration"/> diff --git a/addons/base_calendar/crm_meeting_view.xml b/addons/base_calendar/crm_meeting_view.xml index a97d2967ffa..51d17ed43f8 100644 --- a/addons/base_calendar/crm_meeting_view.xml +++ b/addons/base_calendar/crm_meeting_view.xml @@ -45,7 +45,6 @@ <record id="view_crm_meeting_type_tree" model="ir.ui.view"> <field name="name">Meeting Types Tree</field> <field name="model">crm.meeting.type</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Meeting Types" editable="bottom"> <field name="name"/> @@ -68,7 +67,6 @@ <record model="ir.ui.view" id="view_crm_meeting_form"> <field name="name">CRM - Meetings Form</field> <field name="model">crm.meeting</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Meetings" version="7.0"> <header> @@ -235,6 +233,7 @@ </sheet> <div class="oe_chatter"> <field name="message_ids" widget="mail_thread"/> + <field name="message_follower_ids" widget="mail_followers"/> </div> </form> </field> @@ -245,7 +244,6 @@ <record model="ir.ui.view" id="view_crm_meeting_tree"> <field name="name">CRM - Meetings Tree</field> <field name="model">crm.meeting</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Meetings" fonts="bold:needaction_pending==True" colors="red:state=='open';black:state in ('draft', 'cancel','done','pending')"> @@ -264,7 +262,6 @@ <record model="ir.ui.view" id="view_crm_meeting_calendar"> <field name="name">CRM - Meetings Calendar</field> <field name="model">crm.meeting</field> - <field name="type">calendar</field> <field name="priority" eval="2"/> <field name="arch" type="xml"> <calendar string="Meetings" date_start="date" color="user_id" date_stop="date_deadline" date_delay="duration"> @@ -279,7 +276,6 @@ <record id="view_crm_meeting_gantt" model="ir.ui.view"> <field name="name">CRM - Meetings Gantt</field> <field name="model">crm.meeting</field> - <field name="type">gantt</field> <field name="arch" type="xml"> <gantt date_delay="duration" date_start="date" string="Meetings"/> </field> @@ -290,7 +286,6 @@ <record id="view_crm_meeting_search" model="ir.ui.view"> <field name="name">CRM - Meetings Search</field> <field name="model">crm.meeting</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Search Meetings"> <field name="name" string="Meeting" filter_domain="[('name','ilike',self)]"/> diff --git a/addons/base_calendar/test/base_calendar_test.yml b/addons/base_calendar/test/base_calendar_test.yml index e9a0f21e26e..2f5ff7945ee 100644 --- a/addons/base_calendar/test/base_calendar_test.yml +++ b/addons/base_calendar/test/base_calendar_test.yml @@ -1,5 +1,5 @@ -- | - In Order to test base_calendar, I will first create One Simple Event with real data +- + In Order to test base_calendar, I will first create One Simple Event with real data - !record {model: calendar.event, id: calendar_event_technicalpresentation0}: class: private @@ -11,27 +11,25 @@ location: OpenERP S.A. name: Technical Presentation rrule_type: none -- | - Now I will set recurrence for this event to occur monday and friday of week +- + Now I will set recurrence for this event to occur monday and friday of week - !python {model: calendar.event}: | data = {'fr': 1, 'mo': 1, 'interval': 1, 'rrule_type': 'weekly', 'end_type': 'end_date', 'end_date': '2011-05-31 00:00:00', 'recurrency' : True} self.write(cr, uid, [ref("calendar_event_technicalpresentation0")], data) -- | - In order to check that recurrent events are views successfully in calendar view, - I will open calendar view of events +- + In order to check that recurrent events are views successfully in calendar view, I will open calendar view of events - !python {model: calendar.event}: | self.fields_view_get(cr, uid, False, 'calendar', context) -- | - In order to check that recurrent events are views successfully in calendar view, - I will search for one of the recurrent event and count the number of events +- + In order to check that recurrent events are views successfully in calendar view, I will search for one of the recurrent event and count the number of events - !python {model: calendar.event}: | ids = self.search(cr, uid, [('date', '>=', '2011-04-30 16:00:00'), ('date', '<=', '2011-05-31 00:00:00')], context={'virtual_id': True} ) assert len(ids) == 9 -- | - Now I will make All day event and test it +- + Now I will make All day event and test it - !record {model: calendar.event, id: calendar_event_alldaytestevent0}: allday: 1 @@ -42,8 +40,8 @@ location: School name: All day test event rrule_type: none -- | - In order to check reminder I will first create reminder +- + In order to check reminder I will first create reminder - !record {model: res.alarm, id: res_alarm_daybeforeeventstarts0}: name: 1 Day before event starts @@ -51,13 +49,13 @@ trigger_interval: days trigger_occurs: before trigger_related: start -- | - Now I will assign this reminder to all day event +- + Now I will assign this reminder to all day event - !python {model: calendar.event}: | self.write(cr, uid, [ref("calendar_event_alldaytestevent0")], {'alarm_id': ref("res_alarm_daybeforeeventstarts0")}) -- | - In order to assign attendee I will invite Demo user +- + In order to assign attendee I will invite Demo user - !record {model: base_calendar.invite.attendee, id: base_calendar_invite_attendee_0}: type: internal @@ -65,13 +63,13 @@ partner_id: base.res_partner_9 # Put bcz of problem in read user_ids: - base.user_demo -- | - Then I click on Invite Button +- + Then I click on Invite Button - !python {model: base_calendar.invite.attendee}: | self.do_invite(cr, uid, [ref("base_calendar_invite_attendee_0")], {'active_id': ref("calendar_event_alldaytestevent0"), 'model' : 'calendar.event', 'attendee_field':'attendee_ids'}) -- | - Now I will Accept this invitation +- + Now I will Accept this invitation - !python {model: calendar.attendee}: | ids = self.search(cr, uid, [('ref', '=', 'calendar.event' + ',' + str(ref("calendar_event_alldaytestevent0")))]) diff --git a/addons/base_calendar/wizard/base_calendar_invite_attendee.py b/addons/base_calendar/wizard/base_calendar_invite_attendee.py index b49c4219ce8..344056eb585 100644 --- a/addons/base_calendar/wizard/base_calendar_invite_attendee.py +++ b/addons/base_calendar/wizard/base_calendar_invite_attendee.py @@ -99,12 +99,12 @@ send an Email to Invited Person') user = user_obj.browse(cr, uid, user_id) res = { 'user_id': user_id, - 'email': user.user_email + 'email': user.email } res.update(ref) vals.append(res) - if user.user_email: - mail_to.append(user.user_email) + if user.email: + mail_to.append(user.email) elif type == 'external' and datas.get('email'): res = {'email': datas['email']} @@ -143,7 +143,7 @@ send an Email to Invited Person') self._columns['type'].selection)) raise osv.except_osv(_('Error!'), _("%s must have an email address to send mail.") %(name[0])) att_obj._send_mail(cr, uid, attendees, mail_to, \ - email_from = current_user.user_email or tools.config.get('email_from', False)) + email_from = current_user.email or tools.config.get('email_from', False)) return {'type': 'ir.actions.act_window_close'} diff --git a/addons/base_calendar/wizard/base_calendar_invite_attendee_view.xml b/addons/base_calendar/wizard/base_calendar_invite_attendee_view.xml index 3bdb9144907..5510259a7a7 100644 --- a/addons/base_calendar/wizard/base_calendar_invite_attendee_view.xml +++ b/addons/base_calendar/wizard/base_calendar_invite_attendee_view.xml @@ -7,7 +7,6 @@ model="ir.ui.view"> <field name="name">Invite Attendees</field> <field name="model">base_calendar.invite.attendee</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Invite People" version="7.0"> <separator string="Invite People" colspan="4"/> diff --git a/addons/base_crypt/crypt.py b/addons/base_crypt/crypt.py index f7e200560a3..b27dad22363 100644 --- a/addons/base_crypt/crypt.py +++ b/addons/base_crypt/crypt.py @@ -213,7 +213,7 @@ class users(osv.osv): # Check if the encrypted password matches against the one in the db. cr.execute("""UPDATE res_users - SET date=now() AT TIME ZONE 'UTC' + SET login_date=now() AT TIME ZONE 'UTC' WHERE id=%s AND password=%s AND active RETURNING id""", (int(id), encrypted_pw.encode('utf-8'))) diff --git a/addons/base_module_doc_rst/base_module_doc_rst_view.xml b/addons/base_module_doc_rst/base_module_doc_rst_view.xml index 2fa4e220d0d..b90583ae635 100644 --- a/addons/base_module_doc_rst/base_module_doc_rst_view.xml +++ b/addons/base_module_doc_rst/base_module_doc_rst_view.xml @@ -10,7 +10,6 @@ <field name="name">ir.module.module.form.graph</field> <field name="model">ir.module.module</field> <field name="inherit_id" ref="base.module_form"/> - <field name="type">form</field> <field name="arch" type="xml"> <notebook position="inside"> <page string="Relationship Graph"> diff --git a/addons/base_module_doc_rst/wizard/generate_relation_graph_view.xml b/addons/base_module_doc_rst/wizard/generate_relation_graph_view.xml index 4072db42318..ed30fc64822 100644 --- a/addons/base_module_doc_rst/wizard/generate_relation_graph_view.xml +++ b/addons/base_module_doc_rst/wizard/generate_relation_graph_view.xml @@ -5,7 +5,6 @@ <record id="view_relationship_graph" model="ir.ui.view"> <field name="name">create.relation.graph.form</field> <field name="model">create.relation.graph</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Generate Relationship Graph" version="7.0"> <separator string="Relationship Graphs" colspan="6"/> diff --git a/addons/base_module_doc_rst/wizard/tech_guide_rst_view.xml b/addons/base_module_doc_rst/wizard/tech_guide_rst_view.xml index 50166dffc96..86c7002568c 100644 --- a/addons/base_module_doc_rst/wizard/tech_guide_rst_view.xml +++ b/addons/base_module_doc_rst/wizard/tech_guide_rst_view.xml @@ -5,7 +5,6 @@ <record id="view_technical_guide" model="ir.ui.view"> <field name="name">tech.guide.rst.form</field> <field name="model">tech.guide.rst</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Create Technical Guide in rst format"> <separator string="Technical Guide in rst Format" colspan="4"/> diff --git a/addons/base_module_record/wizard/base_module_record_data_view.xml b/addons/base_module_record/wizard/base_module_record_data_view.xml index 281576b0b6a..afe9833c209 100644 --- a/addons/base_module_record/wizard/base_module_record_data_view.xml +++ b/addons/base_module_record/wizard/base_module_record_data_view.xml @@ -5,7 +5,6 @@ <record id="base_module_record_data_view" model="ir.ui.view"> <field name="name">base_module_record_data</field> <field name="model">base.module.data</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Data Recording" version="7.0"> <group> @@ -53,7 +52,6 @@ <record id="module_create_xml_view" model="ir.ui.view"> <field name="name">module.create.xml.form</field> <field name="model">base.module.record.data</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Data Recording"> <separator string="Result, paste this to your module's xml" colspan="4" /> diff --git a/addons/base_module_record/wizard/base_module_record_object_view.xml b/addons/base_module_record/wizard/base_module_record_object_view.xml index a621ae69547..fdfb6e9fc66 100644 --- a/addons/base_module_record/wizard/base_module_record_object_view.xml +++ b/addons/base_module_record/wizard/base_module_record_object_view.xml @@ -5,7 +5,6 @@ <record id="base_module_record_objects_view" model="ir.ui.view"> <field name="name">base_module_record_objects</field> <field name="model">base.module.record</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Objects Recording" version="7.0"> <group> @@ -57,7 +56,6 @@ <record id="module_create_form_view" model="ir.ui.view"> <field name="name">module.create.form</field> <field name="model">base.module.record.objects</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Module Recording"> <group string="Module successfully created!"> @@ -83,7 +81,6 @@ <record id="info_start_form_view" model="ir.ui.view"> <field name="name">info.start.form.view</field> <field name="model">base.module.record.objects</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Module Recording" version="7.0"> <group string="Module Information"> @@ -109,7 +106,6 @@ <record id="module_recording_message_view" model="ir.ui.view"> <field name="name">module_recording_message</field> <field name="model">base.module.record.objects</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Module Recording"> <label string="Thanks For using Module Recorder" colspan="4" align="0.0"/> @@ -120,7 +116,6 @@ <record id="yml_save_form_view" model="ir.ui.view"> <field name="name">yml.save.form</field> <field name="model">base.module.record.objects</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Module Recording"> <separator string="YAML file successfully created !" colspan="4"/> diff --git a/addons/base_module_record/wizard/base_module_save_view.xml b/addons/base_module_record/wizard/base_module_save_view.xml index 39943697d4f..361e65344f1 100644 --- a/addons/base_module_record/wizard/base_module_save_view.xml +++ b/addons/base_module_record/wizard/base_module_save_view.xml @@ -5,7 +5,6 @@ <record id="base_module_save_view" model="ir.ui.view"> <field name="name">base_module_save</field> <field name="model">base.module.save</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Module Recording" version="7.0"> <group string="Recording Information"> diff --git a/addons/base_report_designer/base_report_designer_installer.xml b/addons/base_report_designer/base_report_designer_installer.xml index b0494a1453d..657eae8fd63 100644 --- a/addons/base_report_designer/base_report_designer_installer.xml +++ b/addons/base_report_designer/base_report_designer_installer.xml @@ -4,7 +4,6 @@ <record id="view_report_designer_installer" model="ir.ui.view"> <field name="name">Form View: OpenERP Report Designer Installation</field> <field name="model">base_report_designer.installer</field> - <field name="type">form</field> <field name="inherit_id" ref="base.res_config_installer"/> <field name="arch" type="xml"> <data> diff --git a/addons/base_report_designer/wizard/base_report_design_view.xml b/addons/base_report_designer/wizard/base_report_design_view.xml index 12ac67e3ba0..e0fbb248d84 100644 --- a/addons/base_report_designer/wizard/base_report_design_view.xml +++ b/addons/base_report_designer/wizard/base_report_design_view.xml @@ -4,7 +4,6 @@ <record id="view_base_report_sxw" model="ir.ui.view"> <field name="name">Base Report sxw</field> <field name="model">base.report.sxw</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Get a report" version="7.0"> <group string="Select your report"> @@ -32,7 +31,6 @@ <record id="view_base_report_file_sxw" model="ir.ui.view"> <field name="name">Base Report File sxw</field> <field name="model">base.report.file.sxw</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Get a report"> <separator string="The .SXW report" colspan="4"/> @@ -49,7 +47,6 @@ <record id="view_base_report_file_rml" model="ir.ui.view"> <field name="name">Base Report File sxw</field> <field name="model">base.report.rml.save</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Save RML FIle"> <separator string="The RML Report"/> diff --git a/addons/base_setup/base_setup.py b/addons/base_setup/base_setup.py index 9c1d7d9fa8e..e8e24969f2a 100644 --- a/addons/base_setup/base_setup.py +++ b/addons/base_setup/base_setup.py @@ -50,7 +50,7 @@ class specify_partner_terminology(osv.osv_memory): def make_translations(self, cr, uid, ids, name, type, src, value, res_id=0, context=None): trans_obj = self.pool.get('ir.translation') user_obj = self.pool.get('res.users') - context_lang = user_obj.browse(cr, uid, uid, context=context).context_lang + context_lang = user_obj.browse(cr, uid, uid, context=context).lang existing_trans_ids = trans_obj.search(cr, uid, [('name','=',name), ('lang','=',context_lang), ('type','=',type), ('src','=',src), ('res_id','=',res_id)]) if existing_trans_ids: trans_obj.write(cr, uid, existing_trans_ids, {'value': value}, context=context) diff --git a/addons/base_setup/base_setup_views.xml b/addons/base_setup/base_setup_views.xml index 0db6c173d9b..e07f576aa41 100644 --- a/addons/base_setup/base_setup_views.xml +++ b/addons/base_setup/base_setup_views.xml @@ -6,9 +6,6 @@ <record id="base.menu_res_company_global" model="ir.ui.menu"> <field name="groups_id" eval="[(3, ref('base.group_no_one'))]"/> </record> - <record id="base.menu_users" model="ir.ui.menu"> - <field name="groups_id" eval="[(3, ref('base.group_no_one'))]"/> - </record> <record id="base.menu_publisher_warranty" model="ir.ui.menu"> <field name="groups_id" eval="[(3, ref('base.group_no_one'))]"/> </record> @@ -17,7 +14,6 @@ <record id="base_setup_terminology_form" model="ir.ui.view"> <field name="name">Specify Your Terminology</field> <field name="model">base.setup.terminology</field> - <field name="type">form</field> <field name="inherit_id" ref="base.res_config_view_base"/> <field name="arch" type="xml"> <data> diff --git a/addons/base_setup/res_config_view.xml b/addons/base_setup/res_config_view.xml index 59841b6988e..fe0fc7d1254 100644 --- a/addons/base_setup/res_config_view.xml +++ b/addons/base_setup/res_config_view.xml @@ -5,7 +5,6 @@ <record id="view_general_configuration" model="ir.ui.view"> <field name="name">General Settings</field> <field name="model">base.config.settings</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="General Settings" version="7.0" class="oe_form_configuration"> <header> @@ -63,7 +62,6 @@ <record id="view_sale_config_settings" model="ir.ui.view"> <field name="name">sale settings</field> <field name="model">sale.config.settings</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Configure Sales" version="7.0" class="oe_form_configuration"> <header> @@ -99,9 +97,10 @@ <separator string="Emails Integration" attrs="{'invisible': [('module_crm','=',False)]}"/> <p attrs="{'invisible': [('module_crm','=',False)]}"> OpenERP allows to automatically create leads (or others documents) - from incoming emails. You can synchronize emails with OpenERP - by connecting the mail gateway to your mail server or by manually - pressing buttons in our mail clients. + from incoming emails. You can automatically synchronize emails with OpenERP + using regular POP/IMAP accounts, using a direct email integration script for your + email server, or by manually pushing emails to OpenERP using specific + plugins for your preferred email application. </p> <group name="On Mail Client" attrs="{'invisible': [('module_crm','=',False)]}"> <label for="id" string="On Mail Client"/> diff --git a/addons/base_status/base_stage.py b/addons/base_status/base_stage.py index 44e9de89162..775de51394c 100644 --- a/addons/base_status/base_stage.py +++ b/addons/base_status/base_stage.py @@ -57,7 +57,7 @@ class base_stage(object): if not context or not context.get('portal'): return False user = self.pool.get('res.users').browse(cr, uid, uid, context=context) - return user.user_email + return user.email def _get_default_user(self, cr, uid, context=None): """ Gives current user id @@ -301,15 +301,15 @@ class base_stage(object): for case in self.browse(cr, uid, ids, context=context): if not destination and not case.email_from: return False - if not case.user_id.user_email: + if not case.user_id.email: return False if destination and case.section_id.user_id: - case_email = case.section_id.user_id.user_email + case_email = case.section_id.user_id.email else: - case_email = case.user_id.user_email + case_email = case.user_id.email src = case_email - dest = case.user_id.user_email or "" + dest = case.user_id.email or "" body = case.description or "" for message in case.message_ids: if message.email_from and message.body_text: @@ -366,8 +366,8 @@ class base_stage(object): l=[] if case.email_cc: l.append(case.email_cc) - if case.user_id and case.user_id.user_email: - l.append(case.user_id.user_email) + if case.user_id and case.user_id.email: + l.append(case.user_id.email) res[case.id] = l return res diff --git a/addons/base_status/base_state.py b/addons/base_status/base_state.py index 4247e67f435..8fa2f92e22a 100644 --- a/addons/base_status/base_state.py +++ b/addons/base_status/base_state.py @@ -55,7 +55,7 @@ class base_state(object): if not context or not context.get('portal'): return False user = self.pool.get('res.users').browse(cr, uid, uid, context=context) - return user.user_email + return user.email def _get_default_user(self, cr, uid, context=None): """ Gives current user id diff --git a/addons/board/board_mydashboard_view.xml b/addons/board/board_mydashboard_view.xml index b08cf05b490..02d3276d0d2 100644 --- a/addons/board/board_mydashboard_view.xml +++ b/addons/board/board_mydashboard_view.xml @@ -5,7 +5,6 @@ <record model="ir.ui.view" id="board_my_dash_view"> <field name="name">My Dashboard</field> <field name="model">board.board</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="My Dashboard" version="7.0"> <board style="2-1"> diff --git a/addons/board/board_view.xml b/addons/board/board_view.xml index 219fc17f1b9..99b3cd705f2 100644 --- a/addons/board/board_view.xml +++ b/addons/board/board_view.xml @@ -4,7 +4,6 @@ <record id="view_board_create" model="ir.ui.view"> <field name="name">board.create.form</field> <field name="model">board.create</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Create New Dashboard" version="7.0"> <group colspan="4"> diff --git a/addons/caldav/caldav_view.xml b/addons/caldav/caldav_view.xml index a45a2231738..9f867a96c6d 100644 --- a/addons/caldav/caldav_view.xml +++ b/addons/caldav/caldav_view.xml @@ -5,7 +5,6 @@ <field name="name">Calendar Collections : Form</field> <field name="model">document.directory</field> <field name="priority">40</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Calendar Collections" version="7.0"> <group col="4"> @@ -24,7 +23,6 @@ <record model="ir.ui.view" id="view_calendar_collection_tree"> <field name="name">Calendar Collections : Tree</field> <field name="model">document.directory</field> - <field name="type">tree</field> <field name="priority">40</field> <field name="arch" type="xml"> <tree string="Calendar Collections" toolbar="1"> @@ -78,7 +76,6 @@ <record model="ir.ui.view" id="view_caldav_form"> <field name="name">Calendar : Form</field> <field name="model">basic.calendar</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Calendar" version="7.0"> <group col="4"> @@ -138,7 +135,6 @@ <record model="ir.ui.view" id="view_caldav_tree"> <field name="name">Calendar : Tree</field> <field name="model">basic.calendar</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Calendars" toolbar="1"> <field name="name"/> @@ -155,7 +151,6 @@ <record model="ir.ui.view" id="view_caldav_search"> <field name="name">Calendar: Search</field> <field name="model">basic.calendar</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Calendars"> <field name="name" string="Calendar"/> diff --git a/addons/caldav/wizard/caldav_browse_view.xml b/addons/caldav/wizard/caldav_browse_view.xml index 5b26360e08d..c02eb3dea19 100644 --- a/addons/caldav/wizard/caldav_browse_view.xml +++ b/addons/caldav/wizard/caldav_browse_view.xml @@ -5,7 +5,6 @@ <record id="caldav_browse_form" model="ir.ui.view"> <field name="name">caldav_Browse</field> <field name="model">caldav.browse</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Browse Caldav" version="7.0"> <sheet> @@ -44,7 +43,6 @@ <record id="host_prefernce_form" model="ir.ui.view"> <field name="name">host_preference</field> <field name="model">user.preference</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Caldav's host name configuration" version="7.0"> <header> @@ -64,7 +62,6 @@ <record id="user_prefernce_form" model="ir.ui.view"> <field name="name">user_preference</field> <field name="model">user.preference</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="User Preference" version="7.0"> <header> diff --git a/addons/caldav/wizard/calendar_event_export_view.xml b/addons/caldav/wizard/calendar_event_export_view.xml index 92e4504db02..0675f8bc00b 100644 --- a/addons/caldav/wizard/calendar_event_export_view.xml +++ b/addons/caldav/wizard/calendar_event_export_view.xml @@ -4,7 +4,6 @@ <record id="view_calendar_event_export" model="ir.ui.view"> <field name="name">calendar.event.export.form</field> <field name="model">calendar.event.export</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Export ICS"> <group colspan="4" > diff --git a/addons/caldav/wizard/calendar_event_import_view.xml b/addons/caldav/wizard/calendar_event_import_view.xml index 014f5500384..a908765782e 100644 --- a/addons/caldav/wizard/calendar_event_import_view.xml +++ b/addons/caldav/wizard/calendar_event_import_view.xml @@ -4,7 +4,6 @@ <record id="view_calendar_event_import" model="ir.ui.view"> <field name="name">calendar.event.import.form</field> <field name="model">calendar.event.import</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Import ICS" version="7.0"> <group colspan="4" > @@ -23,7 +22,6 @@ <record id="view_calendar_event_import_display" model="ir.ui.view"> <field name="name">calendar.event.import.form.display</field> <field name="model">calendar.event.import</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Import Message"> <group colspan="4" > diff --git a/addons/caldav/wizard/calendar_event_subscribe_view.xml b/addons/caldav/wizard/calendar_event_subscribe_view.xml index 0601349690d..5bd9f72ef2d 100644 --- a/addons/caldav/wizard/calendar_event_subscribe_view.xml +++ b/addons/caldav/wizard/calendar_event_subscribe_view.xml @@ -4,7 +4,6 @@ <record id="view_calendar_event_subscribe" model="ir.ui.view"> <field name="name">calendar.event.subscribe.form</field> <field name="model">calendar.event.subscribe</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Subscribe to Remote Calendar" version="7.0"> <group colspan="4" > @@ -23,7 +22,6 @@ <record id="view_calendar_event_subscribe_display" model="ir.ui.view"> <field name="name">calendar.event.subscribe.form.display</field> <field name="model">calendar.event.subscribe</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Message..."> <group colspan="4" > diff --git a/addons/crm/board_crm_view.xml b/addons/crm/board_crm_view.xml index 2d648295b6d..16ed1e4c5ad 100644 --- a/addons/crm/board_crm_view.xml +++ b/addons/crm/board_crm_view.xml @@ -21,7 +21,6 @@ <record model="ir.ui.view" id="view_crm_opportunity_stage_graph"> <field name="name">Opportunities By Stage - Graph</field> <field name="model">crm.lead.report</field> - <field name="type">graph</field> <field name="arch" type="xml"> <graph string="Opportunities By Stage" type="area"> <field name="stage_id"/> @@ -44,7 +43,6 @@ <record model="ir.ui.view" id="view_crm_opportunity_user_stage_graph"> <field name="name">Opportunities By Stage Per User - Graph</field> <field name="model">crm.lead.report</field> - <field name="type">graph</field> <field name="arch" type="xml"> <graph string="Opportunities By Stage" type="line"> <field name="stage_id"/> @@ -68,7 +66,6 @@ <record model="ir.ui.view" id="board_crm_statistical_form"> <field name="name">CRM - Statistical Dashboard Form</field> <field name="model">board.board</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Statistics Dashboard" version="7.0"> <board style="1-1"> diff --git a/addons/crm/crm.py b/addons/crm/crm.py index cfeb163f110..b45b8ea8712 100644 --- a/addons/crm/crm.py +++ b/addons/crm/crm.py @@ -132,9 +132,10 @@ class crm_case_section(osv.osv): return ids _defaults = { - 'active': lambda *a: 1, - 'allow_unlink': lambda *a: 1, - 'stage_ids': _get_stage_common + 'active': 1, + 'allow_unlink': 1, + 'stage_ids': _get_stage_common, + 'alias_domain': False, # always hide alias during creation } _sql_constraints = [ @@ -162,16 +163,16 @@ class crm_case_section(osv.osv): return res def create(self, cr, uid, vals, context=None): - alias_pool = self.pool.get('mail.alias') + mail_alias = self.pool.get('mail.alias') if not vals.get('alias_id'): - name = vals.pop('alias_name', None) or vals['name'] - alias_id = alias_pool.create_unique_alias(cr, uid, - {'alias_name': name}, + vals.pop('alias_name', None) # prevent errors during copy() + alias_id = mail_alias.create_unique_alias(cr, uid, + {'alias_name': vals['name']}, model_name="crm.lead", context=context) vals['alias_id'] = alias_id res = super(crm_case_section, self).create(cr, uid, vals, context) - alias_pool.write(cr, uid, [vals['alias_id']],{'alias_defaults':{'section_id': res,'type':'lead'}},context) + mail_alias.write(cr, uid, [vals['alias_id']], {'alias_defaults': {'section_id': res, 'type':'lead'}}, context) return res def unlink(self, cr, uid, ids, context=None): diff --git a/addons/crm/crm_action_rule.py b/addons/crm/crm_action_rule.py index 96d182113c8..3e3bdc90d08 100644 --- a/addons/crm/crm_action_rule.py +++ b/addons/crm/crm_action_rule.py @@ -49,8 +49,8 @@ class base_action_rule(osv.osv): mail_message = self.pool.get('mail.message') body = self.format_mail(obj, body) if not emailfrom: - if hasattr(obj, 'user_id') and obj.user_id and obj.user_id.user_email: - emailfrom = obj.user_id.user_email + if hasattr(obj, 'user_id') and obj.user_id and obj.user_id.email: + emailfrom = obj.user_id.email name = '[%d] %s' % (obj.id, tools.ustr(obj.name)) emailfrom = tools.ustr(emailfrom) diff --git a/addons/crm/crm_action_rule_view.xml b/addons/crm/crm_action_rule_view.xml index eccfe380223..f2a5f57702d 100644 --- a/addons/crm/crm_action_rule_view.xml +++ b/addons/crm/crm_action_rule_view.xml @@ -6,7 +6,6 @@ <field name="name">base.action.rule.form.inherit</field> <field name="model">base.action.rule</field> <field name="inherit_id" ref="base_action_rule.view_base_action_rule_form"/> - <field name="type">form</field> <field name="arch" type="xml"> <group name="partner" position="after"> <group col="2" colspan="2"> @@ -22,7 +21,6 @@ <field name="name">base.action.rule.form2.inherit</field> <field name="model">base.action.rule</field> <field name="inherit_id" ref="base_action_rule.view_base_action_rule_form"/> - <field name="type">form</field> <field name="arch" type="xml"> <group name="partner" position="after"> <group col="2" colspan="2"> @@ -38,7 +36,6 @@ <field name="name">base.action.rule.form3.inherit</field> <field name="model">base.action.rule</field> <field name="inherit_id" ref="base_action_rule.view_base_action_rule_form"/> - <field name="type">form</field> <field name="arch" type="xml"> <field name="act_user_id" position="after"> <field name="act_section_id"/> @@ -51,7 +48,6 @@ <field name="name">base.action.rule.form4.inherit</field> <field name="model">base.action.rule</field> <field name="inherit_id" ref="base_action_rule.view_base_action_rule_form"/> - <field name="type">form</field> <field name="arch" type="xml"> <field name="act_mail_to_user" position="after"> <field name="act_mail_to_partner"/> diff --git a/addons/crm/crm_data.xml b/addons/crm/crm_data.xml index e12f7840312..c5671385e56 100644 --- a/addons/crm/crm_data.xml +++ b/addons/crm/crm_data.xml @@ -26,17 +26,10 @@ <record model="crm.case.channel" id="crm_case_channel_email"> <field name="name">Email</field> </record> - <record id="mail_alias_sales_department" model="mail.alias"> - <field name="alias_name">sales</field> - <field name="alias_model_id" ref="model_crm_lead"/> - <field name="alias_user_id" ref="base.user_root"/> - <field name="alias_defaults">{'type':'lead'}</field> - </record> - + <record model="crm.case.section" id="section_sales_department"> <field name="name">Sales Department</field> <field name="code">Sales</field> - <field name="alias_id" ref="mail_alias_sales_department"/> </record> <!-- Payment Mode --> @@ -70,5 +63,13 @@ To manage quotations and sale orders, install the module "Sales Management".</value> </function> + + <record model="mail.alias" id="default_sales_alias"> + <field name="alias_name">sales</field> + <field name="alias_model_id" ref="model_crm_lead"/> + <field name="alias_user_id" ref="base.user_root"/> + <field name="alias_defaults">{'type':'lead'}</field> + </record> + </data> </openerp> diff --git a/addons/crm/crm_demo.xml b/addons/crm/crm_demo.xml index dab366c65f7..551e4e93fb8 100644 --- a/addons/crm/crm_demo.xml +++ b/addons/crm/crm_demo.xml @@ -1,14 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> <openerp> - <data noupdate="1"> - <record id="mail_alias_marketing_department" model="mail.alias"> - <field name="alias_name">info</field> - <field name="alias_model_id" ref="model_crm_lead"/> - <field name="alias_user_id" ref="base.user_root"/> - <field name="alias_defaults">{'type':'lead'}</field> - </record> - </data> - <data> <record id="base.user_demo" model="res.users"> <field name="groups_id" eval="[(4,ref('base.group_sale_salesman'))]"/> diff --git a/addons/crm/crm_lead.py b/addons/crm/crm_lead.py index 29d3eefec70..146417a7abb 100644 --- a/addons/crm/crm_lead.py +++ b/addons/crm/crm_lead.py @@ -243,7 +243,7 @@ class crm_lead(base_stage, osv.osv): 'partner_address_name': fields.related('partner_id', 'name', type='char', string='Partner Contact Name', readonly=True), 'partner_address_email': fields.related('partner_id', 'email', type='char', string='Partner Contact Email', readonly=True), 'company_currency': fields.related('company_id', 'currency_id', 'symbol', type='char', string='Company Currency', readonly=True), - 'user_email': fields.related('user_id', 'user_email', type='char', string='User Email', readonly=True), + 'user_email': fields.related('user_id', 'email', type='char', string='User Email', readonly=True), 'user_login': fields.related('user_id', 'login', type='char', string='User Login', readonly=True), # Fields for address, due to separation from crm and res.partner @@ -479,7 +479,7 @@ class crm_lead(base_stage, osv.osv): details = [] merge_message = _('Merged opportunities') subject = [merge_message] - fields = ['name', 'partner_id', 'stage_id', 'section_id', 'user_id', 'categ_id', 'channel_id', 'company_id', 'contact_name', + fields = ['name', 'partner_id', 'stage_id', 'section_id', 'user_id', 'categ_ids', 'channel_id', 'company_id', 'contact_name', 'email_from', 'phone', 'fax', 'mobile', 'state_id', 'description', 'probability', 'planned_revenue', 'country_id', 'city', 'street', 'street2', 'zip'] for opportunity in opportunities: @@ -550,7 +550,7 @@ class crm_lead(base_stage, osv.osv): first_opportunity = opportunities_list[0] tail_opportunities = opportunities_list[1:] - fields = ['partner_id', 'title', 'name', 'categ_id', 'channel_id', 'city', 'company_id', 'contact_name', 'country_id', 'type_id', 'user_id', 'section_id', 'state_id', 'description', 'email', 'fax', 'mobile', + fields = ['partner_id', 'title', 'name', 'categ_ids', 'channel_id', 'city', 'company_id', 'contact_name', 'country_id', 'type_id', 'user_id', 'section_id', 'state_id', 'description', 'email', 'fax', 'mobile', 'partner_name', 'phone', 'probability', 'planned_revenue', 'street', 'street2', 'zip', 'create_date', 'date_action_last', 'date_action_next', 'email_from', 'email_cc', 'partner_name'] @@ -692,11 +692,11 @@ class crm_lead(base_stage, osv.osv): """ #TOFIX: mail template should be used here instead of fix subject, body text. message = self.pool.get('mail.message') - email_to = lead.user_id and lead.user_id.user_email + email_to = lead.user_id and lead.user_id.email if not email_to: return False - email_from = lead.section_id and lead.section_id.user_id and lead.section_id.user_id.user_email or email_to + email_from = lead.section_id and lead.section_id.user_id and lead.section_id.user_id.email or email_to partner = lead.partner_id and lead.partner_id.name or lead.partner_name subject = "lead %s converted into opportunity" % lead.name body = "Info \n Id : %s \n Subject: %s \n Partner: %s \n Description : %s " % (lead.id, lead.name, lead.partner_id.name, lead.description) @@ -859,13 +859,10 @@ class crm_lead(base_stage, osv.osv): # OpenChatter methods and notifications # ---------------------------------------- - def message_get_subscribers(self, cr, uid, ids, context=None): - """ Override to add the salesman. """ - user_ids = super(crm_lead, self).message_get_subscribers(cr, uid, ids, context=context) - for obj in self.browse(cr, uid, ids, context=context): - if obj.user_id and not obj.user_id.id in user_ids: - user_ids.append(obj.user_id.id) - return user_ids + def message_get_monitored_follower_fields(self, cr, uid, ids, context=None): + """ Add 'user_id' to the monitored fields """ + res = super(crm_lead, self).message_get_monitored_follower_fields(cr, uid, ids, context=context) + return res + ['user_id'] def stage_set_send_note(self, cr, uid, ids, stage_id, context=None): """ Override of the (void) default notification method. """ diff --git a/addons/crm/crm_lead_data.xml b/addons/crm/crm_lead_data.xml index d9f2d8d0284..04f91933f66 100644 --- a/addons/crm/crm_lead_data.xml +++ b/addons/crm/crm_lead_data.xml @@ -72,8 +72,6 @@ </record> <record model="crm.case.section" id="section_sales_department"> - <field name="name">Sales Department</field> - <field name="code">Sales</field> <field name="stage_ids" eval="[ (4, ref('stage_lead1')), (4, ref('stage_lead2')), (4, ref('stage_lead3')), (4, ref('stage_lead4')), (4, ref('stage_lead5')), (4, ref('stage_lead6')), diff --git a/addons/crm/crm_lead_demo.xml b/addons/crm/crm_lead_demo.xml index ea26a24cad8..ed51c525335 100644 --- a/addons/crm/crm_lead_demo.xml +++ b/addons/crm/crm_lead_demo.xml @@ -553,7 +553,7 @@ Andrew</field> <field name="subject">Kitchen design</field> <field name="model">crm.lead</field> <field name="res_id" ref="crm_case_15"/> - <field name="subtype">html</field> + <field name="content_subtype">html</field> <field name="body_html"><![CDATA[Email0 inquiry]]></field> <field name="type">email</field> <field name="state">sent</field> @@ -563,7 +563,7 @@ Andrew</field> <field name="subject">Reply</field> <field name="model">crm.lead</field> <field name="res_id" ref="crm_case_15"/> - <field name="subtype">html</field> + <field name="content_subtype">html</field> <field name="body_html"><![CDATA[Internal note0]]></field> <field name="type">comment</field> <field name="user_id" ref="base.user_root"></field> @@ -572,7 +572,7 @@ Andrew</field> <field name="subject">Reply</field> <field name="model">crm.lead</field> <field name="res_id" ref="crm_case_15"/> - <field name="subtype">html</field> + <field name="content_subtype">html</field> <field name="body_html"><![CDATA[comment on note0]]></field> <field name="parent_id" ref="message_note0"/> <field name="type">comment</field> @@ -582,7 +582,7 @@ Andrew</field> <field name="subject">Reply</field> <field name="model">crm.lead</field> <field name="res_id" ref="crm_case_15"/> - <field name="subtype">html</field> + <field name="content_subtype">html</field> <field name="body_html"><![CDATA[comment1 on note0]]></field> <field name="parent_id" ref="message_note0"/> <field name="type">comment</field> @@ -592,7 +592,7 @@ Andrew</field> <field name="subject">Your inquiry</field> <field name="model">crm.lead</field> <field name="res_id" ref="crm_case_15"/> - <field name="subtype">html</field> + <field name="content_subtype">html</field> <field name="body_html"><![CDATA[hello, outgoing email]]></field> <field name="type">email</field> <field name="state">received</field> diff --git a/addons/crm/crm_lead_view.xml b/addons/crm/crm_lead_view.xml index 31535d5f2ce..e56215f3332 100644 --- a/addons/crm/crm_lead_view.xml +++ b/addons/crm/crm_lead_view.xml @@ -47,7 +47,6 @@ <record id="crm_lead_stage_search" model="ir.ui.view"> <field name="name">Stage - Search</field> <field name="model">crm.case.stage</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Stage Search"> <field name="name" string="Stage Name"/> @@ -128,7 +127,6 @@ <record model="ir.ui.view" id="crm_case_form_view_leads"> <field name="name">CRM - Leads Form</field> <field name="model">crm.lead</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Leads Form" version="7.0"> <header> @@ -224,6 +222,7 @@ </sheet> <div class="oe_chatter"> <field name="message_ids" widget="mail_thread"/> + <field name="message_follower_ids" widget="mail_followers"/> </div> </form> </field> @@ -233,7 +232,6 @@ <record model="ir.ui.view" id="crm_case_graph_view_leads"> <field name="name">Opportunities</field> <field name="model">crm.lead</field> - <field name="type">graph</field> <field name="arch" type="xml"> <graph string="Opportunities" type="bar"> <field name="stage_id"/> @@ -247,7 +245,6 @@ <record model="ir.ui.view" id="crm_case_tree_view_leads"> <field name="name">Leads</field> <field name="model">crm.lead</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Leads" fonts="bold:needaction_pending==True" colors="grey:state in ('cancel', 'done')"> <field name="date_deadline" invisible="1"/> @@ -274,7 +271,6 @@ <record model="ir.ui.view" id="crm_case_calendar_view_leads"> <field name="name">CRM - Leads Calendar</field> <field name="model">crm.lead</field> - <field name="type">calendar</field> <field name="priority" eval="2"/> <field name="arch" type="xml"> <calendar string="Leads Generation" @@ -289,7 +285,6 @@ <record model="ir.ui.view" id="crm_case_kanban_view_leads"> <field name="name">CRM - Leads Kanban</field> <field name="model">crm.lead</field> - <field name="type">kanban</field> <field name="arch" type="xml"> <kanban default_group_by="stage_id"> <field name="state" groups="base.group_no_one"/> @@ -362,7 +357,6 @@ <record id="view_crm_case_leads_filter" model="ir.ui.view"> <field name="name">CRM - Leads Search</field> <field name="model">crm.lead</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Search Leads"> <field name="name" string="Lead / Customer" filter_domain="['|','|',('partner_name','ilike',self),('email_from','ilike',self),('name','ilike',self)]"/> @@ -411,7 +405,6 @@ <record model="ir.ui.view" id="crm_case_form_view_oppor"> <field name="name">Opportunities</field> <field name="model">crm.lead</field> - <field name="type">form</field> <field name="priority">20</field> <field name="arch" type="xml"> <form string="Opportunities" version="7.0"> @@ -540,6 +533,7 @@ </sheet> <div class="oe_chatter"> <field name="message_ids" widget="mail_thread"/> + <field name="message_follower_ids" widget="mail_followers"/> </div> </form> </field> @@ -549,7 +543,6 @@ <record model="ir.ui.view" id="crm_case_tree_view_oppor"> <field name="name">Opportunities Tree</field> <field name="model">crm.lead</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Opportunities" fonts="bold:needaction_pending==True" colors="gray:state in ('cancel', 'done');red:date_deadline and (date_deadline < current_date)"> <field name="date_deadline" invisible="1"/> @@ -579,7 +572,6 @@ <record id="view_crm_case_opportunities_filter" model="ir.ui.view"> <field name="name">CRM - Opportunities Search</field> <field name="model">crm.lead</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Search Opportunities"> <field name="name" string="Opportunity / Customer" diff --git a/addons/crm/crm_meeting_view.xml b/addons/crm/crm_meeting_view.xml index 0340b4f11a6..d7f59267a30 100644 --- a/addons/crm/crm_meeting_view.xml +++ b/addons/crm/crm_meeting_view.xml @@ -7,7 +7,6 @@ <record id="attendee_form_view_inherit" model="ir.ui.view"> <field name="name">calendar.attendee.form.inherit</field> <field name="model">calendar.attendee</field> - <field name="type">form</field> <field name="inherit_id" ref="base_calendar.base_calendar_attendee_form_view"/> <field name="arch" type="xml"> <field name="ref" position="after"> diff --git a/addons/crm/crm_phonecall.py b/addons/crm/crm_phonecall.py index 8ffa8dd591e..da08f97250a 100644 --- a/addons/crm/crm_phonecall.py +++ b/addons/crm/crm_phonecall.py @@ -271,7 +271,6 @@ class crm_phonecall(base_state, osv.osv): def case_open_send_note(self, cr, uid, ids, context=None): lead_obj = self.pool.get('crm.lead') for phonecall in self.browse(cr, uid, ids, context=context): - phonecall.message_subscribe([phonecall.user_id.id], context=context) if phonecall.opportunity_id: lead = phonecall.opportunity_id # convert datetime field to a datetime, using server format, then diff --git a/addons/crm/crm_phonecall_view.xml b/addons/crm/crm_phonecall_view.xml index a0bd8326562..3b5162288a4 100644 --- a/addons/crm/crm_phonecall_view.xml +++ b/addons/crm/crm_phonecall_view.xml @@ -65,7 +65,6 @@ <record model="ir.ui.view" id="crm_case_phone_tree_view"> <field name="name">CRM - Phone Calls Tree</field> <field name="model">crm.phonecall</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree fonts="bold:needaction_pending==True" colors="gray:state in ('cancel','done');blue:state in ('pending',)" string="Phone Calls"> <field name="needaction_pending" invisible="1"/> @@ -104,9 +103,8 @@ <record model="ir.ui.view" id="crm_case_phone_form_view"> <field name="name">CRM - Phone Call Form</field> <field name="model">crm.phonecall</field> - <field name="type">form</field> <field name="arch" type="xml"> - <form version="7.0"> + <form string="Phone Call" version="7.0"> <header> <button name="case_close" string="Held" type="object" class="oe_highlight" states="open,pending"/> @@ -156,6 +154,7 @@ </sheet> <div class="oe_chatter"> <field name="message_ids" widget="mail_thread"/> + <field name="message_follower_ids" widget="mail_followers"/> </div> </form> </field> @@ -166,7 +165,6 @@ <record model="ir.ui.view" id="crm_case_inbound_phone_tree_view"> <field name="name">CRM - Logged Phone Calls Tree</field> <field name="model">crm.phonecall</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Phone Calls" fonts="bold:needaction_pending==True" editable="top"> <field name="date"/> @@ -204,7 +202,6 @@ <record model="ir.ui.view" id="crm_case_phone_calendar_view"> <field name="name">CRM - Phone Calls Calendar</field> <field name="model">crm.phonecall</field> - <field name="type">calendar</field> <field name="priority" eval="2"/> <field name="arch" type="xml"> <calendar string="Phone Calls" date_start="date" color="user_id" date_delay="duration"> @@ -218,7 +215,6 @@ <record id="view_crm_case_phonecalls_filter" model="ir.ui.view"> <field name="name">CRM - Phone Calls Search</field> <field name="model">crm.phonecall</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Search Phonecalls"> <field name="name" string="Phonecalls"/> diff --git a/addons/crm/crm_report_view.xml b/addons/crm/crm_report_view.xml index eaed4564424..355d862c898 100644 --- a/addons/crm/crm_report_view.xml +++ b/addons/crm/crm_report_view.xml @@ -7,7 +7,6 @@ <record model="ir.ui.view" id="view_crm_case_section_categ_tree"> <field name="name">CRM Report - Teams and Type(Tree)</field> <field name="model">report.crm.case.section.categ2</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Cases by Team and Type"> <field name="name"/> @@ -29,7 +28,6 @@ <record model="ir.ui.view" id="view_crm_case_section_categ_form"> <field name="name">CRM Report - Teams and Type(Form)</field> <field name="model">report.crm.case.section.categ2</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Cases by Team and Category2"> <field name="name"/> @@ -51,7 +49,6 @@ <record model="ir.ui.view" id="view_crm_case_section_categ_graph"> <field name="name">CRM Report - Teams and Type(Graph)</field> <field name="model">report.crm.case.section.categ2</field> - <field name="type">graph</field> <field name="arch" type="xml"> <graph string="Cases by Teams and Type" type="bar" orientation="horizontal"> <field name="category2_id"/> @@ -66,7 +63,6 @@ <record id="view_crm_case_section_categ_filter" model="ir.ui.view"> <field name="name">CRM Report - Teams and Type(Select)</field> <field name="model">report.crm.case.section.categ2</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Cases by Team and Type"> <field name="name"/> @@ -94,7 +90,6 @@ <record model="ir.ui.view" id="view_crm_case_section_stage_tree"> <field name="name">CRM Report - Teams and Stage(Tree)</field> <field name="model">report.crm.case.section.stage</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Cases by Team and Stage"> <field name="name"/> @@ -115,7 +110,6 @@ <record model="ir.ui.view" id="view_crm_case_section_stage_form"> <field name="name">CRM Report - Teams and Stage(Form)</field> <field name="model">report.crm.case.section.stage</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Cases by Team and Stage"> <field name="name"/> @@ -136,7 +130,6 @@ <record model="ir.ui.view" id="view_crm_case_section_stage_graph"> <field name="name">CRM Report - Teams and Stage(Graph)</field> <field name="model">report.crm.case.section.stage</field> - <field name="type">graph</field> <field name="arch" type="xml"> <graph string="Cases by Team and Stage" type="bar" orientation="horizontal"> <field name="stage_id"/> @@ -151,7 +144,6 @@ <record id="view_crm_case_section_stage_filter" model="ir.ui.view"> <field name="name">CRM Report - Teams and Stage(Select)</field> <field name="model">report.crm.case.section.stage</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Cases by Team and Stage"> <field name="name"/> @@ -178,7 +170,6 @@ <record model="ir.ui.view" id="view_crm_case_section_categ_stage_tree"> <field name="name">CRM Report - Team, Category and Stage(Tree)</field> <field name="model">report.crm.case.section.categ.stage</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Cases by Team, Category and Stage"> <field name="name"/> @@ -199,7 +190,6 @@ <record model="ir.ui.view" id="view_crm_case_section_categ_stage_form"> <field name="name">CRM Report - Team, Category and Stage(Form)</field> <field name="model">report.crm.case.section.categ.stage</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Cases by Section, Category and Stage"> <field name="name"/> @@ -220,7 +210,6 @@ <record id="view_crm_case_section_categ_stage_filter" model="ir.ui.view"> <field name="name">CRM Report - Section, Category and Stage(Select)</field> <field name="model">report.crm.case.section.categ.stage</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Cases by Section, Category and Stage"> <field name="name"/> @@ -237,7 +226,6 @@ <record model="ir.ui.view" id="view_crm_case_section_categ_stage_graph"> <field name="name">CRM Report - Section, Category and Stage(Select)</field> <field name="model">report.crm.case.section.categ.stage</field> - <field name="type">graph</field> <field name="arch" type="xml"> <graph string="Cases by Section, Category and Stage" type="bar" orientation="horizontal"> <field name="categ_id"/> @@ -262,7 +250,6 @@ <record model="ir.ui.view" id="view_crm_case_section_categ_categ2_tree"> <field name="name">CRM Report - Section, Category and Type(Tree)</field> <field name="model">report.crm.case.section.categ.categ2</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Cases by Section, Category and Type"> <field name="name"/> @@ -284,7 +271,6 @@ <record model="ir.ui.view" id="view_crm_case_section_categ_categ2_form"> <field name="name">CRM Report - Section, Category and Type(Form)</field> <field name="model">report.crm.case.section.categ.categ2</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Cases by Section, Category and Type"> <field name="name"/> @@ -306,7 +292,6 @@ <record id="view_crm_case_section_categ_categ2_filter" model="ir.ui.view"> <field name="name">CRM Report - Section, Category and Type(Select)</field> <field name="model">report.crm.case.section.categ.categ2</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Search Cases by User"> <field name="name"/> @@ -323,7 +308,6 @@ <record model="ir.ui.view" id="view_crm_case_section_categ_categ2_graph"> <field name="name">CRM Report - Section, Category and Type(Select)</field> <field name="model">report.crm.case.section.categ.categ2</field> - <field name="type">graph</field> <field name="arch" type="xml"> <graph string="Cases by Section, Category and Type" type="bar" orientation="horizontal"> <field name="category2_id"/> diff --git a/addons/crm/crm_view.xml b/addons/crm/crm_view.xml index d2a5c78729e..b51f1288b95 100644 --- a/addons/crm/crm_view.xml +++ b/addons/crm/crm_view.xml @@ -33,7 +33,6 @@ <record id="crm_case_channel_view_tree" model="ir.ui.view"> <field name="name">crm.case.channel.tree</field> <field name="model">crm.case.channel</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Channels"> <field name="name"/> @@ -44,7 +43,6 @@ <record id="crm_case_channel_view_form" model="ir.ui.view"> <field name="name">crm.case.channel.form</field> <field name="model">crm.case.channel</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Channel" version="7.0"> <group> @@ -80,7 +78,6 @@ <record id="crm_case_section_view_form" model="ir.ui.view"> <field name="name">crm.case.section.form</field> <field name="model">crm.case.section</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Sales Team" version="7.0"> <group> @@ -99,7 +96,7 @@ <notebook colspan="4"> <page string="Sales Team"> <group> - <field name="alias_id" invisible="1"/> + <field name="alias_id" invisible="1" required="0"/> <label for="alias_name" attrs="{'invisible': [('alias_domain', '=', False)]}"/> <div attrs="{'invisible': [('alias_domain', '=', False)]}"> <field name="alias_name" class="oe_inline" attrs="{'required': [('alias_id', '!=', False)]}"/>@<field name="alias_domain" class="oe_inline"/> @@ -127,7 +124,6 @@ <record id="crm_case_section_view_tree" model="ir.ui.view"> <field name="name">crm.case.section.tree</field> <field name="model">crm.case.section</field> - <field name="type">tree</field> <field name="field_parent">child_ids</field> <field name="arch" type="xml"> <tree string="Sales Team"> @@ -166,7 +162,6 @@ <record model="ir.ui.view" id="crm_case_stage_tree"> <field name="name">crm.case.stage.tree</field> <field name="model">crm.case.stage</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Stages"> <field name="sequence"/> @@ -183,7 +178,6 @@ <record model="ir.ui.view" id="crm_case_stage_form"> <field name="name">crm.case.stage.form</field> <field name="model">crm.case.stage</field> - <field name="type">form</field> <field name="priority" eval="1"/> <field name="arch" type="xml"> <form string="Stage" version="7.0"> @@ -219,7 +213,6 @@ <record id="crm_case_categ-view" model="ir.ui.view"> <field name="name">crm.case.categ.form</field> <field name="model">crm.case.categ</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Case Category" version="7.0"> <group> @@ -236,7 +229,6 @@ <record id="crm_case_categ_tree-view" model="ir.ui.view"> <field name="name">crm.case.categ.tree</field> <field name="model">crm.case.categ</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Case Category"> <field name="name"/> @@ -250,7 +242,6 @@ <record model="ir.ui.view" id="crm_case_resource_type_tree"> <field name="name">crm.case.resource.type.tree</field> <field name="model">crm.case.resource.type</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Campaign"> <field name="name"/> @@ -264,7 +255,6 @@ <record model="ir.ui.view" id="crm_case_resource_type_form"> <field name="name">crm.case.resource.type.form</field> <field name="model">crm.case.resource.type</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Campaign" version="7.0"> <group> @@ -302,7 +292,6 @@ <record id="crm_segmentation_line_tree-view" model="ir.ui.view"> <field name="name">crm.segmentation.line.tree</field> <field name="model">crm.segmentation.line</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Partner Segmentation Lines"> <field name="name"/> @@ -319,7 +308,6 @@ <record id="crm_segmentation_line-view" model="ir.ui.view"> <field name="name">crm.segmentation.line.form</field> <field name="model">crm.segmentation.line</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Partner Segmentation Lines" version="7.0"> <group col="4"> @@ -340,7 +328,6 @@ <record id="crm_segmentation-view" model="ir.ui.view"> <field name="name">crm.segmentation.form</field> <field name="model">crm.segmentation</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Partner Segmentation" version="7.0"> <header> @@ -382,7 +369,6 @@ <record id="crm_segmentation_tree-view" model="ir.ui.view"> <field name="name">crm.segmentation.tree</field> <field name="model">crm.segmentation</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Partner Segmentations"> <field name="name"/> @@ -429,7 +415,6 @@ <record model="ir.ui.view" id="view_crm_payment_mode_tree"> <field name="name">crm.payment.mode.tree</field> <field name="model">crm.payment.mode</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Payment Mode"> <field name="name"/> @@ -443,7 +428,6 @@ <record model="ir.ui.view" id="view_crm_payment_mode_form"> <field name="name">crm.payment.mode.form</field> <field name="model">crm.payment.mode</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Payment Mode" version="7.0"> <group> diff --git a/addons/crm/report/crm_lead_report_view.xml b/addons/crm/report/crm_lead_report_view.xml index 9d0050be69c..4283dd8fb3c 100644 --- a/addons/crm/report/crm_lead_report_view.xml +++ b/addons/crm/report/crm_lead_report_view.xml @@ -7,7 +7,6 @@ <record id="view_report_crm_lead_tree" model="ir.ui.view"> <field name="name">crm.lead.report.tree</field> <field name="model">crm.lead.report</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Leads Analysis"> <field name="creation_year" invisible="1"/> @@ -39,7 +38,6 @@ <record id="view_report_crm_lead_graph" model="ir.ui.view"> <field name="name">crm.lead.report.graph</field> <field name="model">crm.lead.report</field> - <field name="type">graph</field> <field name="arch" type="xml"> <graph orientation="vertical" string="Leads Analysis" type="bar"> <field name="stage_id"/> @@ -52,7 +50,6 @@ <record id="view_report_crm_opportunity_graph" model="ir.ui.view"> <field name="name">crm.opportunity.report.graph</field> <field name="model">crm.lead.report</field> - <field name="type">graph</field> <field name="arch" type="xml"> <graph orientation="vertical" string="Leads Analysis" type="bar"> <field name="stage_id"/> @@ -67,7 +64,6 @@ <record id="view_report_crm_lead_filter" model="ir.ui.view"> <field name="name">crm.lead.report.select</field> <field name="model">crm.lead.report</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Leads Analysis"> <filter icon="terp-personal" name="lead" string="Lead" domain="[('type','=', 'lead')]" help="Show only lead"/> @@ -143,7 +139,6 @@ <record id="view_report_crm_opportunity_tree" model="ir.ui.view"> <field name="name">crm.lead.report.tree</field> <field name="model">crm.lead.report</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree colors="blue:state == 'draft';black:state in ('open','pending','done');gray:state == 'cancel' " string="Opportunities Analysis"> <field name="creation_year" invisible="1"/> diff --git a/addons/crm/report/crm_phonecall_report_view.xml b/addons/crm/report/crm_phonecall_report_view.xml index 2eeff7a0981..ec7ea5e6bdb 100644 --- a/addons/crm/report/crm_phonecall_report_view.xml +++ b/addons/crm/report/crm_phonecall_report_view.xml @@ -7,7 +7,6 @@ <record id="view_report_crm_phonecall_tree" model="ir.ui.view"> <field name="name">crm.phonecall.report.tree</field> <field name="model">crm.phonecall.report</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Phone calls"> <field name="name" invisible="1"/> @@ -33,7 +32,6 @@ <record id="view_report_crm_phonecall_graph" model="ir.ui.view"> <field name="name">crm.phonecall.report.graph</field> <field name="model">crm.phonecall.report</field> - <field name="type">graph</field> <field name="arch" type="xml"> <graph orientation="horizontal" string="Phone calls" type="bar"> <field name="state"/> @@ -48,7 +46,6 @@ <record id="view_report_crm_phonecall_filter" model="ir.ui.view"> <field name="name">crm.phonecall.report.select</field> <field name="model">crm.phonecall.report</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Search"> <filter icon="terp-gtk-go-back-rtl" string="Todo" domain="[('state','in',('draft','open'))]" diff --git a/addons/crm/res_config_view.xml b/addons/crm/res_config_view.xml index 0d09096918f..3ab9ac8a32c 100644 --- a/addons/crm/res_config_view.xml +++ b/addons/crm/res_config_view.xml @@ -5,7 +5,6 @@ <record id="view_sale_config_settings" model="ir.ui.view"> <field name="name">crm settings</field> <field name="model">sale.config.settings</field> - <field name="type">form</field> <field name="inherit_id" ref="base_setup.view_sale_config_settings"/> <field name="arch" type="xml"> <group name="On Mail Client" version="7.0" position="after"> @@ -22,7 +21,7 @@ </group> </group> <div name="config_other" version="7.0" position="inside"> - <separator string="Import and Synchronize Data from an Other Application"/> + <separator string="Importing and Synchronizing with External Systems"/> <group> <label for="id" string="Synchronize with"/> <div> diff --git a/addons/crm/res_partner.py b/addons/crm/res_partner.py index 31c45969f8e..55cc0c95b2c 100644 --- a/addons/crm/res_partner.py +++ b/addons/crm/res_partner.py @@ -82,7 +82,7 @@ class res_partner(osv.osv): 'planned_revenue' : planned_revenue, 'probability' : probability, 'partner_id' : partner_id, - 'categ_id' : categ_ids and categ_ids[0] or '', + 'categ_ids' : categ_ids and categ_ids[0:1] or [], 'state' :'draft', 'type': 'opportunity' }, context=context) diff --git a/addons/crm/res_partner_view.xml b/addons/crm/res_partner_view.xml index 4461dd63c4c..a3c60d4421c 100644 --- a/addons/crm/res_partner_view.xml +++ b/addons/crm/res_partner_view.xml @@ -6,7 +6,6 @@ <record id="view_partners_form_crm1" model="ir.ui.view"> <field name="name">view.res.partner.form.crm.inherited1</field> <field name="model">res.partner</field> - <field name="type">form</field> <field name="inherit_id" ref="base.view_partner_form"/> <field eval="18" name="priority"/> <field name="arch" type="xml"> @@ -19,7 +18,6 @@ <record id="view_partners_tree_crm2" model="ir.ui.view"> <field name="name">view.res.partner.tree.crm.inherited2</field> <field name="model">res.partner</field> - <field name="type">tree</field> <field name="inherit_id" ref="base.view_partner_tree"/> <field eval="18" name="priority"/> <field name="arch" type="xml"> @@ -32,7 +30,6 @@ <record id="view_partners_form_crm3" model="ir.ui.view"> <field name="name">view.res.partner.search.crm.inherited3</field> <field name="model">res.partner</field> - <field name="type">search</field> <field name="inherit_id" ref="base.view_res_partner_filter"/> <field eval="18" name="priority"/> <field name="arch" type="xml"> @@ -106,7 +103,6 @@ <record model="ir.ui.view" id="crm_lead_partner_kanban_view"> <field name="name">res.partner.kanban.inherit</field> <field name="model">res.partner</field> - <field name="type">kanban</field> <field name="inherit_id" ref="base.res_partner_kanban_view"/> <field name="priority" eval="10"/> <field name="arch" type="xml"> @@ -129,7 +125,6 @@ <record model="ir.ui.view" id="res_partner_view_buttons"> <field name="name">res.partner.view.buttons</field> <field name="model">res.partner</field> - <field name="type">form</field> <field name="inherit_id" ref="base.view_partner_form" /> <field name="priority" eval="10"/> <field name="arch" type="xml"> diff --git a/addons/crm/wizard/crm_lead_to_opportunity_view.xml b/addons/crm/wizard/crm_lead_to_opportunity_view.xml index 3e7b1dc0bab..8829749efa3 100644 --- a/addons/crm/wizard/crm_lead_to_opportunity_view.xml +++ b/addons/crm/wizard/crm_lead_to_opportunity_view.xml @@ -5,7 +5,6 @@ <record id="view_crm_lead2opportunity_partner" model="ir.ui.view"> <field name="name">crm.lead2opportunity.partner.form</field> <field name="model">crm.lead2opportunity.partner</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Convert to Opportunity" version="7.0"> <field name="action"/> @@ -36,7 +35,6 @@ <record id="view_crm_lead2opportunity_partner_mass" model="ir.ui.view"> <field name="name">crm.lead2opportunity.partner.mass.form</field> <field name="model">crm.lead2opportunity.partner.mass</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Convert to Opportunity" version="7.0"> <field name="action"/> diff --git a/addons/crm/wizard/crm_lead_to_partner_view.xml b/addons/crm/wizard/crm_lead_to_partner_view.xml index a430c943d5d..21a14dd3726 100644 --- a/addons/crm/wizard/crm_lead_to_partner_view.xml +++ b/addons/crm/wizard/crm_lead_to_partner_view.xml @@ -6,7 +6,6 @@ <record id="view_crm_lead2partner" model="ir.ui.view"> <field name="name">crm.lead2partner.view</field> <field name="model">crm.lead2partner</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Create a Partner" version="7.0"> <group col="4"> diff --git a/addons/crm/wizard/crm_merge_opportunities_view.xml b/addons/crm/wizard/crm_merge_opportunities_view.xml index e10272a1635..3a0b11c4255 100644 --- a/addons/crm/wizard/crm_merge_opportunities_view.xml +++ b/addons/crm/wizard/crm_merge_opportunities_view.xml @@ -7,7 +7,6 @@ <record model="ir.ui.view" id="merge_opportunity_form"> <field name="name">crm.merge.opportunity.form</field> <field name="model">crm.merge.opportunity</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Merge Opportunities" version="7.0"> <separator string="Select Opportunities"/> diff --git a/addons/crm/wizard/crm_opportunity_to_phonecall_view.xml b/addons/crm/wizard/crm_opportunity_to_phonecall_view.xml index ccabcde88fe..6e44573cc89 100644 --- a/addons/crm/wizard/crm_opportunity_to_phonecall_view.xml +++ b/addons/crm/wizard/crm_opportunity_to_phonecall_view.xml @@ -7,7 +7,6 @@ <record model="ir.ui.view" id="opportunity2phonecall_view"> <field name="name">crm.opportunity2phonecall.form</field> <field name="model">crm.opportunity2phonecall</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Schedule/Log a Call" version="7.0"> <group> diff --git a/addons/crm/wizard/crm_partner_to_opportunity_view.xml b/addons/crm/wizard/crm_partner_to_opportunity_view.xml index 8bc97ba141b..765a22de0a6 100644 --- a/addons/crm/wizard/crm_partner_to_opportunity_view.xml +++ b/addons/crm/wizard/crm_partner_to_opportunity_view.xml @@ -6,7 +6,6 @@ <record id="view_crm_partner2opportunity" model="ir.ui.view"> <field name="name">crm.crm.partner2opportunity</field> <field name="model">crm.partner2opportunity</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Create Opportunity" version="7.0"> <group col="4"> diff --git a/addons/crm/wizard/crm_phonecall_to_meeting_view.xml b/addons/crm/wizard/crm_phonecall_to_meeting_view.xml index 00f6700e5a5..763b16d08b1 100644 --- a/addons/crm/wizard/crm_phonecall_to_meeting_view.xml +++ b/addons/crm/wizard/crm_phonecall_to_meeting_view.xml @@ -8,7 +8,6 @@ <record model="ir.ui.view" id="phonecall2phonecall2meeting_view"> <field name="name">crm.phonecall2meeting.form</field> <field name="model">crm.phonecall2meeting</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Convert To Meeting" version="7.0"> <label string="Are you sure to schedule a Meeting for this Phonecall?"/> diff --git a/addons/crm/wizard/crm_phonecall_to_opportunity_view.xml b/addons/crm/wizard/crm_phonecall_to_opportunity_view.xml index 5304bd8beb5..8ec4846733c 100644 --- a/addons/crm/wizard/crm_phonecall_to_opportunity_view.xml +++ b/addons/crm/wizard/crm_phonecall_to_opportunity_view.xml @@ -7,7 +7,6 @@ <record model="ir.ui.view" id="phonecall2opportunity_view"> <field name="name">crm.phonecall2opportunity.form</field> <field name="model">crm.phonecall2opportunity</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Convert To Opportunity " version="7.0"> <group col="4"> diff --git a/addons/crm/wizard/crm_phonecall_to_partner_view.xml b/addons/crm/wizard/crm_phonecall_to_partner_view.xml index 1243d7bc456..7231876b0c1 100644 --- a/addons/crm/wizard/crm_phonecall_to_partner_view.xml +++ b/addons/crm/wizard/crm_phonecall_to_partner_view.xml @@ -6,7 +6,6 @@ <record id="view_crm_phonecall2partner_create" model="ir.ui.view"> <field name="name">crm.phonecall2partner.view.create</field> <field name="model">crm.phonecall2partner</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Create a Partner" version="7.0"> <label string="Are you sure you want to create a partner based on this Phonecall ?"/> @@ -26,7 +25,6 @@ <record id="view_crm_phonecall2partner" model="ir.ui.view"> <field name="name">crm.phonecall2partner.view</field> <field name="model">crm.phonecall2partner</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Create a Partner" version="7.0"> <group> diff --git a/addons/crm/wizard/crm_phonecall_to_phonecall_view.xml b/addons/crm/wizard/crm_phonecall_to_phonecall_view.xml index dd8006c7990..e2d25218749 100644 --- a/addons/crm/wizard/crm_phonecall_to_phonecall_view.xml +++ b/addons/crm/wizard/crm_phonecall_to_phonecall_view.xml @@ -7,7 +7,6 @@ <record model="ir.ui.view" id="phonecall_to_phonecall_view"> <field name="name">crm.phonecall2phonecall.form</field> <field name="model">crm.phonecall2phonecall</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Schedule/Log a Call" version="7.0"> <group col="4"> diff --git a/addons/crm_claim/crm_claim_view.xml b/addons/crm_claim/crm_claim_view.xml index 930c08408cd..820fb38e58a 100644 --- a/addons/crm_claim/crm_claim_view.xml +++ b/addons/crm_claim/crm_claim_view.xml @@ -34,7 +34,6 @@ <record id="crm_claim_stage_tree" model="ir.ui.view"> <field name="name">crm.claim.stage.tree</field> <field name="model">crm.claim.stage</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Claim Stages"> <field name="sequence"/> @@ -47,7 +46,6 @@ <record id="crm_claim_stage_form" model="ir.ui.view"> <field name="name">crm.claim.stage.form</field> <field name="model">crm.claim.stage</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Claim Stage"> <field name="name"/> @@ -81,7 +79,6 @@ <record model="ir.ui.view" id="crm_case_claims_tree_view"> <field name="name">CRM - Claims Tree</field> <field name="model">crm.claim</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Claims" colors="blue:state=='pending' and not(date_deadline and (date_deadline < current_date));gray:state in ('close', 'cancel');red:date_deadline and (date_deadline < current_date)"> <field name="name"/> @@ -102,9 +99,8 @@ <record model="ir.ui.view" id="crm_case_claims_form_view"> <field name="name">CRM - Claims Form</field> <field name="model">crm.claim</field> - <field name="type">form</field> <field name="arch" type="xml"> - <form version="7.0"> + <form string="Claim" version="7.0"> <header> <span groups="base.group_user"> <button name="case_open" string="Open" type="object" class="oe_highlight" @@ -186,6 +182,7 @@ </sheet> <div class="oe_chatter"> <field name="message_ids" colspan="4" widget="mail_thread" nolabel="1"/> + <field name="message_follower_ids" widget="mail_followers"/> </div> </form> </field> @@ -196,7 +193,6 @@ <record model="ir.ui.view" id="crm_case_claims_calendar_view"> <field name="name">Claims Actions</field> <field name="model">crm.claim</field> - <field name="type">calendar</field> <field name="priority" eval="2"/> <field name="arch" type="xml"> <calendar string="Claims" date_start="date_action_next" color="user_id"> @@ -211,7 +207,6 @@ <record id="view_crm_case_claims_filter" model="ir.ui.view"> <field name="name">CRM - Claims Search</field> <field name="model">crm.claim</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Search Claims"> <field name="name" string="Claims"/> @@ -239,7 +234,6 @@ <record id="view_claim_partner_info_form1" model="ir.ui.view"> <field name="name">res.partner.claim.info.form</field> <field name="model">res.partner</field> - <field name="type">form</field> <field name="inherit_id" ref="base.view_partner_form"/> <field name="priority">20</field> <field name="arch" type="xml"> diff --git a/addons/crm_claim/report/crm_claim_report_view.xml b/addons/crm_claim/report/crm_claim_report_view.xml index adfb97a28f0..5a3a3d92a09 100644 --- a/addons/crm_claim/report/crm_claim_report_view.xml +++ b/addons/crm_claim/report/crm_claim_report_view.xml @@ -7,7 +7,6 @@ <record id="view_report_crm_claim_tree" model="ir.ui.view"> <field name="name">crm.claim.report.tree</field> <field name="model">crm.claim.report</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Claims"> <field name="name" invisible="1"/> @@ -35,7 +34,6 @@ <record id="view_report_crm_claim_graph" model="ir.ui.view"> <field name="name">crm.claim.report.graph</field> <field name="model">crm.claim.report</field> - <field name="type">graph</field> <field name="arch" type="xml"> <graph orientation="horizontal" string="Claims" type="bar"> <field name="state"/> @@ -50,7 +48,6 @@ <record id="view_report_crm_claim_filter" model="ir.ui.view"> <field name="name">crm.claim.report.select</field> <field name="model">crm.claim.report</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Search"> <filter icon="terp-document-new" string="New" domain="[('state','=','draft')]"/> diff --git a/addons/crm_claim/res_config_view.xml b/addons/crm_claim/res_config_view.xml index 043fd4f76b9..79474f1fb00 100644 --- a/addons/crm_claim/res_config_view.xml +++ b/addons/crm_claim/res_config_view.xml @@ -5,7 +5,6 @@ <record id="view_project_config_claim" model="ir.ui.view"> <field name="name">crm_claim settings</field> <field name="model">sale.config.settings</field> - <field name="type">form</field> <field name="inherit_id" ref="base_setup.view_sale_config_settings"/> <field name="priority" eval="20"/> <field name="arch" type="xml"> diff --git a/addons/crm_helpdesk/crm_helpdesk_view.xml b/addons/crm_helpdesk/crm_helpdesk_view.xml index 0fb0cbf825f..5399c9880ca 100644 --- a/addons/crm_helpdesk/crm_helpdesk_view.xml +++ b/addons/crm_helpdesk/crm_helpdesk_view.xml @@ -26,9 +26,8 @@ <record model="ir.ui.view" id="crm_case_form_view_helpdesk"> <field name="name">CRM - Helpdesk Support Form</field> <field name="model">crm.helpdesk</field> - <field name="type">form</field> <field name="arch" type="xml"> - <form version="7.0"> + <form string="Helpdesk Support" version="7.0"> <header> <button name="case_open" string="Open" type="object" class="oe_highlight" states="draft,pending"/> @@ -101,6 +100,7 @@ </sheet> <div class="oe_chatter"> <field name="message_ids" widget="mail_thread"/> + <field name="message_follower_ids" widget="mail_followers"/> </div> </form> </field> @@ -111,7 +111,6 @@ <record model="ir.ui.view" id="crm_case_tree_view_helpdesk"> <field name="name">CRM - Helpdesk Support Tree</field> <field name="model">crm.helpdesk</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Helpdesk Support Tree" colors="black:state=='open';blue:state=='pending';gray:state in ('cancel','done')"> @@ -132,7 +131,6 @@ <record model="ir.ui.view" id="crm_case_helpdesk_calendar_view"> <field name="name">CRM - Helpdesk Support Calendar</field> <field name="model">crm.helpdesk</field> - <field name="type">calendar</field> <field name="priority" eval="2"/> <field name="arch" type="xml"> <calendar string="Helpdesk Supports" date_start="date" color="user_id" date_delay="duration"> @@ -148,7 +146,6 @@ <record id="view_crm_case_helpdesk_filter" model="ir.ui.view"> <field name="name">CRM - Helpdesk Search</field> <field name="model">crm.helpdesk</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Search Helpdesk"> <field name="name" string="Query"/> diff --git a/addons/crm_helpdesk/report/crm_helpdesk_report_view.xml b/addons/crm_helpdesk/report/crm_helpdesk_report_view.xml index 9aab23eab70..4750fa3344d 100644 --- a/addons/crm_helpdesk/report/crm_helpdesk_report_view.xml +++ b/addons/crm_helpdesk/report/crm_helpdesk_report_view.xml @@ -7,7 +7,6 @@ <record id="view_report_crm_helpdesk_tree" model="ir.ui.view"> <field name="name">crm.helpdesk.report.tree</field> <field name="model">crm.helpdesk.report</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Helpdesk"> <field name="name" invisible="1"/> @@ -35,7 +34,6 @@ <record id="view_report_crm_helpdesk_graph" model="ir.ui.view"> <field name="name">crm.helpdesk.report.graph</field> <field name="model">crm.helpdesk.report</field> - <field name="type">graph</field> <field name="arch" type="xml"> <graph orientation="horizontal" string="Helpdesk" type="bar"> <field name="state"/> @@ -50,7 +48,6 @@ <record id="view_report_crm_helpdesk_filter" model="ir.ui.view"> <field name="name">crm.helpdesk.report.select</field> <field name="model">crm.helpdesk.report</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Search"> <filter string="New" icon="terp-check" domain="[('state','=','draft')]" /> diff --git a/addons/crm_partner_assign/crm_lead_view.xml b/addons/crm_partner_assign/crm_lead_view.xml index 258b16cea93..d4ff93d52fd 100644 --- a/addons/crm_partner_assign/crm_lead_view.xml +++ b/addons/crm_partner_assign/crm_lead_view.xml @@ -4,7 +4,6 @@ <record id="view_crm_opportunity_geo_assign_form" model="ir.ui.view"> <field name="name">crm.lead.geo_assign.inherit</field> <field name="model">crm.lead</field> - <field name="type">form</field> <field name="inherit_id" ref="crm.crm_case_form_view_oppor"/> <field name="arch" type="xml"> <data> @@ -43,7 +42,6 @@ <record id="view_crm_opportunity_geo_assign_tree" model="ir.ui.view"> <field name="name">crm.lead.geo_assign.tree.inherit</field> <field name="model">crm.lead</field> - <field name="type">tree</field> <field name="inherit_id" ref="crm.crm_case_tree_view_oppor"/> <field name="arch" type="xml"> <field name="partner_id" position="after"> @@ -54,7 +52,6 @@ <record model="ir.ui.view" id="crm_opportunity_partner_filter"> <field name="name">crm.opportunity.partner.filter.assigned</field> <field name="model">crm.lead</field> - <field name="type">search</field> <field name="inherit_id" ref="crm.view_crm_case_opportunities_filter"/> <field name="arch" type="xml"> <filter string="Team" position="after"> diff --git a/addons/crm_partner_assign/report/crm_lead_report_view.xml b/addons/crm_partner_assign/report/crm_lead_report_view.xml index f88d7e91f00..662a7c3dce0 100644 --- a/addons/crm_partner_assign/report/crm_lead_report_view.xml +++ b/addons/crm_partner_assign/report/crm_lead_report_view.xml @@ -6,7 +6,6 @@ <record id="view_report_crm_lead_assign_filter" model="ir.ui.view"> <field name="name">crm.lead.report.assign.select</field> <field name="model">crm.lead.report.assign</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Leads Analysis"> <filter icon="terp-check" string="Current" domain="[('state','in',('draft','open'))]"/> @@ -53,7 +52,6 @@ <record id="view_report_crm_lead_assign_graph" model="ir.ui.view"> <field name="name">crm.lead.assign.graph</field> <field name="model">crm.lead.report.assign</field> - <field name="type">graph</field> <field name="arch" type="xml"> <graph orientation="horizontal" string="Lead Assign" type="bar"> <field name="state"/> @@ -66,7 +64,6 @@ <record id="view_report_crm_opportunity_assign_tree" model="ir.ui.view"> <field name="name">crm.lead.assign.report.tree</field> <field name="model">crm.lead.report.assign</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Opportunities Assignment Analysis"> <field name="year" invisible="1"/> diff --git a/addons/crm_partner_assign/report/crm_partner_report_view.xml b/addons/crm_partner_assign/report/crm_partner_report_view.xml index af811f8f869..107328ac4e0 100644 --- a/addons/crm_partner_assign/report/crm_partner_report_view.xml +++ b/addons/crm_partner_assign/report/crm_partner_report_view.xml @@ -6,7 +6,6 @@ <record id="view_report_crm_partner_assign_filter" model="ir.ui.view"> <field name="name">crm.partner.report.assign.select</field> <field name="model">crm.partner.report.assign</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Partner assigned Analysis"> <field name="section_id"/> @@ -41,7 +40,6 @@ <record id="view_report_crm_partner_assign_tree" model="ir.ui.view"> <field name="name">crm.partner.assign.report.tree</field> <field name="model">crm.partner.report.assign</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Opportunities Assignment Analysis"> <field name="partner_id" invisible="1"/> diff --git a/addons/crm_partner_assign/res_partner_view.xml b/addons/crm_partner_assign/res_partner_view.xml index 4138cbf7f09..f5a1e9aad25 100644 --- a/addons/crm_partner_assign/res_partner_view.xml +++ b/addons/crm_partner_assign/res_partner_view.xml @@ -7,7 +7,6 @@ <record model="ir.ui.view" id="res_partner_activation_form"> <field name="name">openerp_custom.res.partner.activation.form</field> <field name="model">res.partner.activation</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Activation" version="7.0"> <group col="4"> @@ -20,7 +19,6 @@ <record model="ir.ui.view" id="res_partner_activation_tree"> <field name="name">openerp_custom.res.partner.activation.tree</field> <field name="model">res.partner.activation</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Activation"> <field name="name" /> @@ -43,7 +41,6 @@ <record id="view_partner_grade_tree" model="ir.ui.view"> <field name="name">res.partner.grade.tree</field> <field name="model">res.partner.grade</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Partner Grade"> <field name="sequence" invisible="1"/> @@ -54,7 +51,6 @@ <record id="view_partner_grade_form" model="ir.ui.view"> <field name="name">res.partner.grade.form</field> <field name="model">res.partner.grade</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Partner Grade" version="7.0"> <group col="4"> @@ -78,7 +74,6 @@ <record id="view_res_partner_filter_assign_tree" model="ir.ui.view"> <field name="name">res.partner.geo.inherit.tree</field> <field name="model">res.partner</field> - <field name="type">tree</field> <field name="inherit_id" ref="base.view_partner_tree"/> <field name="arch" type="xml"> <field name="user_id" position="after"> @@ -91,7 +86,6 @@ <record id="view_res_partner_filter_assign" model="ir.ui.view"> <field name="name">res.partner.geo.inherit.search</field> <field name="model">res.partner</field> - <field name="type">search</field> <field name="inherit_id" ref="base.view_res_partner_filter"/> <field name="arch" type="xml"> <field name="category_id" position="after"> @@ -103,7 +97,6 @@ <record id="view_crm_partner_geo_form" model="ir.ui.view"> <field name="name">res.partner.geo.inherit</field> <field name="model">res.partner</field> - <field name="type">form</field> <field name="inherit_id" ref="base.view_partner_form"/> <field name="arch" type="xml"> <xpath expr="//notebook[last()]" position="inside"> @@ -175,7 +168,6 @@ <record id="view_res_partner_filter_group_activation" model="ir.ui.view"> <field name="name">res.partner.geo.inherit.search</field> <field name="model">res.partner</field> - <field name="type">search</field> <field name="inherit_id" ref="base.view_res_partner_filter"/> <field name="arch" type="xml"> <filter string="Salesman" position="after"> diff --git a/addons/crm_partner_assign/wizard/crm_forward_to_partner.py b/addons/crm_partner_assign/wizard/crm_forward_to_partner.py index 2bc2d67d00a..d479f8b1bd5 100644 --- a/addons/crm_partner_assign/wizard/crm_forward_to_partner.py +++ b/addons/crm_partner_assign/wizard/crm_forward_to_partner.py @@ -43,16 +43,13 @@ class crm_lead_forward_to_partner(osv.osv_memory): _defaults = { 'send_to' : 'email', 'history': 'latest', - 'email_from': lambda self, cr, uid, *a: self.pool.get('res.users')._get_email_from(cr, uid, uid)[uid], + 'email_from': lambda s, cr, uid, c: s.pool.get('res.users').browse(cr, uid, uid, c).email, } - - - def on_change_email(self, cr, uid, ids, user): + def on_change_email(self, cr, uid, ids, user, context=None): if not user: return {'value': {'email_to': False}} - email = self.pool.get('res.users')._get_email_from(cr, uid, [user])[user] - return {'value': {'email_to': email}} + return {'value': {'email_to': self.pool.get('res.users').browse(cr, uid, uid, context=context).email}} def on_change_history(self, cr, uid, ids, history_type, context=None): """Gives message body according to type of history selected @@ -80,7 +77,7 @@ class crm_lead_forward_to_partner(osv.osv_memory): partner = partner_obj.browse(cr, uid, [partner_id]) user_id = partner and partner[0].user_id or False data.update({'email_from': partner and partner[0].email or "", - 'email_cc' : user_id and user_id.user_email or '', + 'email_cc' : user_id and user_id.user or '', 'user_id': user_id and user_id.id or False}) return {'value' : data} @@ -185,7 +182,7 @@ class crm_lead_forward_to_partner(osv.osv_memory): if partner_assigned_id: assigned_partner = partner.browse(cr, uid, partner_assigned_id, context=context) user_id = assigned_partner.user_id and assigned_partner.user_id.id or False - email_cc = assigned_partner.user_id and assigned_partner.user_id.user_email or '' + email_cc = assigned_partner.user_id and assigned_partner.user_id.email or '' email = assigned_partner.email res.update({ diff --git a/addons/crm_partner_assign/wizard/crm_forward_to_partner_view.xml b/addons/crm_partner_assign/wizard/crm_forward_to_partner_view.xml index f15f104f1c1..cecf73954e5 100644 --- a/addons/crm_partner_assign/wizard/crm_forward_to_partner_view.xml +++ b/addons/crm_partner_assign/wizard/crm_forward_to_partner_view.xml @@ -5,7 +5,6 @@ <record model="ir.ui.view" id="crm_lead_forward_to_partner_form"> <field name="name">crm_lead_forward_to_partner</field> <field name="model">crm.lead.forward.to.partner</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Send Mail" version="7.0"> <separator string="Forward to Partner" colspan="4"/> diff --git a/addons/crm_profiling/crm_profiling_view.xml b/addons/crm_profiling/crm_profiling_view.xml index b779e54bf17..1e894b456c0 100644 --- a/addons/crm_profiling/crm_profiling_view.xml +++ b/addons/crm_profiling/crm_profiling_view.xml @@ -28,7 +28,6 @@ <record model="ir.ui.view" id="view_questionnaire_tree"> <field name="name">Questionnaires</field> <field name="model">crm_profiling.questionnaire</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Questionnaires"> <field name="name" colspan="4"/> @@ -43,7 +42,6 @@ <record model="ir.ui.view" id="view_questionnaire_form"> <field name="name">Questionnaires</field> <field name="model">crm_profiling.questionnaire</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Questionnaires"> <field name="name"/> @@ -62,7 +60,6 @@ <record model="ir.ui.view" id="view_answer"> <field name="name">Answers</field> <field name="model">crm_profiling.answer</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Answers"> <field name="question_id"/> @@ -76,7 +73,6 @@ <record model="ir.ui.view" id="view_answer_form"> <field name="name">Answers</field> <field name="model">crm_profiling.answer</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Answers"> <field name="question_id"/> @@ -90,7 +86,6 @@ <record model="ir.ui.view" id="view_question_tree"> <field name="name">Questions</field> <field name="model">crm_profiling.question</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Questions"> <field name="name" colspan="4"/> @@ -104,7 +99,6 @@ <record model="ir.ui.view" id="view_question_form"> <field name="name">Questions</field> <field name="model">crm_profiling.question</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Questions"> <newline/> @@ -127,7 +121,6 @@ <record model="ir.ui.view" id="view_partner_form"> <field name="name">res.partner.profile.form</field> <field name="model">res.partner</field> - <field name="type">form</field> <field name="inherit_id" ref="base.view_partner_form"/> <field name="arch" type="xml"> <notebook position="inside"> @@ -147,7 +140,6 @@ <record model="ir.ui.view" id="crm.crm_segmentation-view"> <field name="name">crm.segmentation.form</field> <field name="model">crm.segmentation</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Partner Segmentation"> <notebook> @@ -194,7 +186,6 @@ <record model="ir.ui.view" id="view_partner_crm_segmentation_tree"> <field name="name">crm.segmentation.tree</field> <field name="model">crm.segmentation</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Partner Segmentations"> <field name="name"/> diff --git a/addons/crm_profiling/wizard/open_questionnaire_view.xml b/addons/crm_profiling/wizard/open_questionnaire_view.xml index 4a1291f01aa..8da8533f494 100644 --- a/addons/crm_profiling/wizard/open_questionnaire_view.xml +++ b/addons/crm_profiling/wizard/open_questionnaire_view.xml @@ -5,7 +5,6 @@ <record id="view_open_questionnaire_form" model="ir.ui.view"> <field name="name">Open Questionnaires</field> <field name="model">open.questionnaire</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Questionnaires" version="7.0"> <group> @@ -32,9 +31,8 @@ <record id="open_questionnaire_form" model="ir.ui.view"> <field name="name">open.questionnaire.form</field> <field name="model">open.questionnaire</field> - <field name="type">form</field> <field name="arch" type="xml"> - <form version="7.0"> + <form string="Open Questionnaire" version="7.0"> <separator colspan="4" string="Questionnaire"/> <field name="question_ans_ids" colspan="4" nolabel="1" mode="tree,form" width="550" height="200"/> <footer> @@ -49,7 +47,6 @@ <record id="view_open_questionnaire_line_tree" model="ir.ui.view"> <field name="name">open.questionnaire.line.list</field> <field name="model">open.questionnaire.line</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree editable="bottom" string="Questionnaire"> <field name="question_id"/> @@ -61,7 +58,6 @@ <record id="view_open_questionnaire_line_form" model="ir.ui.view"> <field name="name">open.questionnaire.line.form</field> <field name="model">open.questionnaire.line</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Questionnaire" version="7.0"> <field name="question_id"/> diff --git a/addons/crm_todo/crm_todo_view.xml b/addons/crm_todo/crm_todo_view.xml index c959f1722e6..0b3de338808 100644 --- a/addons/crm_todo/crm_todo_view.xml +++ b/addons/crm_todo/crm_todo_view.xml @@ -5,7 +5,6 @@ <record id="crm_todo_opportunity_add" model="ir.ui.view"> <field name="name">Opportunities - Tasks</field> <field name="model">crm.lead</field> - <field name="type">form</field> <field name="inherit_id" ref="crm.crm_case_form_view_oppor" /> <field name="arch" type="xml"> <data> @@ -34,7 +33,6 @@ <record model="ir.ui.view" id="project_task_crm_tree"> <field name="name">project.task.tree.crm</field> <field name="model">project.task</field> - <field name="type">tree</field> <field name="priority">20</field> <field name="inherit_id" ref="project.view_task_tree2" /> <field name="arch" type="xml"> diff --git a/addons/decimal_precision/decimal_precision_view.xml b/addons/decimal_precision/decimal_precision_view.xml index 5dec74cd8f4..5e03a764189 100644 --- a/addons/decimal_precision/decimal_precision_view.xml +++ b/addons/decimal_precision/decimal_precision_view.xml @@ -17,7 +17,6 @@ <record model="ir.ui.view" id="view_decimal_precision_tree"> <field name="name">Decimal Precision List</field> <field name="model">decimal.precision</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Decimal Precision"> <field name="name"/> diff --git a/addons/delivery/delivery.py b/addons/delivery/delivery.py index d6d584aa62e..cf82011d27a 100644 --- a/addons/delivery/delivery.py +++ b/addons/delivery/delivery.py @@ -22,6 +22,7 @@ import time from osv import fields,osv from tools.translate import _ +import decimal_precision as dp class delivery_carrier(osv.osv): _name = "delivery.carrier" @@ -237,8 +238,8 @@ class delivery_grid_line(osv.osv): 'max_value': fields.float('Maximum Value', required=True), 'price_type': fields.selection([('fixed','Fixed'),('variable','Variable')], 'Price Type', required=True), 'variable_factor': fields.selection([('weight','Weight'),('volume','Volume'),('wv','Weight * Volume'), ('price','Price')], 'Variable Factor', required=True), - 'list_price': fields.float('Sale Price', required=True), - 'standard_price': fields.float('Cost Price', required=True), + 'list_price': fields.float('Sale Price', digits_compute= dp.get_precision('Product Price'), required=True), + 'standard_price': fields.float('Cost Price', digits_compute= dp.get_precision('Product Price'), required=True), } _defaults = { 'type': lambda *args: 'weight', diff --git a/addons/delivery/delivery_demo.xml b/addons/delivery/delivery_demo.xml index 8adcbb649f0..a05d16110d3 100644 --- a/addons/delivery/delivery_demo.xml +++ b/addons/delivery/delivery_demo.xml @@ -25,7 +25,7 @@ <field name="procure_method">make_to_order</field> <field name="standard_price">10.0</field> <field name="list_price">10.0</field> - <field name="product_image">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</field> + <field name="image">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</field> </record> <!-- Carrier --> diff --git a/addons/delivery/delivery_view.xml b/addons/delivery/delivery_view.xml index 464560a3c51..6a68d1a979f 100644 --- a/addons/delivery/delivery_view.xml +++ b/addons/delivery/delivery_view.xml @@ -6,7 +6,6 @@ <record id="view_delivery_carrier_tree" model="ir.ui.view"> <field name="name">delivery.carrier.tree</field> <field name="model">delivery.carrier</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Carrier"> <field name="name"/> @@ -19,7 +18,6 @@ <record id="view_delivery_carrier_form" model="ir.ui.view"> <field name="name">delivery.carrier.form</field> <field name="model">delivery.carrier</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Carrier" version="7.0"> <div class="oe_title"> @@ -118,7 +116,6 @@ <record id="view_delivery_grid_tree" model="ir.ui.view"> <field name="name">delivery.grid.tree</field> <field name="model">delivery.grid</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Delivery grids"> <field name="sequence"/> @@ -131,7 +128,6 @@ <record id="view_delivery_grid_form" model="ir.ui.view"> <field name="name">delivery.grid.form</field> <field name="model">delivery.grid</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Delivery grids" version="7.0"> <group col="4"> @@ -181,7 +177,6 @@ <record id="view_delivery_grid_line_form" model="ir.ui.view"> <field name="name">delivery.grid.line.form</field> <field name="model">delivery.grid.line</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Grid Lines" version="7.0"> <group> @@ -213,7 +208,6 @@ <record id="view_delivery_grid_line_tree" model="ir.ui.view"> <field name="name">delivery.grid.line.tree</field> <field name="model">delivery.grid.line</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Grid Lines"> <field name="name"/> @@ -228,7 +222,6 @@ <record id="view_picking_withcarrier_out_form" model="ir.ui.view"> <field name="name">delivery.stock.picking_withcarrier.out.form.view</field> - <field name="type">form</field> <field name="model">stock.picking.out</field> <field name="inherit_id" ref="stock.view_picking_form"/> <field name="arch" type="xml"> @@ -242,7 +235,6 @@ <record id="view_picking_withweight_internal_form" model="ir.ui.view"> <field name="name">stock.picking_withweight.internal.form.view</field> - <field name="type">form</field> <field name="model">stock.picking</field> <field name="inherit_id" ref="stock.view_picking_form"/> <field name="arch" type="xml"> @@ -267,7 +259,6 @@ <record id="view_picking_withweight_internal_move_form" model="ir.ui.view"> <field name="name">stock.picking_withweight.internal.move.form.view</field> - <field name="type">form</field> <field name="model">stock.picking</field> <field name="inherit_id" ref="stock.view_picking_form"/> <field name="arch" type="xml"> @@ -280,7 +271,6 @@ <record id="view_move_withweight_form" model="ir.ui.view"> <field name="name">stock.move.form.weight</field> - <field name="type">form</field> <field name="model">stock.move</field> <field name="inherit_id" ref="stock.view_move_form"/> <field name="arch" type="xml"> @@ -293,7 +283,6 @@ <record id="view_order_withcarrier_form" model="ir.ui.view"> <field name="name">delivery.sale.order_withcarrier.form.view</field> - <field name="type">form</field> <field name="model">sale.order</field> <field name="inherit_id" ref="sale.view_order_form"/> <field name="arch" type="xml"> @@ -317,7 +306,6 @@ <record id="view_delivery_order_inherit_stock" model="ir.ui.view"> <field name="name">stock.picking.out.form</field> - <field name="type">form</field> <field name="model">stock.picking</field> <field name="inherit_id" ref="stock.view_picking_out_form"/> <field name="arch" type="xml"> diff --git a/addons/delivery/partner_view.xml b/addons/delivery/partner_view.xml index 235cff3a872..710dab18b93 100644 --- a/addons/delivery/partner_view.xml +++ b/addons/delivery/partner_view.xml @@ -4,7 +4,6 @@ <record id="view_partner_property_form" model="ir.ui.view"> <field name="name">res.partner.carrier.property.form.inherit</field> <field name="model">res.partner</field> - <field name="type">form</field> <field name="inherit_id" ref="stock.view_partner_property_form" /> <field name="arch" type="xml"> <field name="property_stock_supplier" position="after"> diff --git a/addons/document/board_document_view.xml b/addons/document/board_document_view.xml index 38e4a16ad85..a802d788e05 100644 --- a/addons/document/board_document_view.xml +++ b/addons/document/board_document_view.xml @@ -4,7 +4,6 @@ <record model="ir.ui.view" id="board_document_manager_form"> <field name="name">board.document.manager.form</field> <field name="model">board.board</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Document board" version="7.0"> <board style="2-1" > diff --git a/addons/document/document_view.xml b/addons/document/document_view.xml index 92d07751e24..b631583fb27 100644 --- a/addons/document/document_view.xml +++ b/addons/document/document_view.xml @@ -6,7 +6,6 @@ <record model="ir.ui.view" id="view_document_storage_form"> <field name="name">document.storage</field> <field name="model">document.storage</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Storage Media"> <group col="4"> @@ -26,7 +25,6 @@ <record model="ir.ui.view" id="view_document_storage_tree"> <field name="name">document.storage</field> <field name="model">document.storage</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Storage Media" toolbar="1"> <field name="name"/> @@ -38,7 +36,6 @@ <record id="view_document_storage_filter" model="ir.ui.view"> <field name="name">Search View: Document Storage</field> <field name="model">document.storage</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Search Document Storage"> <field name="name" string="Document Storage"/> @@ -67,7 +64,6 @@ <record model="ir.ui.view" id="view_document_directory_form"> <field name="name">document.directory</field> <field name="model">document.directory</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Directories" col="4" version="7.0"> <group col="4"> @@ -150,7 +146,6 @@ <record model="ir.ui.view" id="view_document_directory_tree"> <field name="name">document.directory</field> <field name="model">document.directory</field> - <field name="type">tree</field> <field name="field_parent">child_ids</field> <field name="arch" type="xml"> <tree string="Directories" toolbar="1"> @@ -168,7 +163,6 @@ <record id="view_document_directory_filter" model="ir.ui.view"> <field name="name">Search View: Document Directory</field> <field name="model">document.directory</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Search Document Directory"> <field name="name" string="Document Directory"/> @@ -232,7 +226,6 @@ <field name="name">ir.attachment</field> <field name="model">ir.attachment</field> <field name="priority" eval="1"/> - <field name="type">form</field> <field name="inherit_id" ref="base.view_attachment_form"/> <field name="arch" type="xml"> <field name="url" position="after"> @@ -260,7 +253,6 @@ <record id="view_attach_filter_inherit0" model="ir.ui.view"> <field name="name">IR Attachment0</field> <field name="model">ir.attachment</field> - <field name="type">search</field> <field name="inherit_id" ref="base.view_attachment_search"/> <field name="arch" type="xml"> <xpath expr="//filter[@name='my_documents_filter']" position="replace"> @@ -279,7 +271,6 @@ <field name="name">IR Attachment2</field> <field name="model">ir.attachment</field> - <field name="type">search</field> <field name="inherit_id" ref="base.view_attachment_search"/> <field name="arch" type="xml"> <filter string="Owner" position="replace"> @@ -294,10 +285,9 @@ <record model="ir.ui.view" id="view_document_file_tree"> <field name="name">ir.attachment</field> <field name="model">ir.attachment</field> - <field name="type">tree</field> <field name="priority" eval="1"/> <field name="arch" type="xml"> - <tree colors="blue:type in ('url',)"> + <tree colors="blue:type in ('url',)" string="Attachments"> <field name="name"/> <field name="parent_id" /> <field name="user_id"/> @@ -361,8 +351,7 @@ <record model="ir.ui.view" id="view_process_node_form_inherit1"> <field name="name">process.node.form</field> <field name="model">process.node</field> - <field name="type">form</field> - <field name="inherit_id" ref="process.view_process_node_form"/> + <field name="inherit_id" ref="process.view_process_node_form"/> <field name="priority" eval="1"/> <field name="arch" type="xml"> <field name="subflow_id" position="after"> @@ -375,8 +364,7 @@ <record model="ir.ui.view" id="view_process_form_inherit1"> <field name="name">process.process.form</field> <field name="model">process.process</field> - <field name="type">form</field> - <field name="inherit_id" ref="process.view_process_form"/> + <field name="inherit_id" ref="process.view_process_form"/> <field name="priority" eval="1"/> <field name="arch" type="xml"> <field name="subflow_id" position="after"> diff --git a/addons/document/report/document_report_view.xml b/addons/document/report/document_report_view.xml index 6b3708d1a2f..2a8b9f34ddf 100644 --- a/addons/document/report/document_report_view.xml +++ b/addons/document/report/document_report_view.xml @@ -4,7 +4,6 @@ <record model="ir.ui.view" id="view_document_user_form"> <field name="name">report.document.user.form</field> <field name="model">report.document.user</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Files"> <field name="name"/> @@ -21,7 +20,6 @@ <record model="ir.ui.view" id="view_document_user_tree"> <field name="name">report.document.user.tree</field> <field name="model">report.document.user</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Files"> <field name="name"/> @@ -38,7 +36,6 @@ <record id="view_report_document_user_search" model="ir.ui.view"> <field name="name">report.document.user.search</field> <field name="model">report.document.user</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="All users files"> <field name="name" filter_domain="['|', '|',('name','ilike',self), ('user','ilike',self), ('directory','ilike',self)]" string="Users File"/> @@ -61,7 +58,6 @@ <record model="ir.ui.view" id="view_size_month"> <field name="name">report.document.user.graph</field> <field name="model">report.document.file</field> - <field name="type">graph</field> <field name="arch" type="xml"> <graph string="File Size by Month" type="line"> <field name="month"/> @@ -73,7 +69,6 @@ <record model="ir.ui.view" id="view_size_month_tree"> <field name="name">report.document.user.tree</field> <field name="model">report.document.file</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="File Size by Month"> <field name="month" /> @@ -94,7 +89,6 @@ <record model="ir.ui.view" id="view_files_by_month_graph"> <field name="name">report.file.month.graph</field> <field name="model">report.document.user</field> - <field name="type">graph</field> <field name="arch" type="xml"> <graph string="Files by Month" type="pie"> <field name="month" /> @@ -106,7 +100,6 @@ <record model="ir.ui.view" id="view_files_by_month_tree"> <field name="name">report.file.month.tree</field> <field name="model">report.document.user</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Files by Month"> <field name="name"/> @@ -119,7 +112,6 @@ <record model="ir.ui.view" id="view_files_by_user_graph"> <field name="name">report.file.user.graph</field> <field name="model">report.document.user</field> - <field name="type">graph</field> <field name="arch" type="xml"> <graph string="Files by User" type="pie"> <field name="user" /> diff --git a/addons/document/wizard/document_configuration_view.xml b/addons/document/wizard/document_configuration_view.xml index 47cc2c6da3d..48b41f94500 100644 --- a/addons/document/wizard/document_configuration_view.xml +++ b/addons/document/wizard/document_configuration_view.xml @@ -4,7 +4,6 @@ <record id="view_auto_config_form" model="ir.ui.view"> <field name="name">Auto Configure Directories</field> <field name="model">document.configuration</field> - <field name="type">form</field> <field name="inherit_id" ref="base.res_config_view_base"/> <field name="arch" type="xml"> <data> diff --git a/addons/document_ftp/res_config_view.xml b/addons/document_ftp/res_config_view.xml index a44d7af0c79..f0184ed8e63 100644 --- a/addons/document_ftp/res_config_view.xml +++ b/addons/document_ftp/res_config_view.xml @@ -4,7 +4,6 @@ <record id="view_document_ftp_configuration" model="ir.ui.view"> <field name="name">Knowledge Application</field> <field name="model">knowledge.config.settings</field> - <field name="type">form</field> <field name="inherit_id" ref="knowledge.view_knowledge_configuration"/> <field name="arch" type="xml"> <field name="module_document_ftp" position="after"> diff --git a/addons/document_ftp/wizard/ftp_browse_view.xml b/addons/document_ftp/wizard/ftp_browse_view.xml index 52f012a92ff..c1613b29a70 100644 --- a/addons/document_ftp/wizard/ftp_browse_view.xml +++ b/addons/document_ftp/wizard/ftp_browse_view.xml @@ -4,7 +4,6 @@ <record id="ftp_browse_form" model="ir.ui.view"> <field name="name">Document FTP Browse</field> <field name="model">document.ftp.browse</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Browse Document" version="7.0"> <group> diff --git a/addons/document_ftp/wizard/ftp_configuration_view.xml b/addons/document_ftp/wizard/ftp_configuration_view.xml index 95528b75594..36fb80c51af 100644 --- a/addons/document_ftp/wizard/ftp_configuration_view.xml +++ b/addons/document_ftp/wizard/ftp_configuration_view.xml @@ -11,7 +11,6 @@ <record id="view_auto_config_form" model="ir.ui.view"> <field name="name">FTP Server Configuration</field> <field name="model">document.ftp.configuration</field> - <field name="type">form</field> <field name="inherit_id" ref="base.res_config_view_base"/> <field name="arch" type="xml"> <data> diff --git a/addons/document_page/document_page_view.xml b/addons/document_page/document_page_view.xml index c54be43d226..fc3bd86fdaf 100644 --- a/addons/document_page/document_page_view.xml +++ b/addons/document_page/document_page_view.xml @@ -8,7 +8,6 @@ <record id="view_wiki_tree_children" model="ir.ui.view"> <field name="name">document.page.tree</field> <field name="model">document.page</field> - <field name="type">tree</field> <field name="field_parent">child_ids</field> <field name="priority">100</field> <field name="arch" type="xml"> @@ -23,7 +22,6 @@ <record id="view_wiki_tree" model="ir.ui.view"> <field name="name">document.page.list</field> <field name="model">document.page</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Document Page"> <field name="name"/> @@ -37,7 +35,6 @@ <record id="view_wiki_form" model="ir.ui.view"> <field name="name">document.page.form</field> <field name="model">document.page</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Document Page" version="7.0"> <field name="type" invisible="1"/> @@ -67,7 +64,6 @@ <record id="view_wiki_filter" model="ir.ui.view"> <field name="name">document.page.search</field> <field name="model">document.page</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Document Page"> <field name="name" string="Content" filter_domain="['|', ('name','ilike',self), ('content','ilike',self)]"/> @@ -110,7 +106,6 @@ <record model="ir.ui.view" id="view_wiki_history_tree"> <field name="name">document.page.history.tree</field> <field name="model">document.page.history</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Document History"> <field name="create_date"/> @@ -123,7 +118,6 @@ <record model="ir.ui.view" id="wiki_history_form"> <field name="name">document.page.history.form</field> <field name="model">document.page.history</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Document Page History" version="7.0"> <label for="page_id" class="oe_edit_only"/> diff --git a/addons/document_page/wizard/document_page_create_menu_view.xml b/addons/document_page/wizard/document_page_create_menu_view.xml index 6d689dfe41d..e4647179ad2 100644 --- a/addons/document_page/wizard/document_page_create_menu_view.xml +++ b/addons/document_page/wizard/document_page_create_menu_view.xml @@ -5,7 +5,6 @@ <record id="view_wiki_create_menu" model="ir.ui.view"> <field name="name">Create Menu</field> <field name="model">document.page.create.menu</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Create Menu" version="7.0"> <group string="Menu Information"> diff --git a/addons/document_page/wizard/document_page_show_diff_view.xml b/addons/document_page/wizard/document_page_show_diff_view.xml index c6066669dca..f268db7ad2e 100644 --- a/addons/document_page/wizard/document_page_show_diff_view.xml +++ b/addons/document_page/wizard/document_page_show_diff_view.xml @@ -6,7 +6,6 @@ <record id="view_wiki_show_diff" model="ir.ui.view"> <field name="name">Show Difference</field> <field name="model">wizard.document.page.history.show_diff</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Difference" version="7.0"> <field name="diff"/> diff --git a/addons/document_webdav/webdav_view.xml b/addons/document_webdav/webdav_view.xml index 35c37530f4d..5a0cb75274e 100644 --- a/addons/document_webdav/webdav_view.xml +++ b/addons/document_webdav/webdav_view.xml @@ -5,7 +5,6 @@ <record model="ir.ui.view" id="view_dir_props_form"> <field name="name">document.webdav.dir.property.form</field> <field name="model">document.webdav.dir.property</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Properties"> <group col="4"> @@ -22,7 +21,6 @@ <record model="ir.ui.view" id="view_dir_props_tree"> <field name="name">document.webdav.dir.property.tree</field> <field name="model">document.webdav.dir.property</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Properties" toolbar="1"> <field name="dir_id" /> @@ -35,7 +33,6 @@ <record id="view_dir_props_filter" model="ir.ui.view"> <field name="name">Search View: Directory DAV properties</field> <field name="model">document.webdav.dir.property</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Search Document properties"> <field name="name" filter_domain="['|', ('name','ilike',self), ('namespace','ilike',self)]" string="Document property"/> @@ -73,7 +70,6 @@ <field name="name">document.directory.webdav.inherit</field> <field name="model">document.directory</field> <field name="inherit_id" ref="document.view_document_directory_form" /> - <field name="type">form</field> <field name="arch" type="xml"> <xpath expr="/form/notebook/page[@string='Dynamic context']" position="after" version="7.0"> <page string="WebDAV properties"> @@ -103,7 +99,6 @@ <record model="ir.ui.view" id="view_file_props_form"> <field name="name">document.webdav.file.property.form</field> <field name="model">document.webdav.file.property</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Properties"> <group col="4"> @@ -121,7 +116,6 @@ <record model="ir.ui.view" id="view_file_props_tree"> <field name="name">document.webdav.file.property.tree</field> <field name="model">document.webdav.file.property</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Properties" toolbar="1"> <field name="file_id" /> @@ -134,7 +128,6 @@ <record id="view_file_props_filter" model="ir.ui.view"> <field name="name">Search View: File DAV properties</field> <field name="model">document.webdav.file.property</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Search Document properties"> <field name="name" filter_domain="['|', ('name','ilike',self), ('namespace','ilike',self)]" string="Document Property"/> diff --git a/addons/edi/static/src/js/edi.js b/addons/edi/static/src/js/edi.js index f17261a4244..78e90852c38 100644 --- a/addons/edi/static/src/js/edi.js +++ b/addons/edi/static/src/js/edi.js @@ -1,12 +1,12 @@ openerp.edi = function(openerp) { openerp.edi = {} -openerp.edi.EdiView = openerp.web.OldWidget.extend({ +openerp.edi.EdiView = openerp.web.Widget.extend({ init: function(parent, db, token) { this._super(); this.db = db; this.token = token; - this.session = openerp.connection; + this.session = openerp.session; this.template = "EdiEmpty"; this.content = ""; this.sidebar = ""; @@ -108,12 +108,12 @@ openerp.edi.EdiView = openerp.web.OldWidget.extend({ }); openerp.edi.edi_view = function (db, token) { - openerp.connection.session_bind().then(function () { + openerp.session.session_bind().then(function () { new openerp.edi.EdiView(null,db,token).appendTo($("body").addClass('openerp')); }); } -openerp.edi.EdiImport = openerp.web.OldWidget.extend({ +openerp.edi.EdiImport = openerp.web.Widget.extend({ init: function(parent,url) { this._super(); this.url = url; @@ -188,7 +188,7 @@ openerp.edi.EdiImport = openerp.web.OldWidget.extend({ }); openerp.edi.edi_import = function (url) { - openerp.connection.session_bind().then(function () { + openerp.session.session_bind().then(function () { new openerp.edi.EdiImport(null,url).appendTo($("body").addClass('openerp')); }); } diff --git a/addons/email_template/email_template_view.xml b/addons/email_template/email_template_view.xml index daa4d028651..a04790d1c1c 100644 --- a/addons/email_template/email_template_view.xml +++ b/addons/email_template/email_template_view.xml @@ -5,7 +5,6 @@ <record model="ir.ui.view" id="email_template_form"> <field name="name">email.template.form</field> <field name="model">email.template</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Templates" version="7.0"> <sheet> @@ -102,7 +101,6 @@ <record model="ir.ui.view" id="email_template_tree"> <field name="name">email.template.tree</field> <field name="model">email.template</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Templates"> <field name="model_id"/> @@ -119,7 +117,6 @@ <record id="view_email_template_search" model="ir.ui.view"> <field name="name">email.template.search</field> <field name="model">email.template</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Templates"> <field name="name" filter_domain="['|', '|', '|',('name','ilike',self), ('report_name','ilike',self), ('subject','ilike',self), ('email_to','ilike',self)]" string="Templates"/> diff --git a/addons/email_template/res_partner_view.xml b/addons/email_template/res_partner_view.xml index 96b6dccb09d..3d17120d69e 100644 --- a/addons/email_template/res_partner_view.xml +++ b/addons/email_template/res_partner_view.xml @@ -4,7 +4,6 @@ <record model="ir.ui.view" id="res_partner_opt_out_form"> <field name="name">res.partner.opt_out.form</field> <field name="model">res.partner</field> - <field name="type">form</field> <field name="inherit_id" ref="base.view_partner_form"/> <field name="arch" type="xml"> <xpath expr="//field[@name='active']" position="after"> diff --git a/addons/email_template/wizard/email_template_preview_view.xml b/addons/email_template/wizard/email_template_preview_view.xml index a7c37e9b5a9..39fb413fcde 100644 --- a/addons/email_template/wizard/email_template_preview_view.xml +++ b/addons/email_template/wizard/email_template_preview_view.xml @@ -5,7 +5,6 @@ <record model="ir.ui.view" id="email_template_preview_form"> <field name="name">email_template.preview.form</field> <field name="model">email_template.preview</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Email Preview"> <field name="model_id" invisible="1"/> diff --git a/addons/email_template/wizard/mail_compose_message_view.xml b/addons/email_template/wizard/mail_compose_message_view.xml index a2f38a890c2..0d4362d350e 100644 --- a/addons/email_template/wizard/mail_compose_message_view.xml +++ b/addons/email_template/wizard/mail_compose_message_view.xml @@ -5,7 +5,6 @@ <record model="ir.ui.view" id="email_compose_message_wizard_inherit_form"> <field name="name">mail.compose.message.form</field> <field name="model">mail.compose.message</field> - <field name="type">form</field> <field name="inherit_id" ref="mail.email_compose_message_wizard_form"/> <field name="arch" type="xml"> <data> @@ -29,7 +28,6 @@ <record model="ir.ui.view" id="email_compose_message_wizard_inherit_form_chatter"> <field name="name">mail.compose.message.form</field> <field name="model">mail.compose.message</field> - <field name="type">form</field> <field name="inherit_id" ref="mail.email_compose_message_wizard_form_chatter"/> <field name="arch" type="xml"> <data> diff --git a/addons/event/board_association_view.xml b/addons/event/board_association_view.xml index a00b4b20f04..b38a78afac9 100644 --- a/addons/event/board_association_view.xml +++ b/addons/event/board_association_view.xml @@ -5,7 +5,6 @@ <record model ="ir.ui.view" id="view_report_event_reg_graph"> <field name="name">Registration Event report</field> <field name="model">report.event.registration</field> - <field name="type">graph</field> <field name="arch" type="xml"> <graph string="Events Filling Status" type="bar" > <field name="event_id"/> @@ -46,7 +45,6 @@ <record model="ir.ui.view" id="board_associations_manager_form"> <field name="name">board.associations.manager.form</field> <field name="model">board.board</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Association Dashboard" version="7.0"> <board style="2-1"> diff --git a/addons/event/email_template.xml b/addons/event/email_template.xml index 4485dfc785a..2666ece9921 100644 --- a/addons/event/email_template.xml +++ b/addons/event/email_template.xml @@ -4,7 +4,7 @@ <record id="confirmation_event" model="email.template"> <field name="name">Confirmation of the Event</field> <field name="model_id" ref="event.model_event_registration"/> - <field name="email_from" >${object.user_id.user_email or object.company_id.email or 'noreply@' + object.company_id.name + '.com'}</field> + <field name="email_from" >${object.user_id.email or object.company_id.email or 'noreply@' + object.company_id.name + '.com'}</field> <field name="email_to" >${object.email}</field> <field name="subject">Your registration at ${object.event_id.name}</field> <field name="body_text"> @@ -24,7 +24,7 @@ <record id="confirmation_registration" model="email.template"> <field name="name">Confirmation of the Registration</field> <field name="model_id" ref="event.model_event_registration"/> - <field name="email_from" >${object.user_id.user_email or object.company_id.email or 'noreply@' + object.company_id.name + '.com'}</field> + <field name="email_from" >${object.user_id.email or object.company_id.email or 'noreply@' + object.company_id.name + '.com'}</field> <field name="email_to" >${object.email}</field> <field name="subject">Your registration at ${object.event_id.name}</field> <field name="body_text"> diff --git a/addons/event/event.py b/addons/event/event.py index 4279b8fcd7e..7f0c77661e4 100644 --- a/addons/event/event.py +++ b/addons/event/event.py @@ -230,7 +230,7 @@ class event_event(osv.osv): curr_reg_ids = register_pool.search(cr, uid, [('user_id', '=', user.id), ('event_id', '=' , ids[0])]) #the subscription is done with SUPERUSER_ID because in case we share the kanban view, we want anyone to be able to subscribe if not curr_reg_ids: - curr_reg_ids = [register_pool.create(cr, SUPERUSER_ID, {'event_id': ids[0] ,'email': user.user_email, 'name':user.name, 'user_id': user.id, 'nb_register': num_of_seats})] + curr_reg_ids = [register_pool.create(cr, SUPERUSER_ID, {'event_id': ids[0] ,'email': user.email, 'name':user.name, 'user_id': user.id, 'nb_register': num_of_seats})] else: register_pool.write(cr, uid, curr_reg_ids, {'nb_register': num_of_seats}, context=context) return register_pool.confirm_registration(cr, SUPERUSER_ID, curr_reg_ids, context=context) diff --git a/addons/event/event_view.xml b/addons/event/event_view.xml index f3a0c5b321e..27829129c15 100644 --- a/addons/event/event_view.xml +++ b/addons/event/event_view.xml @@ -24,7 +24,6 @@ <record model="ir.ui.view" id="view_event_type_form"> <field name="name">Event type</field> <field name="model">event.type</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Event Type"> <group col="4"> @@ -42,7 +41,6 @@ <record model="ir.ui.view" id="view_event_type_tree"> <field name="name">Event type</field> <field name="model">event.type</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Event Type"> <field name="name"/> @@ -100,7 +98,6 @@ <record model="ir.ui.view" id="view_event_form"> <field name="name">Events</field> <field name="model">event.event</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Events" version="7.0"> <header> @@ -199,6 +196,7 @@ </sheet> <div class="oe_chatter"> <field name="message_ids" colspan="4" widget="mail_thread" nolabel="1"/> + <field name="message_follower_ids" widget="mail_followers"/> </div> </form> </field> @@ -209,7 +207,6 @@ <record model="ir.ui.view" id="view_event_tree"> <field name="name">event.event.tree</field> <field name="model">event.event</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Events" fonts="bold:needaction_pending==True" colors="red:(register_min and register_min>register_current) or (register_max and register_max<register_current);grey:state=='cancel'"> <field name="name" string="Name"/> @@ -233,7 +230,6 @@ <record model="ir.ui.view" id="view_event_kanban"> <field name="name">event.event.kanban</field> <field name="model">event.event</field> - <field name="type">kanban</field> <field name="arch" type="xml"> <kanban> <field name="register_max"/> @@ -299,7 +295,6 @@ <record id="view_event_calendar" model="ir.ui.view"> <field name="name">event.event.calendar</field> <field name="model">event.event</field> - <field name="type">calendar</field> <field eval="2" name="priority"/> <field name="arch" type="xml"> <calendar color="type" date_start="date_begin" date_stop="date_end" string="Event Organization"> @@ -314,7 +309,6 @@ <record model="ir.ui.view" id="view_event_graph"> <field name="name">Event Graph</field> <field name="model">event.event</field> - <field name="type">graph</field> <field name="arch" type="xml"> <graph string="Event by Registration" type="bar" orientation="horizontal"> <field name="name"/> @@ -329,7 +323,6 @@ <record model="ir.ui.view" id="view_event_search"> <field name="name">Events</field> <field name="model">event.event</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Events"> <field name="name" string="Events"/> @@ -427,7 +420,6 @@ <record model="ir.ui.view" id="view_event_registration_tree"> <field name="name">event.registration.tree</field> <field name="model">event.registration</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Registration" fonts="bold:needaction_pending==True"> <field name="create_date"/> @@ -447,9 +439,8 @@ <record model="ir.ui.view" id="view_event_registration_form"> <field name="name">event.registration.form</field> <field name="model">event.registration</field> - <field name="type">form</field> <field name="arch" type="xml"> - <form version="7.0"> + <form string="Event Registration" version="7.0"> <header> <button name="registration_open" string="Confirm" states="draft" type="object" class="oe_highlight"/> <button name="button_reg_close" string="Attended" states="open" type="object" class="oe_highlight"/> @@ -487,6 +478,7 @@ </sheet> <div class="oe_chatter"> <field name="message_ids" colspan="4" widget="mail_thread" nolabel="1"/> + <field name="message_follower_ids" widget="mail_followers"/> </div> </form> </field> @@ -496,7 +488,6 @@ <record id="view_event_registration_calendar" model="ir.ui.view"> <field name="name">event.registration.calendar</field> <field name="model">event.registration</field> - <field name="type">calendar</field> <field eval="2" name="priority"/> <field name="arch" type="xml"> <calendar color="event_id" date_start="event_begin_date" date_stop="event_end_date" string="Event Registration"> @@ -509,7 +500,6 @@ <record model="ir.ui.view" id="view_event_registration_graph"> <field name="name">Registration Graph</field> <field name="model">event.registration</field> - <field name="type">graph</field> <field name="arch" type="xml"> <graph string="Registration" type="bar" orientation="horizontal"> <field name="event_id"/> @@ -523,7 +513,6 @@ <record model="ir.ui.view" id="view_registration_search"> <field name="name">Registrations</field> <field name="model">event.registration</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Event Registration"> <field name="name" string="Participant" filter_domain="['|','|','|',('name','ilike',self),('partner_id','ilike',self),('email','ilike',self),('origin','ilike',self)]"/> diff --git a/addons/event/report/report_event_registration_view.xml b/addons/event/report/report_event_registration_view.xml index f05fdcc09e1..6ce2c199332 100644 --- a/addons/event/report/report_event_registration_view.xml +++ b/addons/event/report/report_event_registration_view.xml @@ -6,7 +6,6 @@ <record model="ir.ui.view" id="report_event_registration_tree"> <field name="name">report.event.registration.tree</field> <field name="model">report.event.registration</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree colors="blue:event_state == 'draft';black:event_state == 'confirm';gray:event_state in('done','cancel')" string="Events Analysis"> <field name="event_date" invisible="1"/> @@ -33,7 +32,6 @@ <record model ="ir.ui.view" id="report_event_registration_graph"> <field name="name">report.event.registration.graph</field> <field name="model">report.event.registration</field> - <field name="type">graph</field> <field name="arch" type="xml"> <graph orientation="horizontal" string="Event on Registration" type="bar" > <field name="event_id"/> @@ -49,7 +47,6 @@ <record model="ir.ui.view" id="view_report_event_registration_search"> <field name="name">report.event.registration.search</field> <field name="model">report.event.registration</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Event on Registration"> <filter icon="terp-document-new" string="New" domain="[('event_state','=','draft')]" help="Events which are in New state"/> diff --git a/addons/event/res_partner_view.xml b/addons/event/res_partner_view.xml index c8760c0b07f..8e5ff480c2c 100644 --- a/addons/event/res_partner_view.xml +++ b/addons/event/res_partner_view.xml @@ -7,7 +7,6 @@ <record id="view_event_partner_info_form" model="ir.ui.view"> <field name="name">res.partner.event.info.inherit</field> <field name="model">res.partner</field> - <field name="type">form</field> <field name="inherit_id" ref="base.view_partner_form"/> <field name="arch" type="xml"> <field name="supplier" position="after"> diff --git a/addons/event/wizard/event_confirm_view.xml b/addons/event/wizard/event_confirm_view.xml index 12d8555b0ab..a78c6895996 100644 --- a/addons/event/wizard/event_confirm_view.xml +++ b/addons/event/wizard/event_confirm_view.xml @@ -5,7 +5,6 @@ <record id="view_event_confirm" model="ir.ui.view"> <field name="name">Event Confirmation</field> <field name="model">event.confirm</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Event Confirmation" version="7.0"> <label string="Warning: This Event has not reached its Minimum Registration Limit. Are you sure you want to confirm it?"/> diff --git a/addons/event_moodle/event_view.xml b/addons/event_moodle/event_view.xml index 4324990a1d8..252e805a6ab 100644 --- a/addons/event_moodle/event_view.xml +++ b/addons/event_moodle/event_view.xml @@ -4,7 +4,6 @@ <record model="ir.ui.view" id="moodle_information"> <field name="name">event.moodle.registration</field> <field name="model">event.registration</field> - <field name="type">form</field> <field name="inherit_id" ref="event.view_event_registration_form" /> <field name="arch" type="xml"> <xpath expr="//field[@name='user_id']" position="after"> @@ -24,7 +23,6 @@ <record model="ir.ui.view" id="moodle_information_event"> <field name="name">event.moodle.event</field> <field name="model">event.event</field> - <field name="type">form</field> <field name="inherit_id" ref="event.view_event_form" /> <field name="arch" type="xml"> <xpath expr="//field[@name='registration_ids']/tree/field[@name='name']" position="replace"> diff --git a/addons/event_moodle/wizard_moodle.xml b/addons/event_moodle/wizard_moodle.xml index 998517c8636..d9e7266d055 100644 --- a/addons/event_moodle/wizard_moodle.xml +++ b/addons/event_moodle/wizard_moodle.xml @@ -4,7 +4,6 @@ <record model="ir.ui.view" id="create_moodle_config_view"> <field name="name">moodle.config.wizard.form</field> <field name="model">event.moodle.config.wiz</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Configure Moodle" version="7.0"> <header> diff --git a/addons/event_project/event_project_view.xml b/addons/event_project/event_project_view.xml index ede99dbaffb..e3b761aea30 100644 --- a/addons/event_project/event_project_view.xml +++ b/addons/event_project/event_project_view.xml @@ -8,7 +8,6 @@ <field name="name">Events</field> <field name="model">event.event</field> <field name="inherit_id" ref="event.view_event_form"/> - <field name="type">form</field> <field name="arch" type="xml"> <notebook position="inside"> <page string="Tasks"> diff --git a/addons/event_project/wizard/event_project_retro_view.xml b/addons/event_project/wizard/event_project_retro_view.xml index b7ab7a55357..886b33ef4ef 100644 --- a/addons/event_project/wizard/event_project_retro_view.xml +++ b/addons/event_project/wizard/event_project_retro_view.xml @@ -5,7 +5,6 @@ <record id="view_event_project" model="ir.ui.view"> <field name="name">Retro-Planning</field> <field name="model">event.project</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Retro-Planning" version="7.0"> <group col="4"> diff --git a/addons/event_sale/event_sale_view.xml b/addons/event_sale/event_sale_view.xml index c25a10bb52f..82c1c05b714 100644 --- a/addons/event_sale/event_sale_view.xml +++ b/addons/event_sale/event_sale_view.xml @@ -4,7 +4,6 @@ <record model="ir.ui.view" id="event_sale_order"> <field name="name">event.product</field> <field name="model">product.product</field> - <field name="type">form</field> <field name="inherit_id" ref="product.product_normal_form_view" /> <field name="arch" type="xml"> <field name="purchase_ok" position="after"> @@ -19,7 +18,6 @@ <record model="ir.ui.view" id="event_order_line"> <field name="name">event.sale.order</field> <field name="model">sale.order</field> - <field name="type">form</field> <field name="inherit_id" ref="sale.view_order_form" /> <field name="arch" type="xml"> <xpath expr="//field[@name='discount']" position="after"> diff --git a/addons/fetchmail/fetchmail.py b/addons/fetchmail/fetchmail.py index 62b2775a056..544a4f81b96 100644 --- a/addons/fetchmail/fetchmail.py +++ b/addons/fetchmail/fetchmail.py @@ -189,14 +189,11 @@ openerp_mailgate.py -u %(uid)d -p PASSWORD -o %(model)s -d %(dbname)s --host=HOS result, data = imap_server.search(None, '(UNSEEN)') for num in data[0].split(): result, data = imap_server.fetch(num, '(RFC822)') - if server.object_id: - res_id = mail_thread.message_process(cr, uid, server.object_id.model, - data[0][1], - save_original=server.original, - strip_attachments=(not server.attach), - context=context) - else: - res_id = mail_thread.message_catchall(cr, uid, data[0][1]) + res_id = mail_thread.message_process(cr, uid, server.object_id.model, + data[0][1], + save_original=server.original, + strip_attachments=(not server.attach), + context=context) if res_id and server.action_id: action_pool.run(cr, uid, [server.action_id.id], {'active_id': res_id, 'active_ids':[res_id]}) imap_server.store(num, '+FLAGS', '\\Seen') @@ -217,14 +214,11 @@ openerp_mailgate.py -u %(uid)d -p PASSWORD -o %(model)s -d %(dbname)s --host=HOS for num in range(1, numMsgs + 1): (header, msges, octets) = pop_server.retr(num) msg = '\n'.join(msges) - if server.object_id: - res_id = mail_thread.message_process(cr, uid, server.object_id.model, - msg, - save_original=server.original, - strip_attachments=(not server.attach), - context=context) - else: - res_id = mail_thread.message_catchall(cr, uid, data[0][1]) + res_id = mail_thread.message_process(cr, uid, server.object_id.model, + msg, + save_original=server.original, + strip_attachments=(not server.attach), + context=context) if res_id and server.action_id: action_pool.run(cr, uid, [server.action_id.id], {'active_id': res_id, 'active_ids':[res_id]}) pop_server.dele(num) diff --git a/addons/fetchmail/fetchmail_view.xml b/addons/fetchmail/fetchmail_view.xml index 3325ae38c0b..cf651b5fd3d 100644 --- a/addons/fetchmail/fetchmail_view.xml +++ b/addons/fetchmail/fetchmail_view.xml @@ -5,7 +5,6 @@ <record model="ir.ui.view" id="view_email_server_tree"> <field name="name">fetchmail.server.list</field> <field name="model">fetchmail.server</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree colors="blue:state == 'draft'" string="POP/IMAP Servers"> <field name="name"/> @@ -22,7 +21,6 @@ <record model="ir.ui.view" id="view_email_server_form"> <field name="name">fetchmail.server.form</field> <field name="model">fetchmail.server</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Incoming Mail Server" version="7.0"> <header attrs="{'invisible' : [('type', '=', 'local')]}"> @@ -76,7 +74,6 @@ <record model="ir.ui.view" id="view_email_server_search"> <field name="name">fetchmail.server.search</field> <field name="model">fetchmail.server</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Search Incoming Mail Servers"> <field name="name" string="Incoming Mail Server"/> @@ -109,7 +106,6 @@ <record model="ir.ui.view" id="email_message_tree_view"> <field name="name">mail.message.list.fetchmail</field> <field name="model">mail.message</field> - <field name="type">tree</field> <field name="inherit_id" ref="mail.view_email_message_tree"/> <field name="arch" type="xml"> <field name="user_id" position="after"> @@ -121,7 +117,6 @@ <record model="ir.ui.view" id="email_message_search_view"> <field name="name">mail.message.inherit.search</field> <field name="model">mail.message</field> - <field name="type">search</field> <field name="inherit_id" ref="mail.view_email_message_search"/> <field name="arch" type="xml"> <xpath expr="/search/group/filter[@string='Thread']" position="before"> diff --git a/addons/google_base_account/google_base_account_view.xml b/addons/google_base_account/google_base_account_view.xml index ec4aa9669fb..8613582692f 100644 --- a/addons/google_base_account/google_base_account_view.xml +++ b/addons/google_base_account/google_base_account_view.xml @@ -4,7 +4,6 @@ <record id="view_users_gogole_form" model="ir.ui.view"> <field name="name">res.users.google.form1</field> <field name="model">res.users</field> - <field name="type">form</field> <field name="inherit_id" ref="base.view_users_form"/> <field name="arch" type="xml"> <xpath expr="//notebook" position="inside"> diff --git a/addons/google_base_account/wizard/google_login_view.xml b/addons/google_base_account/wizard/google_login_view.xml index 19ef202d7a4..ed345ab5a0f 100644 --- a/addons/google_base_account/wizard/google_login_view.xml +++ b/addons/google_base_account/wizard/google_login_view.xml @@ -4,7 +4,6 @@ <record model="ir.ui.view" id="view_google_login_form"> <field name="name">google.login.form</field> <field name="model">google.login</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Google login" version="7.0"> <group> diff --git a/addons/google_docs/res_config_user_view.xml b/addons/google_docs/res_config_user_view.xml index 46abe5b2d80..4aabba3ac5a 100644 --- a/addons/google_docs/res_config_user_view.xml +++ b/addons/google_docs/res_config_user_view.xml @@ -7,7 +7,6 @@ <record model="ir.ui.view" id="view_google_docs_config_tree"> <field name="name">google_docs.config.tree</field> <field name="model">google.docs.config</field> - <field name="type">tree</field> <field name="arch" type="xml"> <group name="default_filters" position="inside"> <field name="model_id"/> @@ -18,7 +17,6 @@ <record model="ir.ui.view" id="view_google_docs_config_form"> <field name="name">google_docs.config.form</field> <field name="model">google.docs.config</field> - <field name="type">form</field> <field name="arch" type="xml"> <group colspan='4'> <field name="model_id"/> diff --git a/addons/hr/board_hr_view.xml b/addons/hr/board_hr_view.xml index e7d429877f7..4d01038b671 100644 --- a/addons/hr/board_hr_view.xml +++ b/addons/hr/board_hr_view.xml @@ -5,7 +5,6 @@ <record id="board_hr_form" model="ir.ui.view"> <field name="name">board.hr.form</field> <field name="model">board.board</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Human Resources Dashboard" version="7.0"> <board style="2-1"> diff --git a/addons/hr/hr.py b/addons/hr/hr.py index 47432e1f527..966c29cab07 100644 --- a/addons/hr/hr.py +++ b/addons/hr/hr.py @@ -252,7 +252,7 @@ class hr_employee(osv.osv): def onchange_user(self, cr, uid, ids, user_id, context=None): work_email = False if user_id: - work_email = self.pool.get('res.users').browse(cr, uid, user_id, context=context).user_email + work_email = self.pool.get('res.users').browse(cr, uid, user_id, context=context).email return {'value': {'work_email' : work_email}} def _get_default_image(self, cr, uid, context=None): diff --git a/addons/hr/hr_department_view.xml b/addons/hr/hr_department_view.xml index 43712518cd2..6ea43e45b66 100644 --- a/addons/hr/hr_department_view.xml +++ b/addons/hr/hr_department_view.xml @@ -6,7 +6,6 @@ <record id="view_department_form" model="ir.ui.view"> <field name="name">hr.department.form</field> <field name="model">hr.department</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="department" version="7.0"> <sheet> @@ -23,7 +22,6 @@ <record id="view_department_tree" model="ir.ui.view"> <field name="name">hr.department.tree</field> <field name="model">hr.department</field> - <field name="type">tree</field> <field name="field_parent">child_ids</field> <field name="arch" type="xml"> <tree string="Companies"> @@ -36,7 +34,6 @@ <record id="view_department_filter" model="ir.ui.view"> <field name="name">Departments</field> <field name="model">hr.department</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Departments"> <field name="name" string="Department"/> diff --git a/addons/hr/hr_view.xml b/addons/hr/hr_view.xml index 5d34d428726..0dcc675e665 100644 --- a/addons/hr/hr_view.xml +++ b/addons/hr/hr_view.xml @@ -17,7 +17,6 @@ <record id="view_employee_form" model="ir.ui.view"> <field name="name">hr.employee.form</field> <field name="model">hr.employee</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Employee" version="7.0"> <sheet> @@ -85,7 +84,6 @@ <record id="view_employee_tree" model="ir.ui.view"> <field name="name">hr.employee.tree</field> <field name="model">hr.employee</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Employees"> <field name="name"/> @@ -103,7 +101,6 @@ <record id="view_employee_filter" model="ir.ui.view"> <field name="name">Employees</field> <field name="model">hr.employee</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Employees"> <field name="name" string="Employees"/> @@ -126,7 +123,6 @@ <record model="ir.ui.view" id="hr_kanban_view_employees"> <field name="name">HR - Employess Kanban</field> <field name="model">hr.employee</field> - <field name="type">kanban</field> <field name="arch" type="xml"> <kanban> <field name="last_login"/> @@ -234,7 +230,6 @@ <record id="view_partner_tree2" model="ir.ui.view"> <field name="name">hr.employee.tree</field> <field name="model">hr.employee</field> - <field name="type">tree</field> <field name="field_parent">child_ids</field> <field eval="20" name="priority"/> <field name="arch" type="xml"> @@ -273,7 +268,6 @@ <record id="view_employee_category_form" model="ir.ui.view"> <field name="name">hr.employee.category.form</field> <field name="model">hr.employee.category</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Employee Category" version="7.0"> <group> @@ -287,7 +281,6 @@ <record id="view_employee_category_list" model="ir.ui.view"> <field name="name">hr.employee.category.list</field> <field name="model">hr.employee.category</field> - <field name="type">tree</field> <field eval="8" name="priority"/> <field name="arch" type="xml"> <tree string="Employees Categories"> @@ -299,7 +292,6 @@ <record id="view_employee_category_tree" model="ir.ui.view"> <field name="name">hr.employee.category.tree</field> <field name="model">hr.employee.category</field> - <field name="type">tree</field> <field name="field_parent">child_ids</field> <field name="arch" type="xml"> <tree string="Employees Categories"> @@ -348,7 +340,6 @@ <record id="view_hr_job_form" model="ir.ui.view"> <field name="name">hr.job.form</field> <field name="model">hr.job</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Job" version="7.0"> <header> @@ -392,7 +383,6 @@ <record id="view_hr_job_tree" model="ir.ui.view"> <field name="name">hr.job.tree</field> <field name="model">hr.job</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Job"> <field name="name"/> @@ -409,7 +399,6 @@ <record id="view_job_filter" model="ir.ui.view"> <field name="name">Job</field> <field name="model">hr.job</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Jobs"> <field name="name" string="Job"/> @@ -428,7 +417,6 @@ <record id="view_hr_job_employee_form" model="ir.ui.view"> <field name="name">hr.job.employee.form</field> <field name="model">hr.job</field> - <field name="type">form</field> <field name="priority">20</field> <field name="arch" type="xml"> <form string="Job" version="7.0"> diff --git a/addons/hr/res_config_view.xml b/addons/hr/res_config_view.xml index e5818bf9fcb..ad36818e525 100644 --- a/addons/hr/res_config_view.xml +++ b/addons/hr/res_config_view.xml @@ -25,7 +25,6 @@ <record id="view_human_resources_configuration" model="ir.ui.view"> <field name="name">hr settings</field> <field name="model">hr.config.settings</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Configure Human Resources" version="7.0" class="oe_form_configuration"> <header> diff --git a/addons/hr_attendance/hr_attendance_view.xml b/addons/hr_attendance/hr_attendance_view.xml index 8a671e8438f..bda89fd9d63 100644 --- a/addons/hr_attendance/hr_attendance_view.xml +++ b/addons/hr_attendance/hr_attendance_view.xml @@ -5,7 +5,6 @@ <record id="view_attendance_form" model="ir.ui.view"> <field name="name">hr.attendance.form</field> <field name="model">hr.attendance</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Employee attendances" version="7.0"> <sheet> @@ -23,7 +22,6 @@ <record id="view_attendance_tree" model="ir.ui.view"> <field name="name">hr.attendance.tree</field> <field name="model">hr.attendance</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Employee attendances"> <field name="name"/> @@ -36,7 +34,6 @@ <record id="view_attendance_who" model="ir.ui.view"> <field name="name">hr.attendance.tree</field> <field name="model">hr.attendance</field> - <field name="type">tree</field> <field eval="3" name="priority"/> <field name="arch" type="xml"> <tree string="Employee attendances"> @@ -51,7 +48,6 @@ <record model="ir.ui.view" id="view_hr_attendance_filter"> <field name="name">view_hr_attendance_filter</field> <field name="model">hr.attendance</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Hr Attendance Search"> <field name="name" string="Attendance"/> @@ -87,7 +83,6 @@ <record id="edit_attendance_reason" model="ir.ui.view"> <field name="name">hr.action.reason.form</field> <field name="model">hr.action.reason</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Define attendance reason" version="7.0"> <group col="4"> @@ -101,7 +96,6 @@ <record id="view_attendance_reason" model="ir.ui.view"> <field name="name">hr.action.reason.tree</field> <field name="model">hr.action.reason</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Attendance reasons"> <field name="name" /> @@ -127,7 +121,6 @@ <record id="hr_attendance_employee" model="ir.ui.view"> <field name="name">hr.employee.form1</field> <field name="model">hr.employee</field> - <field name="type">form</field> <field name="inherit_id" ref="hr.view_employee_form"/> <field name="arch" type="xml"> <field name="active" position="before"> diff --git a/addons/hr_attendance/wizard/hr_attendance_bymonth_view.xml b/addons/hr_attendance/wizard/hr_attendance_bymonth_view.xml index c9daaffbe4c..d34a65fd05f 100644 --- a/addons/hr_attendance/wizard/hr_attendance_bymonth_view.xml +++ b/addons/hr_attendance/wizard/hr_attendance_bymonth_view.xml @@ -5,7 +5,6 @@ <record id="view_hr_attendance_month" model="ir.ui.view"> <field name="name">Attendances Report Monthly</field> <field name="model">hr.attendance.month</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Print Attendance Report Monthly" version="7.0"> <group col="4"> diff --git a/addons/hr_attendance/wizard/hr_attendance_byweek_view.xml b/addons/hr_attendance/wizard/hr_attendance_byweek_view.xml index 554355edbb1..accbf6304c5 100644 --- a/addons/hr_attendance/wizard/hr_attendance_byweek_view.xml +++ b/addons/hr_attendance/wizard/hr_attendance_byweek_view.xml @@ -4,7 +4,6 @@ <record id="view_hr_attendance_week" model="ir.ui.view"> <field name="name">Attendances Report Weekly</field> <field name="model">hr.attendance.week</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Print Attendance Report Weekly" version="7.0"> <group> diff --git a/addons/hr_attendance/wizard/hr_attendance_error_view.xml b/addons/hr_attendance/wizard/hr_attendance_error_view.xml index 4e284cd396c..4027df49f68 100644 --- a/addons/hr_attendance/wizard/hr_attendance_error_view.xml +++ b/addons/hr_attendance/wizard/hr_attendance_error_view.xml @@ -5,7 +5,6 @@ <record id="view_hr_attendance_error" model="ir.ui.view"> <field name="name">Attendance Report Error</field> <field name="model">hr.attendance.error</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Print Attendance Report Error" version="7.0"> <group string="Analysis Information" col="4"> diff --git a/addons/hr_attendance/wizard/hr_attendance_sign_in_out_view.xml b/addons/hr_attendance/wizard/hr_attendance_sign_in_out_view.xml index 96d924f88a7..5c84be5107f 100644 --- a/addons/hr_attendance/wizard/hr_attendance_sign_in_out_view.xml +++ b/addons/hr_attendance/wizard/hr_attendance_sign_in_out_view.xml @@ -4,7 +4,6 @@ <record id="view_hr_attendance_sigh_in_out" model="ir.ui.view"> <field name="name">hr.sign.in.out.form</field> <field name="model">hr.sign.in.out</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Sign in / Sign out" version="7.0"> <group> @@ -29,7 +28,6 @@ <record id="view_hr_attendance_message" model="ir.ui.view"> <field name="name">hr.sign.in.out.form</field> <field name="model">hr.sign.in.out</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Sign in / Sign out" version="7.0"> <separator string="Sign-out Entry Must Follow Sign-in." colspan="4" /> @@ -53,7 +51,6 @@ <record id="view_hr_attendance_so_ask" model="ir.ui.view"> <field name="name">hr.sign.in.out.ask.form</field> <field name="model">hr.sign.in.out.ask</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="hr.sign.out.ask" version="7.0"> <header> @@ -73,7 +70,6 @@ <record id="view_hr_attendance_si_ask" model="ir.ui.view"> <field name="name">hr.sign.in.out.ask.form</field> <field name="model">hr.sign.in.out.ask</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="hr.sign.in.out.ask" version="7.0"> <header> diff --git a/addons/hr_contract/hr_contract_view.xml b/addons/hr_contract/hr_contract_view.xml index 2009e500bf9..10620cb9a4b 100644 --- a/addons/hr_contract/hr_contract_view.xml +++ b/addons/hr_contract/hr_contract_view.xml @@ -37,7 +37,6 @@ <record id="hr_contract_view_search" model="ir.ui.view"> <field name="name">hr.contract.view.search</field> <field name="model">hr.contract</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Search Contract"> <field name="name" string="Contracts"/> @@ -58,7 +57,6 @@ <record id="hr_contract_view_form" model="ir.ui.view"> <field name="name">hr.contract.view.form</field> <field name="model">hr.contract</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Contract" version="7.0"> <sheet> @@ -114,7 +112,6 @@ <record id="hr_contract_view_tree" model="ir.ui.view"> <field name="name">hr.contract.view.tree</field> <field name="model">hr.contract</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Contracts"> <field name="name"/> @@ -142,7 +139,6 @@ <record id="hr_contract_type_view_form" model="ir.ui.view"> <field name="name">hr.contract.type.view.form</field> <field name="model">hr.contract.type</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Contract Type"> <field colspan="4" name="name"/> @@ -153,7 +149,6 @@ <record id="hr_contract_type_view_tree" model="ir.ui.view"> <field name="name">hr.contract.type.view.tree</field> <field name="model">hr.contract.type</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Contract Type"> <field colspan="4" name="name"/> @@ -164,7 +159,6 @@ <record id="hr_contract_type_view_search" model="ir.ui.view"> <field name="name">hr.contract.type.view.search</field> <field name="model">hr.contract.type</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Search Contract Type"> <field name="name" string="Contract Type"/> diff --git a/addons/hr_evaluation/board_hr_evaluation_view.xml b/addons/hr_evaluation/board_hr_evaluation_view.xml index 7ed11beb98c..3ad39d3805b 100644 --- a/addons/hr_evaluation/board_hr_evaluation_view.xml +++ b/addons/hr_evaluation/board_hr_evaluation_view.xml @@ -15,7 +15,6 @@ <field name="name">board.hr.evaluation.form</field> <field name="model">board.board</field> <field name="inherit_id" ref="hr.board_hr_form"/> - <field name="type">form</field> <field name="arch" type="xml"> <xpath expr="/form/board/column[2]" position="inside"> <action name="%(action_hr_evaluation_interview_board)d" string="Interview Requests"/> diff --git a/addons/hr_evaluation/hr_evaluation_view.xml b/addons/hr_evaluation/hr_evaluation_view.xml index 0e1710bbab0..47b0c323622 100644 --- a/addons/hr_evaluation/hr_evaluation_view.xml +++ b/addons/hr_evaluation/hr_evaluation_view.xml @@ -5,7 +5,6 @@ <record id="view_hr_evaluation_plan_search" model="ir.ui.view"> <field name="name">hr_evaluation.plan.search</field> <field name="model">hr_evaluation.plan</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Appraisal Plan"> <field name="name" string="Appraisal Plans"/> @@ -20,7 +19,6 @@ <record model="ir.ui.view" id="view_hr_evaluation_plan_form"> <field name="name">hr_evaluation.plan.form</field> <field name="model">hr_evaluation.plan</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Appraisal Plan" version="7.0"> <group col="4"> @@ -45,7 +43,6 @@ <record model="ir.ui.view" id="view_hr_evaluation_plan_tree"> <field name="name">hr_evaluation.plan.form</field> <field name="model">hr_evaluation.plan</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Appraisal Plan"> <field name="name"/> @@ -70,7 +67,6 @@ <record model="ir.ui.view" id="view_hr_evaluation_plan_phase_form"> <field name="name">hr_evaluation.plan.phase.form</field> <field name="model">hr_evaluation.plan.phase</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Appraisal Plan Phases" version="7.0"> <notebook> @@ -116,7 +112,6 @@ <record model="ir.ui.view" id="view_hr_evaluation_plan_phase_tree"> <field name="name">hr_evaluation.plan.phase.form</field> <field name="model">hr_evaluation.plan.phase</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Appraisal Plan Phases" editable="bottom" > <field name="sequence"/> @@ -147,7 +142,6 @@ <record model="ir.ui.view" id="view_hr_evaluation_form"> <field name="name">hr_evaluation.evaluation.form</field> <field name="model">hr_evaluation.evaluation</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Appraisal" version="7.0"> <header> @@ -211,7 +205,6 @@ <record model="ir.ui.view" id="view_hr_evaluation_tree"> <field name="name">hr_evaluation.evaluation.tree</field> <field name="model">hr_evaluation.evaluation</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree colors="blue:state == 'draft';black:state in ('wait','progress');gray:state in('done','cancel')" string="Appraisal"> <field name="employee_id"/> @@ -227,7 +220,6 @@ <record id="hr_evaluation.evaluation_search" model="ir.ui.view"> <field name="name">hr_evaluation.evaluation_search</field> <field name="model">hr_evaluation.evaluation</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Search Appraisal"> <field name="date"/> @@ -272,7 +264,6 @@ <record model="ir.ui.view" id="view_hr_evaluation_interview_form"> <field name="name">hr_evaluation.interview.form</field> <field name="model">hr.evaluation.interview</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Interview Appraisal" version="7.0"> <header> @@ -309,7 +300,6 @@ <record model="ir.ui.view" id="view_hr_evaluation_interview_tree"> <field name="name">hr_evaluation.interview.tree</field> <field name="model">hr.evaluation.interview</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Interview Appraisal"> <field name="date_deadline" string="Deadline Date"/> @@ -330,7 +320,6 @@ <record id="view_hr_evaluation_interview_search" model="ir.ui.view"> <field name="name">view_hr_evaluation_interview_search</field> <field name="model">hr.evaluation.interview</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Search Appraisal"> <field name="date_deadline"/> @@ -349,7 +338,6 @@ <record id="view_evaluation_calendar" model="ir.ui.view"> <field name="name">Interview Requests</field> <field name="model">hr.evaluation.interview</field> - <field name="type">calendar</field> <field name="arch" type="xml"> <calendar string="Interview Request" color="user_to_review_id" date_start="date_deadline"> <field name="request_id"/> diff --git a/addons/hr_evaluation/report/hr_evaluation_report_view.xml b/addons/hr_evaluation/report/hr_evaluation_report_view.xml index f92ff1efedb..fb1186ae401 100644 --- a/addons/hr_evaluation/report/hr_evaluation_report_view.xml +++ b/addons/hr_evaluation/report/hr_evaluation_report_view.xml @@ -5,7 +5,6 @@ <record id="view_evaluation_report_tree" model="ir.ui.view"> <field name="name">hr.evaluation.report.tree</field> <field name="model">hr.evaluation.report</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree colors="blue:state == 'draft';black:state in ('wait','progress');gray:state in('done','cancel')" string="Appraisal Analysis"> @@ -29,7 +28,6 @@ <record id="view_evaluation_report_graph" model="ir.ui.view"> <field name="name">hr.evaluation.report.graph</field> <field name="model">hr.evaluation.report</field> - <field name="type">graph</field> <field name="arch" type="xml"> <graph string="Appraisal Analysis" type="bar"> <field name="employee_id"/> @@ -42,7 +40,6 @@ <record id="view_evaluation_report_search" model="ir.ui.view"> <field name="name">hr.evaluation.report.search</field> <field name="model">hr.evaluation.report</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Appraisal Analysis"> <filter string="In Progress" icon="terp-camera_test" domain="[('state', '=' ,'wait')]" help = "In progress Evaluations"/> diff --git a/addons/hr_evaluation/wizard/hr_evaluation_mail_view.xml b/addons/hr_evaluation/wizard/hr_evaluation_mail_view.xml index fffdf76f0e9..89ae99bb6c3 100644 --- a/addons/hr_evaluation/wizard/hr_evaluation_mail_view.xml +++ b/addons/hr_evaluation/wizard/hr_evaluation_mail_view.xml @@ -5,7 +5,6 @@ <record id="view_hr_evaluation_send_mail" model="ir.ui.view"> <field name="name">hr.evaluation.send.mail</field> <field name="model">hr.evaluation.reminder</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Evaluation Reminders" version="7.0"> <group string="Send Evaluation Reminder"> diff --git a/addons/hr_expense/board_hr_expense_view.xml b/addons/hr_expense/board_hr_expense_view.xml index 667cccf54f2..fe89a4afc7a 100644 --- a/addons/hr_expense/board_hr_expense_view.xml +++ b/addons/hr_expense/board_hr_expense_view.xml @@ -15,7 +15,6 @@ <field name="name">board.hr.expense.form</field> <field name="model">board.board</field> <field name="inherit_id" ref="hr.board_hr_form"/> - <field name="type">form</field> <field name="arch" type="xml"> <xpath expr="/form/board/column[1]" position="inside"> <action name="%(action_my_expense)d" string="My Expenses" creatable="true"/> diff --git a/addons/hr_expense/hr_expense.py b/addons/hr_expense/hr_expense.py index f25f56e83ba..3683eff9f1d 100644 --- a/addons/hr_expense/hr_expense.py +++ b/addons/hr_expense/hr_expense.py @@ -72,7 +72,7 @@ class hr_expense_expense(osv.osv): 'account_move_id': fields.many2one('account.move', 'Ledger Posting'), 'line_ids': fields.one2many('hr.expense.line', 'expense_id', 'Expense Lines', readonly=True, states={'draft':[('readonly',False)]} ), 'note': fields.text('Note'), - 'amount': fields.function(_amount, string='Total Amount'), + 'amount': fields.function(_amount, string='Total Amount', digits_compute= dp.get_precision('Account')), 'invoice_id': fields.many2one('account.invoice', "Employee's Invoice"), 'currency_id': fields.many2one('res.currency', 'Currency', required=True), 'department_id':fields.many2one('hr.department','Department'), @@ -266,8 +266,8 @@ class hr_expense_line(osv.osv): 'date_value': fields.date('Date', required=True), 'expense_id': fields.many2one('hr.expense.expense', 'Expense', ondelete='cascade', select=True), 'total_amount': fields.function(_amount, string='Total', digits_compute=dp.get_precision('Account')), - 'unit_amount': fields.float('Unit Price', digits_compute=dp.get_precision('Account')), - 'unit_quantity': fields.float('Quantities'), + 'unit_amount': fields.float('Unit Price', digits_compute=dp.get_precision('Product Price')), + 'unit_quantity': fields.float('Quantities', digits_compute= dp.get_precision('Product Unit of Measure')), 'product_id': fields.many2one('product.product', 'Product', domain=[('hr_expense_ok','=',True)]), 'uom_id': fields.many2one('product.uom', 'Unit of Measure', required=True), 'description': fields.text('Description'), diff --git a/addons/hr_expense/hr_expense_demo.xml b/addons/hr_expense/hr_expense_demo.xml index 54154e01f41..e1d6b0a00b0 100644 --- a/addons/hr_expense/hr_expense_demo.xml +++ b/addons/hr_expense/hr_expense_demo.xml @@ -13,7 +13,7 @@ <field name="default_code">CarTRA</field> <field name="categ_id" ref="hr_expense.cat_expense"/> <field name="hr_expense_ok" eval="True" /> - <field name="product_image">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</field> + <field name="image">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</field> </record> <record id="air_ticket" model="product.product"> @@ -23,7 +23,7 @@ <field name="default_code">AT</field> <field name="categ_id" ref="hr_expense.cat_expense"/> <field name="hr_expense_ok" eval="True" /> - <field name="product_image">/9j/4AAQSkZJRgABAQEASABIAAD/2wBDAAUDBAQEAwUEBAQFBQUGBwwIBwcHBw8LCwkMEQ8SEhEPERETFhwXExQaFRERGCEYGh0dHx8fExciJCIeJBweHx7/2wBDAQUFBQcGBw4ICA4eFBEUHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh7/wAARCACAAIADASIAAhEBAxEB/8QAHAAAAwEAAwEBAAAAAAAAAAAAAAUGBwMECAIB/8QAPBAAAQMDAwEECQEGBQUAAAAAAQIDBAAFEQYSITETQVFhBxQiMkJxgZGhFSMzkrHB0QhDYoKiFiRS4fD/xAAbAQABBQEBAAAAAAAAAAAAAAAAAQIDBAUHBv/EADYRAAECBAMFBgQGAwEAAAAAAAEAAgMEESEFMUEGElGR8BNhcYGh0SIyM7EUQlLB4fEjJGKy/9oADAMBAAIRAxEAPwD2XRRRQhFFFde4yW4sNbq5DEckhDa3jhPaKISgdRklRSAM5JIA5NBNEoBJoF2KKjXJ7kTXMKQ6slmc2qMc5O1WRjA7ucfc1ZUC4B4pNSEUUUUIRRRRQhFFccl9mO32jzgQnOMnvPgPGvmFKalsB1rIB7j1FJvCtEtFzUUi1NqFFqdjQ2GkyJ0pYbabKwkAngE/Ujjj5imFi/Vf0OB+u+pfq3qzfr3qW71ft9o7Ts9/tbN2du7nGM80Agoou7RRRSpEUUUUIRXw/wAMOH/Sf5V91wT3UNRVlZI3DakAZJJ6f/dw56UhyShQ2vWFKszkhv8AeQ3+0BHcArH9R9qtbPObuVqiz2ina+0leEq3BJI5TnyOR9Ki5ipl5ny4EYobtYBD0nqp5RT7iO7APJV9B3kc/oenuO2SVanyrtbe+U4KQAEqJOPP2gv7ikgCsMjUH7pIho8d6uKKKKchFFFFCEl1S2AmJKxy26UZ8AoY/mBSiNcDb5DpUtSWFpKzhWMYHtc93j/F4091WkqsUjCgNu1Qz4gjH5xWYauvDbcVEUubQ8Atzx29Upx4nqfpVSKCH1UzPlTzQKXL9rCZf30EMxk9nHGeEk+R8ifqmtHrFdBa4asi3Yz0FHqry924eysHPJ3H3up4J+1axZL5b7xH7aI6RggFDg2kE5x5Hp3E1LCLQKJjwa1TKiiipkxFFFFCF17hMYhR1OvutNgJKv2iwkYHUknoB3ms/iP3rWMswESpjFhdDjn6iGOzclt7hlpsgYbR7QAUfbWkZ5wVG3vtitF8TGTdoLUsRne2Z359lWCO7qOeh4NMEJShIShISkDAAGAKEKb2oakhttO1HYI2jwxkf2qQsbwsnpedjq2oYubZwTnqoZ4896cfWqrUk2Ja3mZElwNtqK2UJAypaiobUJA5KjjgCor0pR5rCbbqSAlSZEFwbxtBUnJBSccg4Vx39aikzSLuH81ksz9PeGl1rFwmRoEN2ZMeSyw0MrWru/uSeAByScCsuv2q7pcbiJESRJgsNfuWm14I5B3LA4UTgcHKQOOcknhud6u2qXYqHmQzhIKYyDlKFY9pZPeevyHHXJNDabXGgw1MlKXVuDDqlD3vL5VdnsSlMAhtdHG/Fdk3gNSermwtUrDixYk64thGjBrxKfaP1IzfI5adCGZ7ScutDoodN6M/D4jqk8HuJfLWlCSpZASOpNZLcoD9mnNT4S1BDbgW2sHls+B8j08wSDVSnUIftKbiHkOSkoSHm+UtpUM52pJOCcnB57qI7peNAbNyhrDd6HgevdXJCYe9xgxfmHqnt2mNBpxD6UFogfs1DlXmrwHTjrUSLFatTy5TjFtZcLCwHHgCApZ+HcCM4GMjPGR41Pz75dNX38af02HVArT67MSkFMZskZVyQCrBztz+cCtZ03Y7bp61ot1sYDTQO5ajyt1Zxla1fEo4HPkB0AFUBD37uK097dyUpC0nGinb/wBPxlY7woqz/EP613YkSPFO+LAdh7wM9igBKvA4TkHr4VYUUhlxxS9p3JXZzKWsqcW4GwkYCknnrjy+3lTSiipmN3RRRuNTVFFFFOSIqcumsrBGtLc9m5NyWZDaVxVxf2vrQUAU9hjh3IIwUkgZya72rosqdpm4QokKBPckMloxZwyw+hXC21jByFJKhzxzzxS3TulgzNRe746J94/y14w3FSRjs2k9APE9SeT0FCEoTGkS4rF/u0UMzmdy47JcCxHbPPXvWpHClZPXA78pb1dHrtIEGACWCevTtPM+Cad+lSPepNskfobjZdZUlxyOtOe2TtAwDnqOuO+sy0Zq15SlwpDbTMwqOFFGO0x8PkR4U+O84dhsXFWM7VzPyi+7/wBOFjQd3uRjYhOERmSZ+EOGfHuHX86PaILUBnanCnFe+vx8vlXfC6lUXyX3ho/7a50X5742W1fIkVxGZ2jhTkZ0aO8lzsyR7K2wMY0NbYBUDu1aFIWApKhgg9DUjqSzKTHebZeeaYeSU9o2rC26aN31g/vGnE/LBrjkXuHJkptcFxuROeGEsHqM+Ir1ux+MRjOCDJ/5A75m6U1JrlTioJsQyzeJoRkdaqh9EqLJAsKbPbY6YslkFbySrKnuf3mfiHTPeDweoJtKyafAudgmtlS1x3cBTbrSuPPyPmDwe/Iq/wBKX1N5iKDqEtS2sB1CfdV4LT5HwPIPHPBPUp6RbDHbQbsPp1/aWRnnPPZRrOHqnVFFFZa1EUUUUIRRRRQhFFFde4TY8BhL0kuBK3UNJDbSnFFS1BI9lIJxk5JxhIBUSACQoFTQIWeekaQ8Ly5EEllzctDiUspKVNjYAErO47lZ3KyAn2VJGOCpUDqj0eiVNcuDiJ0OYshS5MN3hSh8Sk8gnzIB86sULVdtZvSVqK0h9bmSAMJScIHHkEj+9VKledMxraV+BRYUvBYHfDV1e/QEZZag1svPmAJ5z3vNq28ljkdOp4DQS45DvSE8bservEefVJP2rlGo4bSg3cWpNscPH/dNkIJ8ljKT961CZChyeXo6FK/8gMH7ilEuwNLSQy77J+B0bga59M4Vsziri8b0s88PiZyFxyAU4ZMwhSzhyKhLxfENs9nb3G331pzvQd6Wx4nHU+AqQsuqZtiusbUdvfC4u7Dj5SStpzOFB0H4T0PTb+arLxoOwTFl+O09a5CXdwk250tZWPEe4r5EVO3LROo7fMXcLLNh3PtBtkxJKexMhPTqMp347yBnoa61srs7J7PSfZQBvOd87yLu7qfpH6fOtVgTTokxF3ycshlTz48DobEUXonTt6tGvNOqSQEPhI7ZrIKmVY4Uk948D3/es/vTs/Sl7bj3ILYKVb4k9gewvzwehwcFPI5wcg1lFkvt49Hl3ZmOwp9tgA+yp1HaIjZ6oUpOQpo/8fsa9HWW66b9JulVtFTLpwC62hwKWyvuWk+Hgfoe8VpDdkXlwFYRzGrfDiOHHI3V7edPsDSaRRkdHU+x48MxZONI6hjX6FuQpPrDaU9rtHsLyPeRyeM54JyO/uJeV55usDUHo+1ElUd9SBkqjvhOW3k4wcg8ZweR3fY1r2gNZwtVxnEhtMW4sgrfipUtYQguLSghwoSFEpSCQnO0qAPUE0sSwkwW/iYB3oR1Gnj56+RvSt7DMW7Zxl5gbsRvHXw7+hVVFFFFYa3EUUVwSZCWiEAb3CMhPl4nwpCQBUpQKonyDHjqU2lDj5SeybUopC1Y4BIBwPPBxSDU109SgSJClAyNhS0nPCCeB9e+vm+XlmA2t114FzGCrw8hWbTL6u9THglWWmVAbQfiPj54/nTpKGZqZYzSt/AZqGciCXgOfrp4p9o9ns2HpJ6rIQk+Q6/k/inpXS+IG4UFllxaUbU87jjnqfzXG7doLf8AnhR/0gmuZ7QYpDm8QizDnAAm19BYegVSWhiFCawpgpVdS4yOwhuuD3gnCfmeB+aXvX6OPcadV88CpjV+rvV+yYQwynguqU87hIxwnPzJ/FM2cZBxXE4UpDNamp8Bc3yyCZNzLYEFzyVoejLxZItoFvlHClLJcUtG5Cj07s9wHWm7+m9P3NsuxNjefjjLGPtyK85OanujSu1l6eDWefWbYtTgPmU5Cvwa5LbrfURkb7Jd7VMWnqw6hcd9PlkHP3TXdYkhF3y5ji1x6yNDyqshmIwuzDHtDmjrMVHOi2y46ImoSr1V5qU2eChY2kjw8DUY/pFi0XBE5q2u2mWg+y9Gyzny9n2SKW2z00ahtiwm/QFtNjgqfZKm/o62SB/uFaJp70q6avDAMjLCVcFaSHmvun+ooP4xlQ5oiDuz5Z+iUOkohDmuMM6Vy55eqnbjPuFwti7dcXUXCMrlIfT7aD3KSscg/PNZ2q43nSV29babkxVthQamtNB1vBBGSCCAcHoR/Q16D/SdM31kvwVsKzzviuDj5gcfiorXVhm6cty7k1MiyIwWlGxxCkOEk9BgkH8dKmw2bhNcYDKjetunK/XcosSk4r2iO+jt2+8MxS/WaT6X9Lus5UJyW7o9m/xG1BCn7S9haD4rbO5WSOcYHfjyrtJ+lzTF6kRbbNTNs94fU216jKjOZLqsDalQTyNxxkhPjgUv9GNogLtxv6re3EmSFqSHGCUFTY49oDhXOTyDVg3Ahzp8REuLGlCO56y32wypC0+6sdxIJGMjg4I5Aryk9OyjJ58qwXBIzOYz45eS35CK+JAY+I7OmlfbNUDiwhOTyScAZHNQur9VRrP6wXCk7klfaJITvIHunPTAAwSefpUB/idm67gX+0TdGWO9XaQxHwhMSA4602FrIdytA4UQhvGT7OMjqab2b0RzLzKbna5uD8pOd5hmQVpCgVbRgDYAN3dnIAz0GI3sDqXWg1xFbKJsdy1F6Tr0mBa9sSKtJcVO52hsEBQbCgNykkgFWMAkYBzitHuPoiSzaW4unr8/BWhCi4lxsESHCBhRWMKSSRyTu+XGDpFotlvtEMRLZDZiMBRVsbTgEnvPieByfCu3VqUmYko8Pg2Pkedehoq0zKw5pm5Fv6fbrivOVx0R6QNPOktNypjO8JC4yjJQokZ9wjeB1BJSBnv5GV8XUktI2zIaXPFbKsH+E/3r07Sy96fst6SRdLbHkqKQntFJw4ADkALGFAZz0PefGkxCWwXGKnEpNpcfzs+F3iSKV8zTuWKcGjwLykYgcHXH8clg8e9QJBCUvhpZ+B0bD+ev0pJLDdxmS3HUIdZUrskpWkFJSnjofPJrXb56JrZI3rtc1yPnersX09ogk+6kHgpA6ZO4/bmRuOgb/aAEJt5ksghKVxAXByM+6BuA8yMfinbJbKYJgs++blIxO83dDX0qKkE3sDlTLLVZWKNxF8IMiQ8jWrbj3Cgk6bjNHfbJEq2L64jufs/qhWU/gV159rujiQLhbLbfW09FpHYPj5ZyM/Iiq1DJBxjpXMhryroMSDCIoLeGXLL0WHDmYlnE1+/PP1UE081DWGmLzcLO4eBGuzRcaPkFnu+S6+5NvVv9amWAKUefXrK9hR89owT/AMqvHIqHWy262lxCuqVAEH6Gk7ulLehZdty5NrdPO6I4UJPzQcpP2qo6C4WFx1oajlRWmTDa1Nj1qKHnVILVcp7EkGy6kakPo6MTQWJA8twwfuDVadQan1DAatl5DyS28OzQtaXNyiMAhQ5I576Q3O03hTeyZFtl/YHQOoDLw+R5Tn7VY+jW0NJuURCGFtMxk9sW1rKyg9ycknOCfxVaam2yMvEm4o+m0m/HQCtc8rO8lIAYpEKGfmNLfvSnq3zWqWyO3b7ZGgt42sNJQPPA5NfkB5c2+IjQ2g4IrgXKkE4SwduQ2D8TigeU9yVZVjKQv5efS22pxRwEgk1SWuOYtvZYWEhwJy4EqKhvPKsE84yT4fIVxXZ//emXzEWpp/6PH252sfdNh1oxtgOuuiOzRRRXtFbRRRRQhFFFFCEUUUUIXVuVtgXJvs50NmQACElaASnPXaeoPmPCpm5aAtjyiuDIdiEkeyodogDHQZIV155J76sKKsQZuNA+m4j7clVmJKXmPqMB+/PNZTcdG3mEkrEcSUAAlUc7upxjbwr7A0jejLbcU2tBStJKVJIwQR1BFblXXmwoc1ITLisvgAgdogHbnrjwrVg448WiNr4LDmNm4ZvBdTuPXusMda8qptExgxDdkkYU8rA+Q/8Aeae33RLj10iJtTcZmA4F+tuPSFlxjCfY7NG0hzceDuWjb1G7pXC9brhaGgw5bpDrDSGgH4ye2Sta1lG0IT+09k4KlFO0JUDnAVt8xt3ik1OYT+Hk4TiXOuBQndB4AnN1KD5qAmlLqHD8JjSsxvxRYCxHH+kytSFSbmw2AralXaLIIGAnkdfPaPrVZSPSsRbfbyX2lIcJDaQtspUB1JBPcSR/DTysXZSUdL4c0vFHOqT+3ovTwRaq/9k=</field> + <field name="image">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</field> </record> <record id="hotel_rent" model="product.product"> @@ -33,7 +33,7 @@ <field name="default_code">HA0</field> <field name="categ_id" ref="hr_expense.cat_expense"/> <field name="hr_expense_ok" eval="True" /> - <field name="product_image">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</field> + <field name="image">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</field> </record> <record id="expenses0" model="hr.expense.expense"> <field name="name">Expenses</field> diff --git a/addons/hr_expense/hr_expense_installer_view.xml b/addons/hr_expense/hr_expense_installer_view.xml index 717f9b94b2c..c2d1d88d1bf 100644 --- a/addons/hr_expense/hr_expense_installer_view.xml +++ b/addons/hr_expense/hr_expense_installer_view.xml @@ -16,7 +16,6 @@ <record id="product_expense_installer_tree_view" model="ir.ui.view"> <field name="name">product.product.tree</field> <field name="model">product.product</field> - <field name="type">tree</field> <field eval="7" name="priority"/> <field name="arch" type="xml"> <tree editable="bottom" string="Products"> diff --git a/addons/hr_expense/hr_expense_view.xml b/addons/hr_expense/hr_expense_view.xml index 57b7a4cc37f..c9224d43932 100644 --- a/addons/hr_expense/hr_expense_view.xml +++ b/addons/hr_expense/hr_expense_view.xml @@ -6,7 +6,6 @@ <record id="view_expenses_line_tree" model="ir.ui.view"> <field name="name">hr.expense.line.tree</field> - <field name="type">tree</field> <field name="model">hr.expense.line</field> <field name="arch" type="xml"> <tree string="Expense Lines"> @@ -25,7 +24,6 @@ <record id="view_expenses_tree" model="ir.ui.view"> <field name="name">hr.expense.expense.tree</field> <field name="model">hr.expense.expense</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Expenses" colors="blue:state=='draft'"> <field name="employee_id"/> @@ -43,7 +41,6 @@ <record id="view_editable_expenses_tree" model="ir.ui.view"> <field name="name">hr.expense.expense.tree</field> <field name="model">hr.expense.expense</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree colors="blue:state == 'draft';black:state in ('confirm','accepted','invoiced','paid');gray:state == 'cancelled'" string="Expenses" editable="top"> <field name="employee_id"/> @@ -60,7 +57,6 @@ <record id="view_expenses_form" model="ir.ui.view"> <field name="name">hr.expense.form</field> - <field name="type">form</field> <field name="model">hr.expense.expense</field> <field name="arch" type="xml"> <form string="Expenses Sheet" version="7.0"> @@ -136,6 +132,7 @@ </sheet> <div class="oe_chatter"> <field name="message_ids" widget="mail_thread"/> + <field name="message_follower_ids" widget="mail_followers"/> </div> </form> </field> @@ -145,7 +142,6 @@ <record id="view_hr_expense_filter" model="ir.ui.view"> <field name="name">hr.expense.expense.filter</field> <field name="model">hr.expense.expense</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Expense"> <field name="name" string="Expenses"/> @@ -190,7 +186,6 @@ <field name="name">product.product.expense.form</field> <field name="model">product.product</field> <field name="inherit_id" ref="product.product_normal_form_view"/> - <field name="type">form</field> <field name="arch" type="xml"> <field name="purchase_ok" position="after"> <field name="hr_expense_ok" on_change="on_change_hr_expense_ok(hr_expense_ok)"/> diff --git a/addons/hr_expense/report/hr_expense_report_view.xml b/addons/hr_expense/report/hr_expense_report_view.xml index 73ec45bde02..890568abc44 100644 --- a/addons/hr_expense/report/hr_expense_report_view.xml +++ b/addons/hr_expense/report/hr_expense_report_view.xml @@ -5,7 +5,6 @@ <record id="view_hr_expense_report_tree" model="ir.ui.view"> <field name="name">hr.expense.report.tree</field> <field name="model">hr.expense.report</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree colors="blue:state == 'draft';black:state in ('confirm','accepted','invoiced','paid');gray:state == 'cancelled'" string="Expenses Analysis"> <field name="employee_id" invisible="1"/> @@ -35,7 +34,6 @@ <record id="view_hr_expense_report_graph" model="ir.ui.view"> <field name="name">hr.expense.report.graph</field> <field name="model">hr.expense.report</field> - <field name="type">graph</field> <field name="arch" type="xml"> <graph string="Expenses Analysis" type="bar"> <field name="employee_id"/> @@ -48,7 +46,6 @@ <record id="view_hr_expense_report_search" model="ir.ui.view"> <field name="name">hr.expense.report.search</field> <field name="model">hr.expense.report</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Expenses Analysis"> <filter string="Waiting" icon="terp-gtk-media-pause" domain="[('state', '=' ,'confirm')]" help = "Confirm Expenses"/> diff --git a/addons/hr_holidays/board_hr_holidays_view.xml b/addons/hr_holidays/board_hr_holidays_view.xml index eb3b671af6b..c90ee32c396 100644 --- a/addons/hr_holidays/board_hr_holidays_view.xml +++ b/addons/hr_holidays/board_hr_holidays_view.xml @@ -15,7 +15,6 @@ <record id="board_hr_holidays_leave_by_month_form" model="ir.ui.view"> <field name="name">board.hr.holidays.leave.month.form</field> <field name="model">board.board</field> - <field name="type">form</field> <field name="inherit_id" ref="hr.board_hr_form"/> <field name="arch" type="xml"> <xpath expr="/form/board/column[1]" position="inside"> diff --git a/addons/hr_holidays/hr_holidays.py b/addons/hr_holidays/hr_holidays.py index 7eedfa54ce5..45c65511a1a 100644 --- a/addons/hr_holidays/hr_holidays.py +++ b/addons/hr_holidays/hr_holidays.py @@ -366,15 +366,11 @@ class hr_holidays(osv.osv): result[obj.id] = hr_manager_group['users'] return result - def message_get_subscribers(self, cr, uid, ids, context=None): - """ Override to add employee and its manager. """ - user_ids = super(hr_holidays, self).message_get_subscribers(cr, uid, ids, context=context) - for obj in self.browse(cr, uid, ids, context=context): - if obj.user_id and not obj.user_id.id in user_ids: - user_ids.append(obj.user_id.id) - if obj.employee_id.parent_id and not obj.employee_id.parent_id.user_id.id in user_ids: - user_ids.append(obj.employee_id.parent_id.user_id.id) - return user_ids + def message_get_monitored_follower_fields(self, cr, uid, ids, context=None): + """ Add 'user_id' and 'manager' to the monitored fields """ + res = super(hr_holidays, self).message_get_monitored_follower_fields(cr, uid, ids, context=context) + # TODO: add manager + return res + ['user_id'] def create_notificate(self, cr, uid, ids, context=None): for obj in self.browse(cr, uid, ids, context=context): diff --git a/addons/hr_holidays/hr_holidays_view.xml b/addons/hr_holidays/hr_holidays_view.xml index de9c65fe042..711d07bbfe8 100644 --- a/addons/hr_holidays/hr_holidays_view.xml +++ b/addons/hr_holidays/hr_holidays_view.xml @@ -41,7 +41,6 @@ <record id="view_hr_holidays_filter" model="ir.ui.view"> <field name="name">hr.holidays.filter</field> <field name="model">hr.holidays</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Search Leave"> <field name="date_from"/> @@ -77,7 +76,6 @@ <record id="view_holiday_new_calendar" model="ir.ui.view"> <field name="name">Leave Request</field> <field name="model">hr.holidays</field> - <field name="type">calendar</field> <field name="arch" type="xml"> <calendar string="Leave Request" color="user_id" date_start="date_from" date_stop="date_to"> <field name="user_id"/> @@ -89,10 +87,9 @@ <record model="ir.ui.view" id="edit_holiday_new"> <field name="name">Leave Request</field> <field name="model">hr.holidays</field> - <field name="type">form</field> <field name="priority">1</field> <field name="arch" type="xml"> - <form version="7.0"> + <form string="Leave Request" version="7.0"> <header> <button string="Submit to Manager" name="confirm" states="draft" type="workflow" class="oe_highlight"/> <button string="Approve" name="validate" states="confirm" type="workflow" groups="base.group_hr_user" class="oe_highlight"/> @@ -140,6 +137,7 @@ </sheet> <div class="oe_chatter"> <field name="message_ids" colspan="4" widget="mail_thread" nolabel="1"/> + <field name="message_follower_ids" widget="mail_followers"/> </div> </form> </field> @@ -149,7 +147,6 @@ <record model="ir.ui.view" id="allocation_leave_new"> <field name="name">Allocation Request</field> <field name="model">hr.holidays</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Allocation Request" version="7.0"> <header> @@ -187,6 +184,7 @@ </sheet> <div class="oe_chatter"> <field name="message_ids" colspan="4" widget="mail_thread" nolabel="1"/> + <field name="message_follower_ids" widget="mail_followers"/> </div> </form> </field> @@ -195,7 +193,6 @@ <record model="ir.ui.view" id="view_holiday_allocation_tree"> <field name="name">hr.holidays.allocation.tree</field> <field name="model">hr.holidays</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree fonts="bold:needaction_pending==True" colors="red:state == 'refuse';blue:state == 'draft';black:state in ('confirm','validate','validate1')" string="Allocation Requests"> <field name="needaction_pending" invisible="1"/> @@ -218,7 +215,6 @@ <record model="ir.ui.view" id="allocation_company_new"> <field name="name">Leaves Management</field> <field name="model">hr.holidays</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Leaves Management" version="7.0"> <header> @@ -245,7 +241,6 @@ <record model="ir.ui.view" id="view_holiday_simple"> <field name="name">hr.holidays.report_tree</field> <field name="model">hr.holidays</field> - <field name="type">tree</field> <field name="priority">20</field> <field name="arch" type="xml"> <tree fonts="bold:needaction_pending==True" colors="red:state == 'refuse';blue:state == ' draft';black:state in ('confirm','validate','validate1')" string="Leaves Summary"> @@ -270,7 +265,6 @@ <record model="ir.ui.view" id="view_holiday"> <field name="name">hr.holidays.tree</field> <field name="model">hr.holidays</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree fonts="bold:needaction_pending==True" colors="red:state == 'refuse';blue:state == ' draft';black:state in ('confirm','validate','validate1')" string="Leave Requests"> <field name="needaction_pending" invisible="1"/> @@ -405,7 +399,6 @@ <record id="view_holidays_status_filter" model="ir.ui.view"> <field name="name">hr.holidays.status.filter</field> <field name="model">hr.holidays.status</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Search Leave Type"> <field name="name" string="Leave Types"/> @@ -417,7 +410,6 @@ <record model="ir.ui.view" id="edit_holiday_status_form"> <field name="name">hr.holidays.status.form</field> <field name="model">hr.holidays.status</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Leave Type" version="7.0"> <group col="4"> @@ -445,7 +437,6 @@ <record model="ir.ui.view" id="view_holiday_status_tree"> <field name="name">hr.holidays.status.tree</field> <field name="model">hr.holidays.status</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Leave Type"> <field name="name"/> @@ -458,7 +449,6 @@ <record model="ir.ui.view" id="view_holiday_status_normal_tree"> <field name="name">hr.holidays.status.normal.tree</field> <field name="model">hr.holidays.status</field> - <field name="type">tree</field> <field name="priority">35</field> <field name="arch" type="xml"> <tree string="Leave Type"> @@ -471,7 +461,6 @@ <record id="view_hr_holidays_status_search" model="ir.ui.view"> <field name="name">hr.holidays.status.search</field> <field name="model">hr.holidays.status</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Leave Type"> <field name="name" string="Leave Types"/> @@ -497,7 +486,6 @@ <record id="resource_calendar_leave_form_inherit" model="ir.ui.view"> <field name="name">resource.calendar.leaves.form.inherit</field> <field name="model">resource.calendar.leaves</field> - <field name="type">form</field> <field name="inherit_id" ref="resource.resource_calendar_leave_form"/> <field name="arch" type="xml"> <field name="name" position="after"> @@ -524,7 +512,6 @@ <record id="hr_holidays_leaves_assign_tree_view" model="ir.ui.view"> <field name="name">hr.employee.leave.tree</field> <field name="model">hr.employee</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Assign Leaves" editable="bottom"> <field name="name" string="Employee"/> @@ -553,14 +540,12 @@ <record id="view_employee_form_leave_inherit" model="ir.ui.view"> <field name="name">hr.employee.leave.form.inherit</field> <field name="model">hr.employee</field> - <field name="type">form</field> <field name="inherit_id" ref="hr.view_employee_form"/> <field name="arch" type="xml"> <field name="active" position="before"> <label for="remaining_leaves"/> <div> <field name="remaining_leaves" class="oe_inline"/> - <label/> <button name="%(act_hr_employee_holiday_request)d" string="Leaves" type="action" class="oe_inline oe_right"/> </div> </field> diff --git a/addons/hr_holidays/report/hr_holidays_report_view.xml b/addons/hr_holidays/report/hr_holidays_report_view.xml index 21e19897f22..8af7075f109 100644 --- a/addons/hr_holidays/report/hr_holidays_report_view.xml +++ b/addons/hr_holidays/report/hr_holidays_report_view.xml @@ -5,7 +5,6 @@ <record id="view_hr_holidays_remaining_leaves_user_tree" model="ir.ui.view"> <field name="name">hr.holidays.remaining.leaves.user.tree</field> <field name="model">hr.holidays.remaining.leaves.user</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Leaves by Type"> <field name="name"/> @@ -18,7 +17,6 @@ <record id="view_hr_holidays_remaining_leaves_user_graph" model="ir.ui.view"> <field name="name">hr.holidays.remaining.leaves.user.graph</field> <field name="model">hr.holidays.remaining.leaves.user</field> - <field name="type">graph</field> <field name="arch" type="xml"> <graph string="Leaves by Type" orientation = "horizontal" type="bar"> <field name="name" /> diff --git a/addons/hr_holidays/wizard/hr_holidays_summary_department_view.xml b/addons/hr_holidays/wizard/hr_holidays_summary_department_view.xml index c0bbf741277..d5847fa54ee 100644 --- a/addons/hr_holidays/wizard/hr_holidays_summary_department_view.xml +++ b/addons/hr_holidays/wizard/hr_holidays_summary_department_view.xml @@ -5,7 +5,6 @@ <record id="view_hr_holidays_summary_dept" model="ir.ui.view"> <field name="name">hr.holidays.summary.dept.form</field> <field name="model">hr.holidays.summary.dept</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Leaves by Department" version="7.0"> <group> diff --git a/addons/hr_holidays/wizard/hr_holidays_summary_employees_view.xml b/addons/hr_holidays/wizard/hr_holidays_summary_employees_view.xml index 976d732ee69..d7b46f38e6d 100644 --- a/addons/hr_holidays/wizard/hr_holidays_summary_employees_view.xml +++ b/addons/hr_holidays/wizard/hr_holidays_summary_employees_view.xml @@ -5,7 +5,6 @@ <record id="view_hr_holidays_summary_employee" model="ir.ui.view"> <field name="name">hr.holidays.summary.employee.form</field> <field name="model">hr.holidays.summary.employee</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Leaves Summary" version="7.0"> <group col="4" colspan="6"> diff --git a/addons/hr_payroll/hr_payroll_view.xml b/addons/hr_payroll/hr_payroll_view.xml index ed0eb49ee71..58484a91567 100644 --- a/addons/hr_payroll/hr_payroll_view.xml +++ b/addons/hr_payroll/hr_payroll_view.xml @@ -11,7 +11,6 @@ <record id="hr_contract_form_inherit" model="ir.ui.view"> <field name="name">hr.contract.view.form.inherit</field> <field name="model">hr.contract</field> - <field name="type">form</field> <field name="inherit_id" ref="hr_contract.hr_contract_view_form"/> <field name="arch" type="xml"> <data> @@ -31,7 +30,6 @@ <record id="view_hr_payroll_structure_list_view" model="ir.ui.view"> <field name="name">hr.payroll.structure.tree</field> <field name="model">hr.payroll.structure</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Employee Function"> <field name="name"/> @@ -44,7 +42,6 @@ <record id="view_hr_payroll_structure_tree" model="ir.ui.view"> <field name="name">hr.payroll.structure.tree</field> <field name="model">hr.payroll.structure</field> - <field name="type">tree</field> <field name="field_parent">children_ids</field> <field name="arch" type="xml"> <tree string="Salary Structure"> @@ -58,7 +55,6 @@ <record id="view_hr_payroll_structure_filter" model="ir.ui.view"> <field name="name">hr.payroll.structure.select</field> <field name="model">hr.payroll.structure</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Payroll Structures"> <field name="name" string="Payroll Structures" filter_domain="['|',('name','ilike',self),('code','ilike',self)]"/> @@ -69,7 +65,6 @@ <record id="view_hr_employee_grade_form" model="ir.ui.view"> <field name="name">hr.payroll.structure.form</field> <field name="model">hr.payroll.structure</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Employee Function" version="7.0"> <group col="4"> @@ -127,7 +122,6 @@ <record id="view_hr_payslip_line_tree" model="ir.ui.view"> <field name="name">hr.payslip.line.tree</field> <field name="model">hr.payslip.line</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Salary Structure" editable="bottom" colors="blue:total == 0"> <field name="category_id"/> @@ -147,7 +141,6 @@ <record id="view_hr_payslip_line_form" model="ir.ui.view"> <field name="name">hr.payslip.line.form</field> <field name="model">hr.payslip.line</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Payslip Line"> <group> @@ -173,7 +166,6 @@ <record id="view_hr_payslip_line_filter" model="ir.ui.view"> <field name="name">hr.payslip.line.select</field> <field name="model">hr.payslip.line</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Search Payslip Lines"> <field name="name" string="Payslip Lines" filter_domain="['|',('name','ilike',self),('code','ilike',self)]"/> @@ -195,7 +187,6 @@ <record id="view_hr_payslip_tree" model="ir.ui.view"> <field name="name">hr.payslip.tree</field> <field name="model">hr.payslip</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree colors="blue:state in ('confirm','hr_check','accont_check');black:state == 'new';gray:state == 'cancel'" string="Payslips"> <field name="number"/> @@ -219,7 +210,6 @@ <record id="view_hr_payslip_form" model="ir.ui.view"> <field name="name">hr.payslip.form</field> <field name="model">hr.payslip</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Payslip" version="7.0"> <header> @@ -355,7 +345,6 @@ <record id="view_hr_payslip_filter" model="ir.ui.view"> <field name="name">hr.payslip.select</field> <field name="model">hr.payslip</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Search Payslips"> <field name="name" string="Payslips" filter_domain="['|',('name','ilike',self),('number','ilike',self)]"/> @@ -406,7 +395,6 @@ <record id="hr_salary_rule_category_form" model="ir.ui.view"> <field name="name">hr.salary.rule.category.form</field> <field name="model">hr.salary.rule.category</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Salary Categories"> <group col="4"> @@ -423,7 +411,6 @@ <record id="hr_salary_rule_category_tree" model="ir.ui.view"> <field name="name">hr.salary.rule.category.tree</field> <field name="model">hr.salary.rule.category</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Salary Rule Categories"> <field name="name"/> @@ -435,7 +422,6 @@ <record id="hr_salary_rule_category_tree_view" model="ir.ui.view"> <field name="name">hr.salary.rule.category.tree.view</field> <field name="model">hr.salary.rule.category</field> - <field name="type">tree</field> <field name="field_parent">children_ids</field> <field name="arch" type="xml"> <tree string="Salary Rule Categories"> @@ -449,7 +435,6 @@ <record id="view_hr_salary_rule_category_filter" model="ir.ui.view"> <field name="name">hr.salary.rule.category.select</field> <field name="model">hr.salary.rule.category</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Salary Rule Categories"> <field name="name" string="Salary Rule Categories" filter_domain="['|',('name','ilike',self),('code','ilike',self)]"/> @@ -493,7 +478,6 @@ <record id="hr_contribution_register_tree" model="ir.ui.view"> <field name="name">hr.contribution.register.tree</field> <field name="model">hr.contribution.register</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Contribution Registers"> <field name="name" /> @@ -504,7 +488,6 @@ <record id="hr_contribution_register_filter" model="ir.ui.view"> <field name="name">hr.contribution.register.search</field> <field name="model">hr.contribution.register</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Contribution Registers"> <field name="name" string="Contribution Registers"/> @@ -515,7 +498,6 @@ <record id="hr_contribution_register_form" model="ir.ui.view"> <field name="name">hr.contribution.register.form</field> <field name="model">hr.contribution.register</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Contribution"> <field name="name"/> @@ -552,7 +534,6 @@ <record id="hr_salary_rule_list" model="ir.ui.view"> <field name="name">hr.salary.rule.list</field> <field name="model">hr.salary.rule</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Salary Rules"> <field name="name"/> @@ -567,7 +548,6 @@ <record id="hr_salary_rule_tree" model="ir.ui.view"> <field name="name">hr.salary.rule.tree</field> <field name="model">hr.salary.rule</field> - <field name="type">tree</field> <field name="field_parent">child_ids</field> <field eval="20" name="priority"/> <field name="arch" type="xml"> @@ -582,7 +562,6 @@ <record id="hr_salary_rule_form" model="ir.ui.view"> <field name="name">hr.salary.rule.form</field> <field name="model">hr.salary.rule</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Salary Rules" version="7.0"> <label for="name" class="oe_edit_only"/> @@ -641,7 +620,6 @@ <record id="view_hr_rule_filter" model="ir.ui.view"> <field name="name">hr.salary.rule.select</field> <field name="model">hr.salary.rule</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Search Salary Rule"> <field name="name" string="Salary Rules" filter_domain="['|',('name','ilike',self),('code','ilike',self)]"/> @@ -678,7 +656,6 @@ <record id="hr_payslip_run_filter" model="ir.ui.view"> <field name="name">hr.payslip.run.search</field> <field name="model">hr.payslip.run</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Search Payslip Batches"> <field name="name" string="Payslip Batches"/> @@ -693,7 +670,6 @@ <record id="hr_payslip_run_tree" model="ir.ui.view"> <field name="name">hr.payslip.run.tree</field> <field name="model">hr.payslip.run</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Payslips Batches"> <field name="name"/> @@ -708,7 +684,6 @@ <record id="hr_payslip_run_form" model="ir.ui.view"> <field name="name">hr.payslip.run.form</field> <field name="model">hr.payslip.run</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Payslips Batches" version="7.0"> <header> diff --git a/addons/hr_payroll/res_config_view.xml b/addons/hr_payroll/res_config_view.xml index 23b4adde536..c40980d1d1f 100644 --- a/addons/hr_payroll/res_config_view.xml +++ b/addons/hr_payroll/res_config_view.xml @@ -4,7 +4,6 @@ <record id="view_hr_config_inherit" model="ir.ui.view"> <field name="name">hr settings for payroll</field> <field name="model">hr.config.settings</field> - <field name="type">form</field> <field name="inherit_id" ref="hr.view_human_resources_configuration"/> <field name="arch" type="xml"> <xpath expr="//div[@name='hr_payroll']" position="after"> diff --git a/addons/hr_payroll/wizard/hr_payroll_contribution_register_report.xml b/addons/hr_payroll/wizard/hr_payroll_contribution_register_report.xml index 5e344e6553a..8cfaa85518a 100644 --- a/addons/hr_payroll/wizard/hr_payroll_contribution_register_report.xml +++ b/addons/hr_payroll/wizard/hr_payroll_contribution_register_report.xml @@ -5,7 +5,6 @@ <record id="view_payslip_lines_contribution_register" model="ir.ui.view"> <field name="name">payslip.lines.contribution.register</field> <field name="model">payslip.lines.contribution.register</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Contribution Register's Payslip Lines" version="7.0"> <header> diff --git a/addons/hr_payroll/wizard/hr_payroll_payslips_by_employees.xml b/addons/hr_payroll/wizard/hr_payroll_payslips_by_employees.xml index b29b80104df..4ef6ab577de 100644 --- a/addons/hr_payroll/wizard/hr_payroll_payslips_by_employees.xml +++ b/addons/hr_payroll/wizard/hr_payroll_payslips_by_employees.xml @@ -5,7 +5,6 @@ <record id="view_hr_payslip_by_employees" model="ir.ui.view"> <field name="name">hr_payroll_payslip_employees</field> <field name="model">hr.payslip.employees</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Payslips by Employees" version="7.0"> <header> diff --git a/addons/hr_payroll_account/hr_payroll_account_view.xml b/addons/hr_payroll_account/hr_payroll_account_view.xml index d481ae3cdde..370238be502 100644 --- a/addons/hr_payroll_account/hr_payroll_account_view.xml +++ b/addons/hr_payroll_account/hr_payroll_account_view.xml @@ -6,7 +6,6 @@ <field name="name">hr.payslip.inherit.form</field> <field name="model">hr.payslip</field> <field name="inherit_id" ref="hr_payroll.view_hr_payslip_form"/> - <field name="type">form</field> <field name="arch" type="xml"> <field name="paid" position="after"> <field name="period_id"/> @@ -41,7 +40,6 @@ <record id="hr_contract_form_inherit" model="ir.ui.view"> <field name="name">hr.contract.view.form.inherit</field> <field name="model">hr.contract</field> - <field name="type">form</field> <field name="inherit_id" ref="hr_contract.hr_contract_view_form"/> <field name="arch" type="xml"> <xpath expr="//group[@name='duration_group']" position="after"> @@ -58,7 +56,6 @@ <record id="hr_payslip_run_search_inherit" model="ir.ui.view"> <field name="name">hr.payslip.run.search.inherit</field> <field name="model">hr.payslip.run</field> - <field name="type">search</field> <field name="inherit_id" ref="hr_payroll.hr_payslip_run_filter"/> <field name="arch" type="xml"> <filter name='done_filter' position="after"> @@ -70,7 +67,6 @@ <record id="hr_payslip_run_tree_inherit" model="ir.ui.view"> <field name="name">hr.payslip.run.tree.inherit</field> <field name="model">hr.payslip.run</field> - <field name="type">tree</field> <field name="inherit_id" ref="hr_payroll.hr_payslip_run_tree"/> <field name="arch" type="xml"> <field name="date_end" position="after"> @@ -82,7 +78,6 @@ <record id="hr_payslip_run_form_inherit" model="ir.ui.view"> <field name="name">hr.payslip.run.form.inherit</field> <field name="model">hr.payslip.run</field> - <field name="type">form</field> <field name="inherit_id" ref="hr_payroll.hr_payslip_run_form"/> <field name="arch" type="xml"> <field name="credit_note" position="before"> diff --git a/addons/hr_recruitment/board_hr_recruitment_statistical_view.xml b/addons/hr_recruitment/board_hr_recruitment_statistical_view.xml index 468d3a8d66e..461ccdf0bbe 100644 --- a/addons/hr_recruitment/board_hr_recruitment_statistical_view.xml +++ b/addons/hr_recruitment/board_hr_recruitment_statistical_view.xml @@ -5,7 +5,6 @@ <record id="view_applicants_status_tree" model="ir.ui.view"> <field name="name">applicants.status.tree</field> <field name="model">hr.applicant</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree colors="blue:state == 'draft';black:state in ('open','pending','done','cancel');" string="Applicants Status"> <field name="create_date"/> @@ -31,7 +30,6 @@ <field name="name">board.hr.applicants.status.form</field> <field name="model">board.board</field> <field name="inherit_id" ref="hr.board_hr_form"/> - <field name="type">form</field> <field name="arch" type="xml"> <xpath expr="/form/board/column[1]" position="inside"> <action name="%(action_applicants_status)d" string="Applicants To be Processed"/> diff --git a/addons/hr_recruitment/hr_recruitment.py b/addons/hr_recruitment/hr_recruitment.py index 1db79172dc5..0ace2574d65 100644 --- a/addons/hr_recruitment/hr_recruitment.py +++ b/addons/hr_recruitment/hr_recruitment.py @@ -228,7 +228,7 @@ class hr_applicant(base_stage, osv.Model): multi='day_close', type="float", store=True), 'color': fields.integer('Color Index'), 'emp_id': fields.many2one('hr.employee', 'employee'), - 'user_email': fields.related('user_id', 'user_email', type='char', string='User Email', readonly=True), + 'user_email': fields.related('user_id', 'email', type='char', string='User Email', readonly=True), } _defaults = { @@ -461,13 +461,10 @@ class hr_applicant(base_stage, osv.Model): # OpenChatter methods and notifications # ------------------------------------------------------- - def message_get_subscribers(self, cr, uid, ids, context=None): - """ Override to add responsible user. """ - user_ids = super(hr_applicant, self).message_get_subscribers(cr, uid, ids, context=context) - for obj in self.browse(cr, uid, ids, context=context): - if obj.user_id and not obj.user_id.id in user_ids: - user_ids.append(obj.user_id.id) - return user_ids + def message_get_monitored_follower_fields(self, cr, uid, ids, context=None): + """ Add 'user_id' to the monitored fields """ + res = super(hr_applicant, self).message_get_monitored_follower_fields(cr, uid, ids, context=context) + return res + ['user_id'] def stage_set_send_note(self, cr, uid, ids, stage_id, context=None): """ Override of the (void) default notification method. """ @@ -518,37 +515,55 @@ class hr_job(osv.osv): "create new applicants for this job position."), } - def init(self, cr): - # Installation hook to create aliases for all jobs, right after _auto_init + _defaults = { + 'alias_domain': False, # always hide alias during creation + } + + def _auto_init(self, cr, context=None): + """Installation hook to create aliases for all jobs and avoid constraint errors.""" + + # disable the unique alias_id not null constraint, to avoid spurious warning during + # super.auto_init. We'll reinstall it afterwards. + self._columns['alias_id'].required = False + + super(hr_job,self)._auto_init(cr, context=context) + registry = RegistryManager.get(cr.dbname) mail_alias = registry.get('mail.alias') - hr_job = registry.get('hr.job') - jobs_no_alias = hr_job.search(cr, SUPERUSER_ID, [('alias_id', '=', False)]) + hr_jobs = registry.get('hr.job') + jobs_no_alias = hr_jobs.search(cr, SUPERUSER_ID, [('alias_id', '=', False)]) # Use read() not browse(), to avoid prefetching uninitialized inherited fields - for job_data in hr_job.read(cr, SUPERUSER_ID, jobs_no_alias, ['name']): - alias_id = mail_alias.create_unique_alias(cr, SUPERUSER_ID, {'alias_name': 'job_'+job_data['name'], - 'alias_force_id': job_data['id']}, - model_name=self._name) - hr_job.write(cr, SUPERUSER_ID, job_data['id'], {'alias_id': alias_id}) + for job_data in hr_jobs.read(cr, SUPERUSER_ID, jobs_no_alias, ['name']): + alias_id = mail_alias.create_unique_alias(cr, SUPERUSER_ID, {'alias_name': 'job+'+job_data['name'], + 'alias_defaults': {'job_id': job_data['id']}}, + model_name='hr.applicant') + hr_jobs.write(cr, SUPERUSER_ID, job_data['id'], {'alias_id': alias_id}) _logger.info('Mail alias created for hr.job %s (uid %s)', job_data['name'], job_data['id']) # Finally attempt to reinstate the missing constraint try: cr.execute('ALTER TABLE hr_job ALTER COLUMN alias_id SET NOT NULL') except Exception: - pass - + _logger.warning("Table '%s': unable to set a NOT NULL constraint on column '%s' !\n"\ + "If you want to have it, you should update the records and execute manually:\n"\ + "ALTER TABLE %s ALTER COLUMN %s SET NOT NULL", + self._table, 'alias_id', self._table, 'alias_id') + + self._columns['alias_id'].required = True + def create(self, cr, uid, vals, context=None): - alias_pool = self.pool.get('mail.alias') + mail_alias = self.pool.get('mail.alias') if not vals.get('alias_id'): - name = vals.pop('alias_name', None) or vals['name'] - alias_id = alias_pool.create_unique_alias(cr, uid, - {'alias_name': "job_"+name}, + vals.pop('alias_name', None) # prevent errors during copy() + alias_id = mail_alias.create_unique_alias(cr, uid, + # Using '+' allows using subaddressing for those who don't + # have a catchall domain setup. + {'alias_name': 'jobs+'+vals['name']}, model_name="hr.applicant", context=context) vals['alias_id'] = alias_id - res = super( hr_job, self).create(cr, uid, vals, context) - alias_pool.write(cr, uid, [vals['alias_id']], {"alias_defaults": {'job_id': res}}, context) + res = super(hr_job, self).create(cr, uid, vals, context) + mail_alias.write(cr, uid, [vals['alias_id']], {"alias_defaults": {'job_id': res}}, context) return res def unlink(self, cr, uid, ids, context=None): diff --git a/addons/hr_recruitment/hr_recruitment_data.xml b/addons/hr_recruitment/hr_recruitment_data.xml index 21f4e48e42d..d90f5ab596a 100644 --- a/addons/hr_recruitment/hr_recruitment_data.xml +++ b/addons/hr_recruitment/hr_recruitment_data.xml @@ -458,7 +458,6 @@ You can automatically create application records from an email gateway, that you <field name="alias_name">jobs</field> <field name="alias_model_id" ref="model_hr_applicant"/> <field name="alias_user_id" ref="base.user_root"/> - <field name="alias_defaults">{}</field> </record> </data> diff --git a/addons/hr_recruitment/hr_recruitment_view.xml b/addons/hr_recruitment/hr_recruitment_view.xml index d3bd6e28438..0e74473f853 100644 --- a/addons/hr_recruitment/hr_recruitment_view.xml +++ b/addons/hr_recruitment/hr_recruitment_view.xml @@ -75,7 +75,6 @@ <record model="ir.ui.view" id="crm_case_tree_view_job"> <field name="name">Applicants</field> <field name="model">hr.applicant</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Applicants" fonts="bold:needaction_pending==True" colors="grey:state in ('cancel','done');blue:state=='pending'"> <field name="needaction_pending" invisible="1"/> @@ -104,7 +103,6 @@ <record model="ir.ui.view" id="crm_case_form_view_job"> <field name="name">Jobs - Recruitment Form</field> <field name="model">hr.applicant</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Jobs - Recruitment Form" version="7.0"> <header> @@ -183,6 +181,7 @@ </sheet> <div class="oe_chatter"> <field name="message_ids" widget="mail_thread"/> + <field name="message_follower_ids" widget="mail_followers"/> </div> </form> </field> @@ -191,7 +190,6 @@ <record model="ir.ui.view" id="crm_case_graph_view_job"> <field name="name">Jobs - Recruitment Graph</field> <field name="model">hr.applicant</field> - <field name="type">graph</field> <field name="arch" type="xml"> <graph string="Cases By Stage and Estimates" type="bar" orientation="vertical"> <field name="job_id"/> @@ -204,7 +202,6 @@ <record id="view_crm_case_jobs_filter" model="ir.ui.view"> <field name="name">Jobs - Recruitment Search</field> <field name="model">hr.applicant</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Search Jobs"> <field name="partner_name" filter_domain="['|','|',('name','ilike',self),('partner_name','ilike',self),('email_from','ilike',self)]" string="Subject / Applicant"/> @@ -240,7 +237,6 @@ <record model="ir.ui.view" id="hr_applicant_calendar_view"> <field name="name">Hr Applicants Calendar</field> <field name="model">hr.applicant</field> - <field name="type">calendar</field> <field name="priority" eval="2"/> <field name="arch" type="xml"> <calendar string="Applicants" @@ -256,7 +252,6 @@ <record model="ir.ui.view" id="hr_kanban_view_applicant"> <field name="name">Hr Applicants kanban</field> <field name="model">hr.applicant</field> - <field name="type">kanban</field> <field name="arch" type="xml"> <kanban default_group_by="stage_id"> <field name="color"/> @@ -326,7 +321,6 @@ <record id="hr_job_survey" model="ir.ui.view"> <field name="name">hr.job.form1</field> <field name="model">hr.job</field> - <field name="type">form</field> <field name="inherit_id" ref="hr.view_hr_job_form"/> <field name="arch" type="xml"> <field name="no_of_recruitment" version="7.0" position="after"> @@ -341,7 +335,7 @@ </field> <xpath expr="/form/sheet/h1" version="7.0" position="after"> <div colspan="4" attrs="{'invisible': [('alias_domain', '=', False)]}"> - <field name="alias_id" invisible="1"/> + <field name="alias_id" invisible="1" required="0"/> <label for="alias_name" class="oe_edit_only"/> <field name="alias_name" nolabel="1" class="oe_inline" attrs="{'required': [('alias_id', '!=', False)]}"/>@<field name="alias_domain" nolabel="1" class="oe_inline"/> </div> @@ -353,7 +347,6 @@ <record model="ir.ui.view" id="hr_recruitment_stage_tree"> <field name="name">hr.recruitment.stage.tree</field> <field name="model">hr.recruitment.stage</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Stages"> <field name="sequence" invisible="1"/> @@ -368,7 +361,6 @@ <record model="ir.ui.view" id="hr_recruitment_stage_form"> <field name="name">hr.recruitment.stage.form</field> <field name="model">hr.recruitment.stage</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Stage" version="7.0"> <group string="Stage Definition"> @@ -410,7 +402,6 @@ <record model="ir.ui.view" id="hr_recruitment_degree_tree"> <field name="name">hr.recruitment.degree.tree</field> <field name="model">hr.recruitment.degree</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Degree"> <field name="sequence" invisible="1"/> @@ -423,7 +414,6 @@ <record model="ir.ui.view" id="hr_recruitment_degree_form"> <field name="name">hr.recruitment.degree.form</field> <field name="model">hr.recruitment.degree</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Degree" version="7.0"> <group> @@ -453,7 +443,6 @@ <record model="ir.ui.view" id="hr_recruitment_source_tree"> <field name="name">hr.recruitment.source.tree</field> <field name="model">hr.recruitment.source</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Sources of Applicants"> <field name="name"/> @@ -463,7 +452,6 @@ <record model="ir.ui.view" id="hr_recruitment_source_form"> <field name="name">hr.recruitment.source.form</field> <field name="model">hr.recruitment.source</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Sources of Applicants"> <field name="name"/> diff --git a/addons/hr_recruitment/report/hr_recruitment_report_view.xml b/addons/hr_recruitment/report/hr_recruitment_report_view.xml index afb87aba4ff..30a20a25eb8 100644 --- a/addons/hr_recruitment/report/hr_recruitment_report_view.xml +++ b/addons/hr_recruitment/report/hr_recruitment_report_view.xml @@ -4,7 +4,6 @@ <record id="view_hr_recruitment_report_tree" model="ir.ui.view"> <field name="name">hr.recruitment.report.tree</field> <field name="model">hr.recruitment.report</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Recruitment Analysis"> <field name="date" invisible="1"/> @@ -34,7 +33,6 @@ <record id="view_hr_recruitment_report_graph" model="ir.ui.view"> <field name="name">hr.recruitment.report.graph</field> <field name="model">hr.recruitment.report</field> - <field name="type">graph</field> <field name="arch" type="xml"> <graph string="Recruitment Analysis" type="bar"> <field name="job_id"/> @@ -46,7 +44,6 @@ <record id="view_hr_recruitment_report_search" model="ir.ui.view"> <field name="name">hr.recruitment.report.search</field> <field name="model">hr.recruitment.report</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Recruitment Analysis"> <filter string="New" icon="terp-document-new" domain="[('state','=','draft')]" help = "Draft recruitment"/> diff --git a/addons/hr_recruitment/res_config_view.xml b/addons/hr_recruitment/res_config_view.xml index 950d998b92b..449246bd343 100644 --- a/addons/hr_recruitment/res_config_view.xml +++ b/addons/hr_recruitment/res_config_view.xml @@ -16,7 +16,6 @@ <record id="view_hr_apll_config_settings" model="ir.ui.view"> <field name="name">hr settings for recruitment</field> <field name="model">hr.config.settings</field> - <field name="type">form</field> <field name="inherit_id" ref="hr.view_human_resources_configuration"/> <field name="arch" type="xml"> <div name="recruitment" position="inside"> diff --git a/addons/hr_recruitment/wizard/hr_recruitment_create_partner_job_view.xml b/addons/hr_recruitment/wizard/hr_recruitment_create_partner_job_view.xml index cf8a30c9847..09d8fff7bf0 100644 --- a/addons/hr_recruitment/wizard/hr_recruitment_create_partner_job_view.xml +++ b/addons/hr_recruitment/wizard/hr_recruitment_create_partner_job_view.xml @@ -5,7 +5,6 @@ <record id="view_hr_recruitment_partner_create" model="ir.ui.view"> <field name="name">hr.recruitment.partner.create.form</field> <field name="model">hr.recruitment.partner.create</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Convert To Partner" version="7.0"> <label string="Are you sure you want to create a contact based on this job request ?"/> diff --git a/addons/hr_recruitment/wizard/hr_recruitment_employee_hired.xml b/addons/hr_recruitment/wizard/hr_recruitment_employee_hired.xml index 0ea98657a61..d014bd54aa8 100644 --- a/addons/hr_recruitment/wizard/hr_recruitment_employee_hired.xml +++ b/addons/hr_recruitment/wizard/hr_recruitment_employee_hired.xml @@ -5,7 +5,6 @@ <record id="view_hr_recruitment_hired_employee" model="ir.ui.view"> <field name="name">hr.recruitment.hired2employee.form</field> <field name="model">hired.employee</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Create New Employee" version="7.0"> <header> diff --git a/addons/hr_timesheet/hr_timesheet_view.xml b/addons/hr_timesheet/hr_timesheet_view.xml index b141cef1bb4..d364d605b5f 100644 --- a/addons/hr_timesheet/hr_timesheet_view.xml +++ b/addons/hr_timesheet/hr_timesheet_view.xml @@ -5,7 +5,6 @@ <record id="hr_timesheet_line_tree" model="ir.ui.view"> <field name="name">hr.analytic.timesheet.tree</field> <field name="model">hr.analytic.timesheet</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree editable="bottom" string="Timesheet Lines"> <field name="date" on_change="on_change_date(date)"/> @@ -24,7 +23,6 @@ <record id="hr_timesheet_line_form" model="ir.ui.view"> <field name="name">hr.analytic.timesheet.form</field> <field name="model">hr.analytic.timesheet</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Timesheet Lines" version="7.0"> <sheet> @@ -65,7 +63,6 @@ <record id="hr_timesheet_line_search" model="ir.ui.view"> <field name="name">hr.analytic.timesheet.search</field> <field name="model">hr.analytic.timesheet</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Timesheet"> <field name="date"/> @@ -84,7 +81,6 @@ <record id="account_analytic_account_timesheet_form" model="ir.ui.view"> <field name="name">account.analytic.account.invoice.form</field> <field name="model">account.analytic.account</field> - <field name="type">form</field> <field name="inherit_id" ref="analytic.view_account_analytic_account_form"/> <field name="arch" type="xml"> <xpath expr='//separator[@name="project_sep"]' position='replace'> diff --git a/addons/hr_timesheet/wizard/hr_timesheet_print_employee_view.xml b/addons/hr_timesheet/wizard/hr_timesheet_print_employee_view.xml index afcf64808b7..9079735aaae 100644 --- a/addons/hr_timesheet/wizard/hr_timesheet_print_employee_view.xml +++ b/addons/hr_timesheet/wizard/hr_timesheet_print_employee_view.xml @@ -6,7 +6,6 @@ <record id="view_hr_timesheet_employee" model="ir.ui.view"> <field name="name">hr.analytical.timesheet.employee.form</field> <field name="model">hr.analytical.timesheet.employee</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Monthly Employee Timesheet" version="7.0"> <group colspan="4"> diff --git a/addons/hr_timesheet/wizard/hr_timesheet_print_users_view.xml b/addons/hr_timesheet/wizard/hr_timesheet_print_users_view.xml index 8ead6ea63d6..93015a76503 100644 --- a/addons/hr_timesheet/wizard/hr_timesheet_print_users_view.xml +++ b/addons/hr_timesheet/wizard/hr_timesheet_print_users_view.xml @@ -6,7 +6,6 @@ <record id="view_hr_timesheet_users" model="ir.ui.view"> <field name="name">hr.analytical.timesheet.users.form</field> <field name="model">hr.analytical.timesheet.users</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Monthly Employees Timesheet" version="7.0"> <sheet> diff --git a/addons/hr_timesheet/wizard/hr_timesheet_sign_in_out_view.xml b/addons/hr_timesheet/wizard/hr_timesheet_sign_in_out_view.xml index dc2a6c47b8d..ea8d37ad454 100644 --- a/addons/hr_timesheet/wizard/hr_timesheet_sign_in_out_view.xml +++ b/addons/hr_timesheet/wizard/hr_timesheet_sign_in_out_view.xml @@ -4,7 +4,6 @@ <record id="view_hr_timesheet_sign_in_message" model="ir.ui.view"> <field name="name">hr.sign.in.project.message.form</field> <field name="model">hr.sign.in.project</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Sign In/Out by Project" version="7.0"> <group> @@ -23,7 +22,6 @@ <record id="view_hr_timesheet_sign_in" model="ir.ui.view"> <field name="name">hr.sign.in.project.form</field> <field name="model">hr.sign.in.project</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Sign In/Out by Project" version="7.0"> <group colspan="4" > @@ -57,7 +55,6 @@ <record id="view_hr_timesheet_sign_out" model="ir.ui.view"> <field name="name">hr.sign.out.project.form</field> <field name="model">hr.sign.out.project</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Sign In/Out by Project" version="7.0"> <group colspan="4" > diff --git a/addons/hr_timesheet_invoice/hr_timesheet_invoice_view.xml b/addons/hr_timesheet_invoice/hr_timesheet_invoice_view.xml index 3ea1f23a7a8..b752ade8da0 100644 --- a/addons/hr_timesheet_invoice/hr_timesheet_invoice_view.xml +++ b/addons/hr_timesheet_invoice/hr_timesheet_invoice_view.xml @@ -4,7 +4,6 @@ <record id="account_analytic_account_form_form" model="ir.ui.view"> <field name="name">account.analytic.account.invoice.form</field> <field name="model">account.analytic.account</field> - <field name="type">form</field> <field name="priority">30</field> <field name="inherit_id" ref="analytic.view_account_analytic_account_form"/> <field name="arch" type="xml"> @@ -34,7 +33,6 @@ <record id="hr_timesheet_line_form" model="ir.ui.view"> <field name="name">hr.analytic.timesheet.form</field> <field name="model">hr.analytic.timesheet</field> - <field name="type">form</field> <field name="inherit_id" ref="hr_timesheet.hr_timesheet_line_form"/> <field name="arch" type="xml"> <xpath expr="//group[@string='Accounting']" position='after'> @@ -49,7 +47,6 @@ <record id="hr_timesheet_line_form2" model="ir.ui.view"> <field name="name">hr.analytic.timesheet.form2</field> <field name="model">hr.analytic.timesheet</field> - <field name="type">form</field> <field name="inherit_id" ref="hr_timesheet.hr_timesheet_line_form"/> <field name="arch" type="xml"> <field name="account_id" position="replace"> @@ -61,7 +58,6 @@ <record id="hr_timesheet_line_tree" model="ir.ui.view"> <field name="name">hr.analytic.timesheet.tree</field> <field name="model">hr.analytic.timesheet</field> - <field name="type">tree</field> <field name="inherit_id" ref="hr_timesheet.hr_timesheet_line_tree"/> <field name="arch" type="xml"> <field name="amount" position="after"> @@ -73,7 +69,6 @@ <record id="hr_timesheet_line_tree2" model="ir.ui.view"> <field name="name">hr.analytic.timesheet.tree2</field> <field name="model">hr.analytic.timesheet</field> - <field name="type">tree</field> <field name="inherit_id" ref="hr_timesheet.hr_timesheet_line_tree"/> <field name="arch" type="xml"> <field name="account_id" position="replace"> @@ -86,7 +81,6 @@ <record id="view_account_analytic_line_search_inherit" model="ir.ui.view"> <field name="name">account.analytic.line.search.to_invoice</field> <field name="model">account.analytic.line</field> - <field name="type">search</field> <field name="inherit_id" ref="account.view_account_analytic_line_filter"/> <field name="arch" type="xml"> <xpath expr="//filter[@name='others']" position="after"> @@ -100,7 +94,6 @@ <record id="view_account_analytic_line_tree_inherit" model="ir.ui.view"> <field name="name">account.analytic.line.tree.to_invoice</field> <field name="model">account.analytic.line</field> - <field name="type">tree</field> <field name="inherit_id" ref="account.view_account_analytic_line_tree"/> <field name="arch" type="xml"> <field name="account_id" position="after"> @@ -111,7 +104,6 @@ <record id="view_account_analytic_line_form_inherit" model="ir.ui.view"> <field name="name">account.analytic.line.form.to_invoice</field> <field name="model">account.analytic.line</field> - <field name="type">form</field> <field name="inherit_id" ref="account.view_account_analytic_line_form"/> <field name="arch" type="xml"> <field name="amount" position="before"> @@ -149,7 +141,6 @@ <record id="view_hr_timesheet_invoice_factor_search" model="ir.ui.view"> <field name="name">hr_timesheet_invoice.factor.search</field> <field name="model">hr_timesheet_invoice.factor</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Type of invoicing"> <field name="name" string="Type of invoicing"/> @@ -159,7 +150,6 @@ <record id="view_hr_timesheet_invoice_factor_form" model="ir.ui.view"> <field name="name">hr_timesheet_invoice.factor.form</field> <field name="model">hr_timesheet_invoice.factor</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Type of invoicing" version="7.0"> <group col="4"> @@ -173,7 +163,6 @@ <record id="view_hr_timesheet_invoice_factor_tree" model="ir.ui.view"> <field name="name">hr_timesheet_invoice.factor.tree</field> <field name="model">hr_timesheet_invoice.factor</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Types of invoicing"> <field name="name"/> diff --git a/addons/hr_timesheet_invoice/report/hr_timesheet_invoice_report_view.xml b/addons/hr_timesheet_invoice/report/hr_timesheet_invoice_report_view.xml index 5048f2c9193..2d4b0debde8 100644 --- a/addons/hr_timesheet_invoice/report/hr_timesheet_invoice_report_view.xml +++ b/addons/hr_timesheet_invoice/report/hr_timesheet_invoice_report_view.xml @@ -10,7 +10,6 @@ <record id="view_timesheet_line_graph" model="ir.ui.view"> <field name="name">report.timesheet.line.graph</field> <field name="model">report.timesheet.line</field> - <field name="type">graph</field> <field name="arch" type="xml"> <graph string="Timesheet Line" type="bar"> <field name="account_id" groups="analytic.group_analytic_accounting"/> @@ -23,7 +22,6 @@ <record id="view_timesheet_line_tree" model="ir.ui.view"> <field name="name">report.timesheet.line.tree</field> <field name="model">report.timesheet.line</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Timesheet Line"> <field name="date" invisible="1"/> @@ -43,7 +41,6 @@ <record id="view_timesheet_line_search" model="ir.ui.view"> <field name="name">report.timesheet.line.search</field> <field name="model">report.timesheet.line</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Timesheet by user"> <filter icon="terp-personal" string="Non Assigned timesheets to users" help="Non Assigned timesheets to users" domain="[('user_id','=',False)]"/> @@ -82,7 +79,6 @@ <record id="view_timesheet_user_graph" model="ir.ui.view"> <field name="name">report_timesheet.user.graph</field> <field name="model">report_timesheet.user</field> - <field name="type">graph</field> <field name="arch" type="xml"> <graph string="Timesheet by user" type="bar"> <field name="name"/> @@ -95,7 +91,6 @@ <record id="view_timesheet_user_form" model="ir.ui.view"> <field name="name">report_timesheet.timesheet.user.form</field> <field name="model">report_timesheet.user</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Timesheet by user"> <field name="name"/> @@ -108,7 +103,6 @@ <record id="view_timesheet_user_tree" model="ir.ui.view"> <field name="name">report_timesheet.timesheet.user.tree</field> <field name="model">report_timesheet.user</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Timesheet by user"> <field name="name"/> @@ -123,7 +117,6 @@ <record id="view_timesheet_account_date_graph_account" model="ir.ui.view"> <field name="name">report_timesheet.account.date.graph</field> <field name="model">report_timesheet.account.date</field> - <field name="type">graph</field> <field name="arch" type="xml"> <graph orientation="horizontal" string="Daily timesheet per account" type="bar"> <field name="name"/> @@ -136,7 +129,6 @@ <record id="view_timesheet_user_search" model="ir.ui.view"> <field name="name">report_timesheet.timesheet.user.search</field> <field name="model">report_timesheet.user</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Timesheet by user"> <field name="name" string="Timesheet by users"/> @@ -160,7 +152,6 @@ <record id="view_timesheet_invoice_graph" model="ir.ui.view"> <field name="name">report_timesheet.invoice.graph</field> <field name="model">report_timesheet.invoice</field> - <field name="type">graph</field> <field name="arch" type="xml"> <graph string="Timesheet by invoice"> <field name="account_id" groups="analytic.group_analytic_accounting"/> @@ -172,7 +163,6 @@ <record id="view_timesheet_invoice_form" model="ir.ui.view"> <field name="name">report_timesheet.timesheet.invoice.form</field> <field name="model">report_timesheet.invoice</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Timesheet by invoice"> <field name="account_id" groups="analytic.group_analytic_accounting"/> @@ -185,7 +175,6 @@ <record id="view_timesheet_invoice_search" model="ir.ui.view"> <field name="name">report_timesheet.timesheet.invoice.search</field> <field name="model">report_timesheet.invoice</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Timesheet by invoice"> <field name="account_id" groups="analytic.group_analytic_accounting"/> @@ -198,7 +187,6 @@ <record id="view_timesheet_invoice_tree" model="ir.ui.view"> <field name="name">report_timesheet.timesheet.invoice.tree</field> <field name="model">report_timesheet.invoice</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Timesheets to invoice"> <field name="user_id"/> @@ -224,7 +212,6 @@ <record id="view_timesheet_account_date_tree" model="ir.ui.view"> <field name="name">report_timesheet.account.date.tree</field> <field name="model">report_timesheet.account.date</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Daily timesheet per account"> <field name="name"/> @@ -238,7 +225,6 @@ <record id="view_timesheet_account_date_graph" model="ir.ui.view"> <field name="name">report_timesheet.account.date.graph</field> <field name="model">report_timesheet.account.date</field> - <field name="type">graph</field> <field name="arch" type="xml"> <graph string="Daily timesheet per account"> <field name="account_id" groups="analytic.group_analytic_accounting"/> @@ -250,7 +236,6 @@ <record id="view_timesheet_account_date_form" model="ir.ui.view"> <field name="name">report_timesheet.timesheet.account.date.form</field> <field name="model">report_timesheet.account.date</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Daily timesheet by account"> <field name="name"/> @@ -265,7 +250,6 @@ <record id="view_timesheet_account_date_search" model="ir.ui.view"> <field name="name">report_timesheet.timesheet.account.date.search</field> <field name="model">report_timesheet.account.date</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Daily timesheet by account"> <field name="name" string="Timesheet by account"/> @@ -290,7 +274,6 @@ <record id="view_timesheet_account_tree" model="ir.ui.view"> <field name="name">report_timesheet.account.tree</field> <field name="model">report_timesheet.account</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Timesheet per account"> <field name="name"/> @@ -304,7 +287,6 @@ <record id="view_timesheet_account_graph" model="ir.ui.view"> <field name="name">report_timesheet.account.graph</field> <field name="model">report_timesheet.account</field> - <field name="type">graph</field> <field name="arch" type="xml"> <graph string="Timesheet per account"> <field name="account_id" groups="analytic.group_analytic_accounting"/> @@ -316,7 +298,6 @@ <record id="view_timesheet_account_form" model="ir.ui.view"> <field name="name">report_timesheet.timesheet.account.form</field> <field name="model">report_timesheet.account</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Timesheet by account"> <field name="name"/> @@ -331,7 +312,6 @@ <record id="view_timesheet_account_search" model="ir.ui.view"> <field name="name">report_timesheet.timesheet.account.search</field> <field name="model">report_timesheet.account</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Timesheet by account"> <field name="name" string="Timesheet by account"/> diff --git a/addons/hr_timesheet_invoice/report/report_analytic.py b/addons/hr_timesheet_invoice/report/report_analytic.py index 0ff758189ff..469e13e71b6 100644 --- a/addons/hr_timesheet_invoice/report/report_analytic.py +++ b/addons/hr_timesheet_invoice/report/report_analytic.py @@ -72,7 +72,7 @@ class report_account_analytic_line_to_invoice(osv.osv): 'account_id':fields.many2one('account.analytic.account', 'Analytic account', readonly=True), 'product_uom_id':fields.many2one('product.uom', 'Unit of Measure', readonly=True), 'unit_amount': fields.float('Units', readonly=True), - 'sale_price': fields.float('Sale price', readonly=True, digits_compute=dp.get_precision('Sale Price')), + 'sale_price': fields.float('Sale price', readonly=True, digits_compute=dp.get_precision('Product Price')), 'amount': fields.float('Amount', readonly=True, digits_compute=dp.get_precision('Account')), 'month':fields.selection([('01','January'), ('02','February'), ('03','March'), ('04','April'), ('05','May'), ('06','June'), ('07','July'), ('08','August'), ('09','September'), ('10','October'), ('11','November'), ('12','December')],'Month',readonly=True), diff --git a/addons/hr_timesheet_invoice/report/report_analytic_view.xml b/addons/hr_timesheet_invoice/report/report_analytic_view.xml index 6dbbb85aea9..9e0b8dd59ee 100644 --- a/addons/hr_timesheet_invoice/report/report_analytic_view.xml +++ b/addons/hr_timesheet_invoice/report/report_analytic_view.xml @@ -5,7 +5,6 @@ <record id="view_analytic_account_close_form" model="ir.ui.view"> <field name="name">report.analytic.account.close.form</field> <field name="model">report.analytic.account.close</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Expired analytic accounts"> <field name="name" groups="analytic.group_analytic_accounting"/> @@ -23,7 +22,6 @@ <record id="view_analytic_account_close_tree" model="ir.ui.view"> <field name="name">report.analytic.account.close.tree</field> <field name="model">report.analytic.account.close</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Expired analytic accounts"> <field name="name" groups="analytic.group_analytic_accounting"/> @@ -40,7 +38,6 @@ <record id="view_analytic_account_graph" model="ir.ui.view"> <field name="name">report.analytic.account.close.graph</field> <field name="model">report.analytic.account.close</field> - <field name="type">graph</field> <field name="arch" type="xml"> <graph string="Expired analytic accounts" type="bar"> <field name="partner_id"/> @@ -61,7 +58,6 @@ <record id="account_analytic_line_to_invoice_view_form" model="ir.ui.view"> <field name="name">report.account.analytic.line.to.invoice</field> <field name="model">report.account.analytic.line.to.invoice</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Analytic Lines to Invoice"> <field name="name"/> @@ -80,7 +76,6 @@ <record id="account_analytic_line_to_invoice_view_tree" model="ir.ui.view"> <field name="name">report.account.analytic.line.to.invoice</field> <field name="model">report.account.analytic.line.to.invoice</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Analytic Lines to Invoice"> <field name="name"/> @@ -98,7 +93,6 @@ <record id="account_analytic_line_to_invoice_view_graph" model="ir.ui.view"> <field name="name">report.account.analytic.line.to.invoice.graph</field> <field name="model">report.account.analytic.line.to.invoice</field> - <field name="type">graph</field> <field name="arch" type="xml"> <graph string="Analytic Lines to Invoice" type="bar"> <field name="name"/> @@ -110,7 +104,6 @@ <record id="account_analytic_line_to_invoice_view_filter" model="ir.ui.view"> <field name="name">report.account.analytic.line.to.invoice.select</field> <field name="model">report.account.analytic.line.to.invoice</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Analytic Lines to Invoice"> <field name="name" string="Analytic Lines"/> diff --git a/addons/hr_timesheet_invoice/wizard/hr_timesheet_analytic_profit_view.xml b/addons/hr_timesheet_invoice/wizard/hr_timesheet_analytic_profit_view.xml index f0679de8d95..65cbe360598 100644 --- a/addons/hr_timesheet_invoice/wizard/hr_timesheet_analytic_profit_view.xml +++ b/addons/hr_timesheet_invoice/wizard/hr_timesheet_analytic_profit_view.xml @@ -5,7 +5,6 @@ <record id="view_hr_timesheet_analytic_profit" model="ir.ui.view"> <field name="name">Timesheet Profit</field> <field name="model">hr.timesheet.analytic.profit</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Timesheet Profit" version="7.0"> <sheet> diff --git a/addons/hr_timesheet_invoice/wizard/hr_timesheet_invoice_create_final_view.xml b/addons/hr_timesheet_invoice/wizard/hr_timesheet_invoice_create_final_view.xml index 85d9538cc5b..a0a0ceea2ac 100644 --- a/addons/hr_timesheet_invoice/wizard/hr_timesheet_invoice_create_final_view.xml +++ b/addons/hr_timesheet_invoice/wizard/hr_timesheet_invoice_create_final_view.xml @@ -24,7 +24,6 @@ <record id="view_hr_timesheet_invoice_create_final" model="ir.ui.view"> <field name="name">hr.timesheet.invoice.create.final.form</field> <field name="model">hr.timesheet.invoice.create.final</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Invoice contract" version="7.0"> <separator string="Do you want to display work details on the invoice?" colspan="4"/> diff --git a/addons/hr_timesheet_invoice/wizard/hr_timesheet_invoice_create_view.xml b/addons/hr_timesheet_invoice/wizard/hr_timesheet_invoice_create_view.xml index 1c163a1ac0e..74d0fa1daf6 100644 --- a/addons/hr_timesheet_invoice/wizard/hr_timesheet_invoice_create_view.xml +++ b/addons/hr_timesheet_invoice/wizard/hr_timesheet_invoice_create_view.xml @@ -5,7 +5,6 @@ <record id="view_hr_timesheet_invoice_create" model="ir.ui.view"> <field name="name">hr.timesheet.invoice.create.form</field> <field name="model">hr.timesheet.invoice.create</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Create Invoice" version="7.0"> <notebook> diff --git a/addons/hr_timesheet_sheet/board_hr_timesheet_view.xml b/addons/hr_timesheet_sheet/board_hr_timesheet_view.xml index 2b165334739..145d118ceb7 100644 --- a/addons/hr_timesheet_sheet/board_hr_timesheet_view.xml +++ b/addons/hr_timesheet_sheet/board_hr_timesheet_view.xml @@ -5,7 +5,6 @@ <record id="view_hr_timesheet_sheet_graph" model="ir.ui.view"> <field name="name">hr.timesheet.sheet.sheet.graph</field> <field name="model">hr_timesheet_sheet.sheet</field> - <field name="type">graph</field> <field name="arch" type="xml"> <graph orientation="horizontal" string="Available Attendance" type="bar"> <field name="name"/> @@ -27,7 +26,6 @@ <field name="name">board.hr.timesheet.sheet.form</field> <field name="model">board.board</field> <field name="inherit_id" ref="hr.board_hr_form"/> - <field name="type">form</field> <field name="arch" type="xml"> <xpath expr="/form/board/column[2]" position="inside"> <action name="%(action_week_attendance_graph)d" string="My Total Attendance By Week"/> diff --git a/addons/hr_timesheet_sheet/hr_timesheet_sheet_view.xml b/addons/hr_timesheet_sheet/hr_timesheet_sheet_view.xml index aa81b715e55..6c4ee63cbe6 100644 --- a/addons/hr_timesheet_sheet/hr_timesheet_sheet_view.xml +++ b/addons/hr_timesheet_sheet/hr_timesheet_sheet_view.xml @@ -5,7 +5,6 @@ <record id="hr_timesheet_account_form" model="ir.ui.view"> <field name="name">hr.timesheet.account.form</field> <field name="model">hr_timesheet_sheet.sheet.account</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Timesheet by Accounts" version="7.0"> <group col="4"> @@ -20,7 +19,6 @@ <record id="hr_timesheet_account_filter" model="ir.ui.view"> <field name="name">hr.timesheet.account.filter</field> <field name="model">hr_timesheet_sheet.sheet.account</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Search Account"> <field name="name" groups="analytic.group_analytic_accounting"/> @@ -32,7 +30,6 @@ <record id="hr_timesheet_account_tree" model="ir.ui.view"> <field name="name">hr.timesheet.account.tree</field> <field name="model">hr_timesheet_sheet.sheet.account</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Timesheet by Accounts"> <field name="sheet_id"/> @@ -46,7 +43,6 @@ <record id="hr_timesheet_sheet_form" model="ir.ui.view"> <field name="name">hr.timesheet.sheet.form</field> <field name="model">hr_timesheet_sheet.sheet</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Timesheet" version="7.0"> <header> @@ -153,7 +149,6 @@ <record id="view_hr_timesheet_sheet_filter" model="ir.ui.view"> <field name="name">hr_timesheet_sheet.sheet.filter</field> <field name="model">hr_timesheet_sheet.sheet</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Search Timesheet"> <field name="date_from"/> @@ -201,7 +196,6 @@ <record id="hr_timesheet_sheet_company" model="ir.ui.view"> <field name="name">res.company.sheet</field> <field name="model">res.company</field> - <field name="type">form</field> <field name="inherit_id" ref="base.view_company_form"/> <field name="arch" type="xml"> <xpath expr="//group[@name='account_grp']" position="after"> @@ -220,7 +214,6 @@ <record id="hr_timesheet_line_form" model="ir.ui.view"> <field name="name">hr.analytic.timesheet.form</field> <field name="model">hr.analytic.timesheet</field> - <field name="type">form</field> <field name="inherit_id" ref="hr_timesheet.hr_timesheet_line_form"/> <field name="arch" type="xml"> <field name="date" position="after"> @@ -232,7 +225,6 @@ <record id="hr_timesheet_line_search" model="ir.ui.view"> <field name="name">hr.analytic.timesheet.search</field> <field name="model">hr.analytic.timesheet</field> - <field name="type">form</field> <field name="inherit_id" ref="hr_timesheet.hr_timesheet_line_search"/> <field name="arch" type="xml"> <field name="date" position="before"> @@ -248,7 +240,6 @@ <record model="ir.ui.view" id="view_hr_attendance_filter"> <field name="name">view_hr_attendance_filter</field> <field name="model">hr.attendance</field> - <field name="type">search</field> <field name="inherit_id" ref="hr_attendance.view_hr_attendance_filter" /> <field name="arch" type="xml"> <field name="employee_id" position="after"> @@ -260,7 +251,6 @@ <record id="view_attendance_form" model="ir.ui.view"> <field name="name">hr.attendance.form</field> <field name="model">hr.attendance</field> - <field name="type">form</field> <field name="inherit_id" ref="hr_attendance.view_attendance_form"/> <field name="arch" type="xml"> <field name="action_desc" position="after"> @@ -271,7 +261,6 @@ <record id="view_attendance_tree" model="ir.ui.view"> <field name="name">hr.attendance.tree</field> <field name="model">hr.attendance</field> - <field name="type">tree</field> <field name="inherit_id" ref="hr_attendance.view_attendance_tree"/> <field name="arch" type="xml"> <field name="action" position="after"> @@ -282,7 +271,6 @@ <record id="view_attendance_tree_who" model="ir.ui.view"> <field name="name">hr.attendance.tree</field> <field name="model">hr.attendance</field> - <field name="type">tree</field> <field name="inherit_id" ref="hr_attendance.view_attendance_who"/> <field name="arch" type="xml"> <field name="action" position="after"> @@ -323,7 +311,6 @@ <record id="hr_timesheet_sheet_tree_simplified" model="ir.ui.view"> <field name="name">hr.timesheet.sheet.tree</field> <field name="model">hr_timesheet_sheet.sheet</field> - <field name="type">tree</field> <field eval="10" name="priority"/> <field name="arch" type="xml"> <tree colors="blue:state == 'draft';black:state in ('confirm','new');gray:state == 'done'" string="Timesheets"> @@ -342,7 +329,6 @@ <record id="hr_timesheet_day_tree" model="ir.ui.view"> <field name="name">hr.timesheet.day.tree</field> <field name="model">hr_timesheet_sheet.sheet.day</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree colors="blue:total_difference<0.1;red:total_difference>=0.1" string="Period"> <field name="name"/> diff --git a/addons/hr_timesheet_sheet/report/hr_timesheet_report_view.xml b/addons/hr_timesheet_sheet/report/hr_timesheet_report_view.xml index 2c66c6cde56..37c40f60f6d 100644 --- a/addons/hr_timesheet_sheet/report/hr_timesheet_report_view.xml +++ b/addons/hr_timesheet_sheet/report/hr_timesheet_report_view.xml @@ -4,7 +4,6 @@ <record id="view_hr_timesheet_report_graph" model="ir.ui.view"> <field name="name">hr.timesheet.report.graph</field> <field name="model">hr.timesheet.report</field> - <field name="type">graph</field> <field name="arch" type="xml"> <graph string="Timesheet" type="bar"> <field name="user_id" /> @@ -15,7 +14,6 @@ <record id="view_hr_timesheet_report_tree" model="ir.ui.view"> <field name="name">hr.timesheet.report.tree</field> <field name="model">hr.timesheet.report</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Timesheet Analysis"> <field name="year" invisible="1"/> @@ -37,7 +35,6 @@ <record id="view_hr_timesheet_report_search" model="ir.ui.view"> <field name="name">hr.timesheet.report.search</field> <field name="model">hr.timesheet.report</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Timesheet"> <field name="account_id" groups="analytic.group_analytic_accounting"/> diff --git a/addons/hr_timesheet_sheet/report/timesheet_report_view.xml b/addons/hr_timesheet_sheet/report/timesheet_report_view.xml index 9956ed2655e..7b31f72235b 100644 --- a/addons/hr_timesheet_sheet/report/timesheet_report_view.xml +++ b/addons/hr_timesheet_sheet/report/timesheet_report_view.xml @@ -4,7 +4,6 @@ <record id="view_timesheet_report_graph" model="ir.ui.view"> <field name="name">timesheet.report.graph</field> <field name="model">timesheet.report</field> - <field name="type">graph</field> <field name="arch" type="xml"> <graph string="Timesheet" type="bar"> <field name="user_id" /> @@ -16,7 +15,6 @@ <record id="view_timesheet_report_tree" model="ir.ui.view"> <field name="name">timesheet.report.tree</field> <field name="model">timesheet.report</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree colors="blue:state == 'draft';black:state in ('confirm','new');gray:state == 'cancel'" string="Timesheet"> <field name="date_current" invisible="1"/> @@ -45,7 +43,6 @@ <record id="view_timesheet_report_search" model="ir.ui.view"> <field name="name">timesheet.report.search</field> <field name="model">timesheet.report</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Timesheet"> <filter icon="terp-document-new" string="Draft" domain="[('state','=','draft')]"/> diff --git a/addons/hr_timesheet_sheet/res_config_view.xml b/addons/hr_timesheet_sheet/res_config_view.xml index 07ad6fb135b..d265a145342 100644 --- a/addons/hr_timesheet_sheet/res_config_view.xml +++ b/addons/hr_timesheet_sheet/res_config_view.xml @@ -15,7 +15,6 @@ <record id="view_hr_timehseet_config_settings" model="ir.ui.view"> <field name="name">hr settings for timesheets</field> <field name="model">hr.config.settings</field> - <field name="type">form</field> <field name="inherit_id" ref="hr.view_human_resources_configuration"/> <field name="arch" type="xml"> <xpath expr="//div[@name='hr_timesheet']" position="after"> diff --git a/addons/hr_timesheet_sheet/wizard/hr_timesheet_current_view.xml b/addons/hr_timesheet_sheet/wizard/hr_timesheet_current_view.xml index b2dfabb310e..c982a9bbd39 100644 --- a/addons/hr_timesheet_sheet/wizard/hr_timesheet_current_view.xml +++ b/addons/hr_timesheet_sheet/wizard/hr_timesheet_current_view.xml @@ -4,7 +4,6 @@ <record id="view_hr_timesheet_current_open" model="ir.ui.view"> <field name="name">hr_timesheet_current_open.form</field> <field name="model">hr.timesheet.current.open</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="My Current Timesheet" version="7.0"> <group> diff --git a/addons/idea/idea_view.xml b/addons/idea/idea_view.xml index 4508301ca8c..eab3d03ceea 100644 --- a/addons/idea/idea_view.xml +++ b/addons/idea/idea_view.xml @@ -5,7 +5,6 @@ <record model="ir.ui.view" id="view_idea_category_search"> <field name="name">idea.category.search</field> <field name="model">idea.category</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Ideas Categories"> <field name="name" string="Category"/> @@ -17,7 +16,6 @@ <record model="ir.ui.view" id="view_idea_category_form"> <field name="name">idea.category.form</field> <field name="model">idea.category</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Category of Ideas" version="7.0"> <group> @@ -31,7 +29,6 @@ <record model="ir.ui.view" id="view_idea_category_tree"> <field name="name">idea.category.tree</field> <field name="model">idea.category</field> - <field name="type">tree</field> <field name="field_parent"></field> <field name="arch" type="xml"> <tree string="Category of ideas"> @@ -63,7 +60,6 @@ <record model="ir.ui.view" id="view_idea_idea_form"> <field name="name">idea.idea.form</field> <field name="model">idea.idea</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Idea" version="7.0"> <header> @@ -82,6 +78,7 @@ </sheet> <div class="oe_chatter"> <field name="message_ids" widget="mail_thread"/> + <field name="message_follower_ids" widget="mail_followers"/> </div> </form> </field> @@ -92,7 +89,6 @@ <record model="ir.ui.view" id="view_idea_idea_tree"> <field name="name">idea.idea.tree</field> <field name="model">idea.idea</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree colors="blue:state == 'draft';black:state in ('open','close');gray:state == 'cancel'" string="Ideas"> <field name="name"/> @@ -107,7 +103,6 @@ <record model="ir.ui.view" id="view_idea_idea_search"> <field name="name">idea.idea.search</field> <field name="model">idea.idea</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Ideas"> <field name="name" string="Idea"/> diff --git a/addons/import_google/sync_google_calendar_view.xml b/addons/import_google/sync_google_calendar_view.xml index c7f68de15a7..e44c6ea8c21 100644 --- a/addons/import_google/sync_google_calendar_view.xml +++ b/addons/import_google/sync_google_calendar_view.xml @@ -4,7 +4,6 @@ <record model="ir.ui.view" id="view_crm_meeting_form"> <field name="name">CRM - Meetings Form (Inherited)</field> <field name="model">crm.meeting</field> - <field name="type">form</field> <field name="inherit_id" ref="base_calendar.view_crm_meeting_form"/> <field name="arch" type="xml"> <field name="categ_ids" position="attributes"> diff --git a/addons/import_google/wizard/google_import_message_view.xml b/addons/import_google/wizard/google_import_message_view.xml index 250239ea10c..158aff29bf3 100644 --- a/addons/import_google/wizard/google_import_message_view.xml +++ b/addons/import_google/wizard/google_import_message_view.xml @@ -5,7 +5,6 @@ <record model="ir.ui.view" id="view_google_import_message_form"> <field name="name">google.import.message.form</field> <field name="model">google.import.message</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Import Google Data" version="7.0"> <group> diff --git a/addons/import_google/wizard/import_google_data_view.xml b/addons/import_google/wizard/import_google_data_view.xml index b8adc71f2a5..f8e110e6a5d 100644 --- a/addons/import_google/wizard/import_google_data_view.xml +++ b/addons/import_google/wizard/import_google_data_view.xml @@ -4,7 +4,6 @@ <record model="ir.ui.view" id="view_synchronize_google_contact_import_form"> <field name="name">synchronize.base.form</field> <field name="model">synchronize.google.import</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Import contacts from a google account" version="7.0"> <group colspan="4" col="4" width="430"> @@ -30,7 +29,6 @@ <record model="ir.ui.view" id="view_synchronize_google_calendar_import_form"> <field name="name">synchronize.google.calendar.form</field> <field name="model">synchronize.google.import</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Import Google Calendar Events" version="7.0"> <group colspan="4" col="4" width="320"> diff --git a/addons/import_sugarcrm/import_sugarcrm.py b/addons/import_sugarcrm/import_sugarcrm.py index 7e1ebe3c256..440a7b2b6f6 100644 --- a/addons/import_sugarcrm/import_sugarcrm.py +++ b/addons/import_sugarcrm/import_sugarcrm.py @@ -877,7 +877,7 @@ class sugar_import(import_framework): else: val['password'] = 'sugarcrm' #default password for all user #TODO needed in documentation - val['context_lang'] = self.context.get('lang','en_US') + val['lang'] = self.context.get('lang','en_US') return val def get_users_department(self, val): @@ -895,10 +895,10 @@ class sugar_import(import_framework): 'map' : { 'name': concat('first_name', 'last_name'), 'login': value('user_name', fallback='last_name'), - 'context_lang' : 'context_lang', + 'lang' : 'context_lang', 'password' : 'password', '.id' : '.id', - 'user_email' : 'email1', + 'email' : 'email1', } } @@ -964,7 +964,7 @@ class import_sugarcrm(osv.osv): } def _get_email_id(self, cr, uid, context=None): - return self.pool.get('res.users').browse(cr, uid, uid, context=context).user_email + return self.pool.get('res.users').browse(cr, uid, uid, context=context).email def _module_installed(self, cr, uid, model, context=None): module_id = self.pool.get('ir.module.module').search(cr, uid, [('name', '=', model), ('state', "=", "installed")], context=context) diff --git a/addons/import_sugarcrm/import_sugarcrm_view.xml b/addons/import_sugarcrm/import_sugarcrm_view.xml index 6ef9be1a5bd..7206233569a 100644 --- a/addons/import_sugarcrm/import_sugarcrm_view.xml +++ b/addons/import_sugarcrm/import_sugarcrm_view.xml @@ -6,7 +6,6 @@ <record model="ir.ui.view" id="view_import_sugarcrm_form"> <field name="name">import.sugarcrm.form</field> <field name="model">import.sugarcrm</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Import Data From SugarCRM" version="7.0"> <header> diff --git a/addons/import_sugarcrm/wizard/import_message_view.xml b/addons/import_sugarcrm/wizard/import_message_view.xml index 6f1f3fad3c1..cae8e9cabda 100644 --- a/addons/import_sugarcrm/wizard/import_message_view.xml +++ b/addons/import_sugarcrm/wizard/import_message_view.xml @@ -6,7 +6,6 @@ <record model="ir.ui.view" id="view_import_message_form"> <field name="name">import.message.form</field> <field name="model">import.message</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Import Message" version="7.0"> <label colspan="4" nolabel="1" string="Data are importing, the process is running in the background, an email will be sent to the given email address if it was defined."/> diff --git a/addons/knowledge/res_config_view.xml b/addons/knowledge/res_config_view.xml index b1b76dd1d0b..ec7f51af2b4 100644 --- a/addons/knowledge/res_config_view.xml +++ b/addons/knowledge/res_config_view.xml @@ -5,7 +5,6 @@ <record id="view_knowledge_configuration" model="ir.ui.view"> <field name="name">Configure Knowledge</field> <field name="model">knowledge.config.settings</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Configure Knowledge" class= "oe_form_configuration" version="7.0"> <header> diff --git a/addons/l10n_be/wizard/l10n_be_account_vat_declaration_view.xml b/addons/l10n_be/wizard/l10n_be_account_vat_declaration_view.xml index 30ff9a9ed8f..b533d569aef 100644 --- a/addons/l10n_be/wizard/l10n_be_account_vat_declaration_view.xml +++ b/addons/l10n_be/wizard/l10n_be_account_vat_declaration_view.xml @@ -5,7 +5,6 @@ <record id="view_vat_declaration" model="ir.ui.view"> <field name="name">Vat Declaraion</field> <field name="model">l1on_be.vat.declaration</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Periodical VAT Declaration" version="7.0"> <group> @@ -33,7 +32,6 @@ <record id="view_vat_save" model="ir.ui.view"> <field name="name">Save XML</field> <field name="model">l1on_be.vat.declaration</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Save xml" version="7.0"> <label string="Save the File with '.xml' extension."/> diff --git a/addons/l10n_be/wizard/l10n_be_partner_vat_listing.xml b/addons/l10n_be/wizard/l10n_be_partner_vat_listing.xml index 1c48bb53a77..563396c8a03 100644 --- a/addons/l10n_be/wizard/l10n_be_partner_vat_listing.xml +++ b/addons/l10n_be/wizard/l10n_be_partner_vat_listing.xml @@ -4,7 +4,6 @@ <record id="l10n_be.view_partner_vat_listing" model="ir.ui.view"> <field name="name">Partner VAT Listing</field> <field name="model">partner.vat</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Partner VAT Listing" version="7.0"> <header> @@ -38,7 +37,6 @@ <record id="l10n_be.view_vat_listing" model="ir.ui.view"> <field name="name">Vat Listing</field> <field name="model">partner.vat.list</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Annual Listing of VAT-Subjected Customers"> <notebook colspan="4"> @@ -63,7 +61,6 @@ <record id="l10n_be.view_vat_listing_result" model="ir.ui.view"> <field name="name">VAT List - XML File Created</field> <field name="model">partner.vat.list</field> - <field name="type">form</field> <field name="priority" eval="1"/> <field name="arch" type="xml"> <form string="XML File has been Created." version="7.0"> @@ -84,7 +81,6 @@ <record id="l10n_be.view_vat_listing_form" model="ir.ui.view"> <field name="name">step.vat.listing</field> <field name="model">vat.listing.clients</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="VAT listing"> <field name="name"/> @@ -98,7 +94,6 @@ <record id="l10n_be.view_vat_listing_tree" model="ir.ui.view"> <field name="name">step.vat.listing</field> <field name="model">vat.listing.clients</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="VAT listing"> <field name="name"/> diff --git a/addons/l10n_be/wizard/l10n_be_vat_intra_view.xml b/addons/l10n_be/wizard/l10n_be_vat_intra_view.xml index f0bdb2a2a3f..7054c155695 100644 --- a/addons/l10n_be/wizard/l10n_be_vat_intra_view.xml +++ b/addons/l10n_be/wizard/l10n_be_vat_intra_view.xml @@ -5,7 +5,6 @@ <record id="view_vat_intra" model="ir.ui.view"> <field name="name">Partner VAT intra</field> <field name="model">partner.vat.intra</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Partner VAT intra" version="7.0"> <group> @@ -40,7 +39,6 @@ <record id="view_vat_intra_save" model="ir.ui.view"> <field name="name">Partner VAT intra Save</field> <field name="model">partner.vat.intra</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Save XML" version="7.0"> <separator string="Note: "/> diff --git a/addons/l10n_be_hr_payroll/l10n_be_hr_payroll_view.xml b/addons/l10n_be_hr_payroll/l10n_be_hr_payroll_view.xml index 79c7c08ffca..893a977e62c 100644 --- a/addons/l10n_be_hr_payroll/l10n_be_hr_payroll_view.xml +++ b/addons/l10n_be_hr_payroll/l10n_be_hr_payroll_view.xml @@ -4,7 +4,6 @@ <record id="hr_contract_form_l10n_be_inherit" model="ir.ui.view"> <field name="name">hr.contract.form.inherit</field> <field name="model">hr.contract</field> - <field name="type">form</field> <field name="priority">20</field> <field name="inherit_id" ref="hr_contract.hr_contract_view_form"/> <field name="arch" type="xml"> @@ -28,7 +27,6 @@ <!-- <record id="view_employee_marital_required_form" model="ir.ui.view"> <field name="name">hr.employee.inherit.form</field> <field name="model">hr.employee</field> - <field name="type">form</field> <field name="priority">25</field> <field name="inherit_id" ref="hr.view_employee_form"/> <field name="arch" type="xml"> diff --git a/addons/l10n_be_invoice_bba/account_invoice_view.xml b/addons/l10n_be_invoice_bba/account_invoice_view.xml index bf1cf96f537..c344f1e9b6f 100644 --- a/addons/l10n_be_invoice_bba/account_invoice_view.xml +++ b/addons/l10n_be_invoice_bba/account_invoice_view.xml @@ -6,7 +6,6 @@ <record id="customer_invoice_bbacomm_form" model="ir.ui.view"> <field name="name">account.invoice.form.inherit</field> <field name="model">account.invoice</field> - <field name="type">form</field> <field name="inherit_id" ref="account.invoice_form"/> <field name="arch" type="xml"> <field name="payment_term" position="after"> diff --git a/addons/l10n_be_invoice_bba/partner_view.xml b/addons/l10n_be_invoice_bba/partner_view.xml index d78df2d7a42..f0b516fb376 100644 --- a/addons/l10n_be_invoice_bba/partner_view.xml +++ b/addons/l10n_be_invoice_bba/partner_view.xml @@ -6,7 +6,6 @@ <record id="view_partner_inv_comm_type_form" model="ir.ui.view"> <field name="name">res.partner.inv_comm_type.form.inherit</field> <field name="model">res.partner</field> - <field name="type">form</field> <field name="inherit_id" ref="base.view_partner_form"/> <field name="arch" type="xml"> <field name="last_reconciliation_date" position="after"> diff --git a/addons/l10n_br/l10n_br_view.xml b/addons/l10n_br/l10n_br_view.xml index 65fcd0c401b..2bce1362302 100644 --- a/addons/l10n_br/l10n_br_view.xml +++ b/addons/l10n_br/l10n_br_view.xml @@ -5,7 +5,6 @@ <record model="ir.ui.view" id="view_l10n_br_cst_template_form"> <field name="name">l10n_br.cst.form</field> <field name="model">l10n_br_account.cst.template</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Tax Situation Code Template" version="7.0"> <group col="4"> @@ -20,7 +19,6 @@ <record model="ir.ui.view" id="view_l10n_br_cst_template_tree"> <field name="name">l10n_br.cst.tree</field> <field name="model">l10n_br_account.cst.template</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Tax Situation Code Template"> <field name="code"/> @@ -42,7 +40,6 @@ <record model="ir.ui.view" id="view_l10n_br_cst_form"> <field name="name">l10n_br.cst.form</field> <field name="model">l10n_br_account.cst</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Tax Situation Code" version="7.0"> <group col="4"> @@ -57,7 +54,6 @@ <record model="ir.ui.view" id="view_l10n_br_cst_tree"> <field name="name">l10n_br.cst.tree</field> <field name="model">l10n_br_account.cst</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Tax Situation Code"> <field name="code"/> diff --git a/addons/l10n_ch/account_invoice.xml b/addons/l10n_ch/account_invoice.xml index 353f695bc8e..21d421ca40c 100644 --- a/addons/l10n_ch/account_invoice.xml +++ b/addons/l10n_ch/account_invoice.xml @@ -4,7 +4,6 @@ <record model="ir.ui.view" id="invoice_supplier_form6"> <field name="name">account.invoice.supplier.form.inherit</field> <field name="model">account.invoice</field> - <field name="type">form</field> <field name="inherit_id" ref="account.invoice_supplier_form"/> <field name="arch" type="xml"> <field name="partner_id" position="replace"> @@ -18,7 +17,6 @@ <record model="ir.ui.view" id="invoice_supplier_form8"> <field name="name">account.invoice.supplier.form.inherit</field> <field name="model">account.invoice</field> - <field name="type">form</field> <field name="inherit_id" ref="account.invoice_supplier_form"/> <field name="priority" eval="18"/> <field name="arch" type="xml"> @@ -32,7 +30,6 @@ <record model="ir.ui.view" id="invoice_form"> <field name="name">account.invoice.form.inherit</field> <field name="model">account.invoice</field> - <field name="type">form</field> <field name="inherit_id" ref="account.invoice_form"/> <field name="arch" type="xml"> <field name="partner_bank_id" position="replace"> diff --git a/addons/l10n_ch/bank_view.xml b/addons/l10n_ch/bank_view.xml index 0b9dab471ed..da1badd7fe8 100644 --- a/addons/l10n_ch/bank_view.xml +++ b/addons/l10n_ch/bank_view.xml @@ -5,7 +5,6 @@ <record model="ir.ui.view" id="view_res_bank_form"> <field name="name">res.bank.form</field> <field name="model">res.bank</field> - <field name="type">form</field> <field name="inherit_id" ref="base.view_res_bank_form"/> <field name="arch" type="xml"> <field name="name" position="after"> @@ -21,7 +20,6 @@ <record model="ir.ui.view" id="l10nch_view_res_bank_tree"> <field name="name">res.bank.tree</field> <field name="model">res.bank</field> - <field name="type">tree</field> <field name="inherit_id" ref="base.view_res_bank_tree"/> <field name="arch" type="xml"> <field name="name" position="after"> @@ -37,7 +35,6 @@ <record model="ir.ui.view" id="l10nch_view_res_partner_bank_add_groups"> <field name="name">res.partner_bank.form.hide.f2</field> <field name="model">res.partner</field> - <field name="type">form</field> <field name="inherit_id" ref="account.view_partner_property_form"/> <field name="arch" type="xml"> <field name="state" position="after"> @@ -67,7 +64,6 @@ <record model="ir.ui.view" id="l10nch_view_res_partner_bank_from_invoice"> <field name="name">res.partner_bank.form.hide.frominvoice</field> <field name="model">res.partner.bank</field> - <field name="type">form</field> <field name="inherit_id" ref="base.view_partner_bank_form"/> <field name="arch" type="xml"> <field name="state" position="after"> @@ -108,7 +104,6 @@ <field name="name">res.partner.form.bank_details.list</field> <field name="model">res.partner</field> <field name="inherit_id" ref="account.view_partner_property_form"/> - <field name="type">form</field> <field name="arch" type="xml"> <xpath expr="//field[@name='bank_ids']/tree/field[@name='acc_number']" position="before"> <field name="state" /> @@ -123,7 +118,6 @@ <field name="name">res.partner.bank.tree.from_invoice</field> <field name="model">res.partner.bank</field> <field name="inherit_id" ref="base.view_partner_bank_tree"/> - <field name="type">tree</field> <field name="arch" type="xml"> <field name="acc_number" position="before"> <field name="state" /> diff --git a/addons/l10n_ch/company_view.xml b/addons/l10n_ch/company_view.xml index 108982526b6..7b14d54330b 100644 --- a/addons/l10n_ch/company_view.xml +++ b/addons/l10n_ch/company_view.xml @@ -4,7 +4,6 @@ <record model="ir.ui.view" id="company_form_view"> <field name="name">res.company.form.inherit.bvr</field> <field name="model">res.company</field> - <field name="type">form</field> <field name="inherit_id" ref="base.view_company_form"/> <field name="arch" type="xml"> <xpath expr="//notebook" position="inside"> diff --git a/addons/l10n_ch/wizard/bvr_import_view.xml b/addons/l10n_ch/wizard/bvr_import_view.xml index 18ee44efcf9..721663f26cf 100644 --- a/addons/l10n_ch/wizard/bvr_import_view.xml +++ b/addons/l10n_ch/wizard/bvr_import_view.xml @@ -5,7 +5,6 @@ <record id="bvr_import_view" model="ir.ui.view"> <field name="name">BVR Import Wizard</field> <field name="model">bvr.import.wizard</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="BVR Import" version="7.0"> <group> @@ -33,7 +32,6 @@ <record model="ir.ui.view" id="view_bank_statement_form_bvr"> <field name="name">account.bank.statement.form.inherit</field> <field name="model">account.bank.statement</field> - <field name="type">form</field> <field name="inherit_id" ref="account.view_bank_statement_form"/> <field name="arch" type="xml"> <xpath expr="//div[@name='import_buttons']" position="inside"> diff --git a/addons/l10n_ch/wizard/create_dta_view.xml b/addons/l10n_ch/wizard/create_dta_view.xml index 7e9d5894dfc..d75567256b0 100644 --- a/addons/l10n_ch/wizard/create_dta_view.xml +++ b/addons/l10n_ch/wizard/create_dta_view.xml @@ -5,7 +5,6 @@ <record id="dta_create_view" model="ir.ui.view"> <field name="name">Create DTA</field> <field name="model">create.dta.wizard</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="DTA file creation - Results" version="7.0"> <group> diff --git a/addons/l10n_fr/l10n_fr_view.xml b/addons/l10n_fr/l10n_fr_view.xml index 793cb7de813..660138734b3 100755 --- a/addons/l10n_fr/l10n_fr_view.xml +++ b/addons/l10n_fr/l10n_fr_view.xml @@ -5,7 +5,6 @@ <record id="res_company_form_l10n_fr" model="ir.ui.view"> <field name="name">res.company.form.l10n.fr</field> <field name="model">res.company</field> - <field name="type">form</field> <field name="priority">20</field> <field name="inherit_id" ref="base.view_company_form"/> <field name="arch" type="xml"> diff --git a/addons/l10n_fr/wizard/fr_report_bilan_view.xml b/addons/l10n_fr/wizard/fr_report_bilan_view.xml index f5358d9dd42..d5f9463bb3f 100644 --- a/addons/l10n_fr/wizard/fr_report_bilan_view.xml +++ b/addons/l10n_fr/wizard/fr_report_bilan_view.xml @@ -5,7 +5,6 @@ <record id="bilan_report_view" model="ir.ui.view"> <field name="name">Bilan Report</field> <field name="model">account.bilan.report</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Bilan Report" version="7.0"> <group> diff --git a/addons/l10n_fr/wizard/fr_report_compute_resultant_view.xml b/addons/l10n_fr/wizard/fr_report_compute_resultant_view.xml index 9d9b3b91c71..355c9e2a8fc 100644 --- a/addons/l10n_fr/wizard/fr_report_compute_resultant_view.xml +++ b/addons/l10n_fr/wizard/fr_report_compute_resultant_view.xml @@ -5,7 +5,6 @@ <record id="cdr_report_view" model="ir.ui.view"> <field name="name">Compte de resultat Report</field> <field name="model">account.cdr.report</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string='Compte de resultat' version="7.0"> <group> diff --git a/addons/l10n_fr_hr_payroll/l10n_fr_hr_payroll_view.xml b/addons/l10n_fr_hr_payroll/l10n_fr_hr_payroll_view.xml index eb407917d81..755c7d5451f 100755 --- a/addons/l10n_fr_hr_payroll/l10n_fr_hr_payroll_view.xml +++ b/addons/l10n_fr_hr_payroll/l10n_fr_hr_payroll_view.xml @@ -6,7 +6,6 @@ <record id="res_company_form_l10n_fr_payroll" model="ir.ui.view"> <field name="name">res.company.form.l10n.fr.payroll</field> <field name="model">res.company</field> - <field name="type">form</field> <field name="priority">20</field> <field name="inherit_id" ref="base.view_company_form"/> <field name="arch" type="xml"> @@ -28,7 +27,6 @@ <record id="hr_contract_view_form_l10n_fr_payroll" model="ir.ui.view"> <field name="name">hr.contract.view.form.l10n.fr.payroll</field> <field name="model">hr.contract</field> - <field name="type">form</field> <field name="priority">20</field> <field name="inherit_id" ref="hr_payroll.hr_contract_form_inherit"/> <field name="arch" type="xml"> @@ -43,7 +41,6 @@ <record id="hr_payslip_form_l10n_fr_payroll" model="ir.ui.view"> <field name="name">hr.payslip.form.l10n.fr.payroll</field> <field name="model">hr.payslip</field> - <field name="type">form</field> <field name="priority">20</field> <field name="inherit_id" ref="hr_payroll.view_hr_payslip_form"/> <field name="arch" type="xml"> diff --git a/addons/l10n_fr_rib/bank_view.xml b/addons/l10n_fr_rib/bank_view.xml index 627c2eacf04..a25867ffa6a 100644 --- a/addons/l10n_fr_rib/bank_view.xml +++ b/addons/l10n_fr_rib/bank_view.xml @@ -6,7 +6,6 @@ <field name="name">res.partner.form.rib1.inherit</field> <field name="model">res.partner</field> <field name="inherit_id" ref="account.view_partner_property_form" /> - <field name="type">form</field> <field name="arch" type="xml"> <data> <xpath expr="//field[@name='bank_ids']/form/field[@name='acc_number']" position="before"> @@ -29,7 +28,6 @@ <field name="name">res.partner.bank.form.rib.inherit</field> <field name="model">res.partner.bank</field> <field name="inherit_id" ref="base.view_partner_bank_form" /> - <field name="type">form</field> <field name="arch" type="xml"> <field name="acc_number" position="before"> <field name="bank_code" /> @@ -47,7 +45,6 @@ <field name="name">res.partner.bank.tree.rib.inherit</field> <field name="model">res.partner.bank</field> <field name="inherit_id" ref="base.view_partner_bank_tree" /> - <field name="type">tree</field> <field name="arch" type="xml"> <field name="acc_number" position="after"> <field name="rib_acc_number" /> @@ -60,7 +57,6 @@ <field name="name">res.bank.form.rib.inherit</field> <field name="model">res.bank</field> <field name="inherit_id" ref="base.view_res_bank_form" /> - <field name="type">form</field> <field name="arch" type="xml"> <field name="bic" position="before"> <field name="rib_code" /> diff --git a/addons/l10n_lu/wizard/print_vat_view.xml b/addons/l10n_lu/wizard/print_vat_view.xml index 1f60096e815..80f5312e500 100644 --- a/addons/l10n_lu/wizard/print_vat_view.xml +++ b/addons/l10n_lu/wizard/print_vat_view.xml @@ -4,7 +4,6 @@ <record id="vat_report_view" model="ir.ui.view"> <field name="name">VAT Declaration Report</field> <field name="model">vat.declaration.report</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Print Tax Statements" version="7.0"> <group col="4"> diff --git a/addons/l10n_ro/partner_view.xml b/addons/l10n_ro/partner_view.xml index d5862ce5247..448f9b49639 100644 --- a/addons/l10n_ro/partner_view.xml +++ b/addons/l10n_ro/partner_view.xml @@ -5,7 +5,6 @@ <field name="name">res.partner.form.ro</field> <field name="inherit_id" ref="base_vat.view_partner_form"/> <field name="model">res.partner</field> - <field name="type">form</field> <field name="arch" type="xml"> <field name="vat" position="after"> <field name="nrc"/> diff --git a/addons/l10n_uk/l10n_uk_wizard.xml b/addons/l10n_uk/l10n_uk_wizard.xml index 7640dee6f56..cb947163ab3 100644 --- a/addons/l10n_uk/l10n_uk_wizard.xml +++ b/addons/l10n_uk/l10n_uk_wizard.xml @@ -5,7 +5,6 @@ <record id="view_wizard_multi_chart_uk" model="ir.ui.view">
<field name="name">Generate Chart of Accounts from a Chart Template</field>
<field name="model">wizard.multi.charts.accounts</field>
- <field name="type">form</field>
<field name="inherit_id" ref="account.view_wizard_multi_chart"/>
<field name="arch" type="xml">
<data>
diff --git a/addons/lunch/lunch_view.xml b/addons/lunch/lunch_view.xml index d953dfbd1a9..bf438a538f9 100644 --- a/addons/lunch/lunch_view.xml +++ b/addons/lunch/lunch_view.xml @@ -23,7 +23,7 @@ <field name="name">Order</field> <field name="model">lunch.order</field> <field name="arch" type="xml"> - <form version="7.0"> + <form string="Lunch Order" version="7.0"> <header> <button name="%(action_lunch_order_confirm)d" string="Confirm Order" type="action" states="draft" class="oe_highlight"/> <button name="%(action_lunch_order_cancel)d" string="Cancel Order" type="action" states="confirmed" /> @@ -53,7 +53,6 @@ <record model="ir.ui.view" id="view_lunch_order_tree"> <field name="name">Order</field> <field name="model">lunch.order</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree colors="blue:state == 'draft';black:state == 'confirmed'" string="Order"> <field name="date"/> @@ -72,7 +71,6 @@ <record id="view_lunch_order_filter" model="ir.ui.view"> <field name="name">lunch.order.list.select</field> <field name="model">lunch.order</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Search Lunch Order"> <field name="date"/> @@ -119,7 +117,6 @@ <record model="ir.ui.view" id="view_lunch_cashbox_tree"> <field name="name">Cashboxes</field> <field name="model">lunch.cashbox</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Cashboxes" colors="red:sum_remain<=0"> <field name="name"/> @@ -167,7 +164,6 @@ <record model="ir.ui.view" id="view_lunch_cashmove_tree"> <field name="name">CashMove</field> <field name="model">lunch.cashmove</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="CashMove" editable="top"> <field name="create_date"/> @@ -184,7 +180,6 @@ <record id="view_lunch_cashmove_filter" model="ir.ui.view"> <field name="name">lunch.cashmove.list.select</field> <field name="model">lunch.cashmove</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Search CashMove"> <field name="create_date"/> @@ -230,7 +225,6 @@ <record model="ir.ui.view" id="view_lunch_category_tree"> <field name="name">Category</field> <field name="model">lunch.category</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Order"> <field name="name"/> @@ -249,7 +243,6 @@ <record model="ir.ui.view" id="view_lunch_product_form"> <field name="name">Products</field> - <field name="type">form</field> <field name="model">lunch.product</field> <field name="arch" type="xml"> <form string="Products" version="7.0"> @@ -275,7 +268,6 @@ <record model="ir.ui.view" id="view_lunch_product_tree"> <field name="name">Products</field> <field name="model">lunch.product</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Products"> <field name="name"/> @@ -291,7 +283,6 @@ <record model="ir.ui.view" id="view_lunch_product_search"> <field name="name">Products</field> <field name="model">lunch.product</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Products"> <field name="name" string="Product"/> @@ -328,7 +319,6 @@ <record model="ir.ui.view" id="view_report_lunch_amount_tree"> <field name="name">Lunch amount</field> <field name="model">report.lunch.amount</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Box Amount by User"> <field name="date" invisible="1"/> @@ -347,7 +337,6 @@ <record model="ir.ui.view" id="view_report_lunch_amount_form"> <field name="name">Lunch amount</field> <field name="model">report.lunch.amount</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Box Amount by User" version="7.0"> <sheet> @@ -366,7 +355,6 @@ <record model="ir.ui.view" id="view_report_lunch_amount_search"> <field name="name">Lunch amount</field> <field name="model">report.lunch.amount</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Box Amount by User"> <field name="date"/> diff --git a/addons/lunch/report/order.rml b/addons/lunch/report/order.rml index 30c16ad4894..b09b59bb96b 100644 --- a/addons/lunch/report/order.rml +++ b/addons/lunch/report/order.rml @@ -103,7 +103,7 @@ <td> <para style="terp_default_8">[[ user.name ]] </para> <para style="terp_default_8">[[ user.login ]]</para> - <para style="terp_default_8">[[ user.user_email ]]</para> + <para style="terp_default_8">[[ user.email ]]</para> </td> </tr> </blockTable> diff --git a/addons/lunch/report/report_lunch_order_view.xml b/addons/lunch/report/report_lunch_order_view.xml index 717573687df..e92007592ac 100644 --- a/addons/lunch/report/report_lunch_order_view.xml +++ b/addons/lunch/report/report_lunch_order_view.xml @@ -5,7 +5,6 @@ <record id="view_report_lunch_order_tree" model="ir.ui.view"> <field name="name">report.lunch.order.tree</field> <field name="model">report.lunch.order</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Sales Analysis"> <field name="date" invisible="1"/> @@ -22,7 +21,6 @@ <record id="view_report_lunch_order_search" model="ir.ui.view"> <field name="name">report.lunch.order.search</field> <field name="model">report.lunch.order</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Lunch Order Analysis"> <field name="date"/> diff --git a/addons/lunch/wizard/lunch_cashbox_clean_view.xml b/addons/lunch/wizard/lunch_cashbox_clean_view.xml index eb05c0dc304..5ba2a6ff3bf 100644 --- a/addons/lunch/wizard/lunch_cashbox_clean_view.xml +++ b/addons/lunch/wizard/lunch_cashbox_clean_view.xml @@ -7,7 +7,6 @@ <record id="view_lunch_cashbox_clean" model="ir.ui.view"> <field name="name">lunch.cashbox.clean.form</field> <field name="model">lunch.cashbox.clean</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Reset cashbox" version="7.0"> <group> diff --git a/addons/lunch/wizard/lunch_order_cancel_view.xml b/addons/lunch/wizard/lunch_order_cancel_view.xml index cb10eb57fd0..8421dd74f9b 100644 --- a/addons/lunch/wizard/lunch_order_cancel_view.xml +++ b/addons/lunch/wizard/lunch_order_cancel_view.xml @@ -7,7 +7,6 @@ <record id="view_lunch_order_cancel" model="ir.ui.view"> <field name="name">lunch.order.cancel.form</field> <field name="model">lunch.order.cancel</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Cancel Order" version="7.0"> <group col="4" > diff --git a/addons/lunch/wizard/lunch_order_confirm_view.xml b/addons/lunch/wizard/lunch_order_confirm_view.xml index 282b79539f8..dadde4ed089 100644 --- a/addons/lunch/wizard/lunch_order_confirm_view.xml +++ b/addons/lunch/wizard/lunch_order_confirm_view.xml @@ -7,7 +7,6 @@ <record id="view_lunch_order_confirm" model="ir.ui.view"> <field name="name">lunch.order.confirm.form</field> <field name="model">lunch.order.confirm</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Confirm" version="7.0"> <group col="4"> diff --git a/addons/mail/__init__.py b/addons/mail/__init__.py index cbd477f55e6..289b9080fe7 100644 --- a/addons/mail/__init__.py +++ b/addons/mail/__init__.py @@ -21,15 +21,16 @@ import mail_alias import mail_message +import mail_followers import mail_thread import mail_group -import mail_subscription import ir_needaction -import res_users import res_partner +import res_users import report import wizard import res_config +import mail_group_menu # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/mail/__openerp__.py b/addons/mail/__openerp__.py index fea3d603f6a..0e1caabcf65 100644 --- a/addons/mail/__openerp__.py +++ b/addons/mail/__openerp__.py @@ -64,7 +64,7 @@ The main features of the module are: 'wizard/mail_compose_message_view.xml', 'res_config_view.xml', 'mail_message_view.xml', - 'mail_subscription_view.xml', + 'mail_followers_view.xml', 'mail_thread_view.xml', 'mail_group_view.xml', 'res_partner_view.xml', @@ -102,9 +102,11 @@ The main features of the module are: 'js': [ 'static/lib/jquery.expander/jquery.expander.js', 'static/src/js/mail.js', + 'static/src/js/mail_followers.js', ], 'qweb': [ 'static/src/xml/mail.xml', + 'static/src/xml/mail_followers.xml', ], } # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/mail/data/mail_demo.xml b/addons/mail/data/mail_demo.xml index 8be63f22804..e3d7c2ab1e1 100644 --- a/addons/mail/data/mail_demo.xml +++ b/addons/mail/data/mail_demo.xml @@ -2,49 +2,22 @@ <openerp> <data noupdate="1"> - <record id="message_blogpost0_attachment0" model="ir.attachment"> - <field name="name">A cool attachment</field> - <field name="datas">PT1Tb21lIGNvb2wgYXR0YWNobWVudD09ClByYWVzZW50IHZlbCBtYXNzYSBzZWQgbWFzc2EgY29uc2VxdWF0IGVnZXN0YXMgaW4gdHJpc3RpcXVlIG9yY2ku</field> - <field name="datas_fname">a_cool_attachment</field> - <field name="description"></field> - <field name="res_name">Mail group</field> - <field name="res_model">mail.group</field> - <field name="res_id" ref="group_all_company"/> - <field name="type">binary</field> - </record> - - <record id="message_blogpost0_attachment1" model="ir.attachment"> - <field name="name">Another clean attachment</field> - <field name="datas">PT1Tb21lIGNsZWFuIGF0dGFjaG1lbnQ9PQpOdWxsYSB0dXJwaXMgbGVvLCByaG9uY3VzIHV0IGVnZXN0YXMgc2l0IGFtZXQsIGNvbnNlY3RldHVyIHZpdGFlIHVybmEu</field> - <field name="datas_fname">a_clean_attachment</field> - <field name="description"></field> - <field name="res_name">Mail group</field> - <field name="res_model">mail.group</field> - <field name="res_id" ref="group_all_company"/> - <field name="type">binary</field> - </record> - <record id="message_blogpost0" model="mail.message"> <field name="subject">Internal company announce</field> <field name="model">mail.group</field> - <field name="res_id" ref="group_all_company"/> + <field name="res_id" ref="group_all_employees"/> <field name="content_subtype">html</field> - <field name="body_html"><![CDATA[Lorem ipsum dolor <b>sit amet</b>, consectetur <em>adipiscing elit</em>. Pellentesque et quam sapien, in sagittis tellus. -Praesent vel massa sed massa consequat egestas in tristique orci. Praesent iaculis libero et neque vehicula iaculis. Vivamus placerat tincidunt orci ac ornare. Proin ut dolor fringilla velit ultricies consequat. Maecenas sit amet ipsum non leo interdum imperdiet. Donec sapien mi, varius a consequat id, consectetur sit amet nulla. - -Fusce tempus elit volutpat mi auctor adipiscing. Nam congue luctus suscipit. Duis vestibulum dapibus enim vitae dignissim. Sed tellus libero, venenatis ut mollis ut, luctus quis dui. Sed rhoncus pulvinar orci in consectetur. - -Nulla turpis leo, rhoncus ut egestas sit amet, consectetur vitae urna. Mauris in dolor in sapien tempus vehicula.]]></field> + <field name="body_html"><![CDATA[Your monthly meal vouchers arrived. You can get them at Christine's office. +This month you also have 250 EUR of eco-checks for all employees that worked with us since 1 year minimum.]]></field> <field name="type">comment</field> <field name="user_id" ref="base.user_root"/> - <field name="attachment_ids" eval="[(6,0,[ref('message_blogpost0_attachment0'),ref('message_blogpost0_attachment1')])]"/> </record> <record id="message_blogpost0_comment0" model="mail.message"> <field name="model">mail.group</field> - <field name="res_id" ref="group_all_company"/> + <field name="res_id" ref="group_all_employees"/> <field name="content_subtype">html</field> - <field name="body_html"><![CDATA[That was such a <b>tremendous</b> blogpost ! (first comment)]]></field> + <field name="body_html"><![CDATA[Great.]]></field> <field name="parent_id" ref="message_blogpost0"/> <field name="type">comment</field> <field name="user_id" ref="base.user_root"/> @@ -52,29 +25,17 @@ Nulla turpis leo, rhoncus ut egestas sit amet, consectetur vitae urna. Mauris in <record id="message_blogpost0_comment1" model="mail.message"> <field name="model">mail.group</field> - <field name="res_id" ref="group_all_company"/> + <field name="res_id" ref="group_all_employees"/> <field name="content_subtype">html</field> - <field name="body_html"><![CDATA[Agreed ! -Would it be possible to learn more about the author ? (second comment)]]></field> + <field name="body_html"><![CDATA[Yes, that's a good news.]]></field> <field name="parent_id" ref="message_blogpost0"/> <field name="type">comment</field> <field name="user_id" ref="base.user_demo"/> </record> - <record id="message_blogpost0_comment2_attachment0" model="ir.attachment"> - <field name="name">Author's full biography</field> - <field name="datas">PT1BYm91dCB0aGUgYXV0aG9yPT0KSW50ZWdlciBzb2RhbGVzIGRvbG9yIGV1IGVsaXQgZnJpbmdpbGxhIGJsYW5kaXQu</field> - <field name="datas_fname">blogpost_author_biography</field> - <field name="description"></field> - <field name="res_name">Mail group</field> - <field name="res_model">mail.group</field> - <field name="res_id" ref="group_all_company"/> - <field name="type">binary</field> - </record> - <record id="message_blogpost0_comment2" model="mail.message"> <field name="model">mail.group</field> - <field name="res_id" ref="group_all_company"/> + <field name="res_id" ref="group_all_employees"/> <field name="content_subtype">html</field> <field name="body_html"><![CDATA[Sure: Curabitur tempor bibendum diam, et euismod ante rutrum vel. @@ -85,7 +46,6 @@ Check the file in attachment for more information ! (third comment)]]></field> <field name="parent_id" ref="message_blogpost0"/> <field name="type">comment</field> <field name="user_id" ref="base.user_root"/> - <field name="attachment_ids" eval="[(4,ref('message_blogpost0_comment2_attachment0'))]"/> </record> <record model="ir.config_parameter" id="user_mail_alias"> diff --git a/addons/mail/data/mail_group_data.xml b/addons/mail/data/mail_group_data.xml index 09a6ca29a2d..2152706d056 100644 --- a/addons/mail/data/mail_group_data.xml +++ b/addons/mail/data/mail_group_data.xml @@ -2,16 +2,14 @@ <openerp> <data noupdate="1"> - <record model="mail.group" id="group_all_company"> - <field name="name">All Company</field> - <field name="description">All company users can come here and discuss.</field> - </record> <record model="mail.group" id="group_sales"> <field name="name">Sales</field> + <field name="description">Discussion about best sales practices and deals.</field> </record> <record model="mail.group" id="group_all_employees"> <field name="name">All Employees</field> <field name="group_ids" eval="[(4, ref('base.group_user'))]"/> + <field name="description">Discussion about best sales practices and deals.</field> </record> <!-- notify all employees of module installation --> @@ -21,7 +19,7 @@ <value>Welcome to OpenERP!</value> <value>Your homepage is a summary of messages you received and key information about documents you follow. -The top menu bar contains all applications you installed. You can use this <i>Settings</i> menu to intall more applications, activate others features or give access to new users. +The top menu bar contains all applications you installed. You can use this <i>Settings</i> menu to install more applications, activate others features or give access to new users. To setup your preferences (name, email signature, avatar), click on the top right corner.</value> </function> diff --git a/addons/mail/doc/mail_openchatter_howto.rst b/addons/mail/doc/mail_openchatter_howto.rst index 4c8797e7f8b..789acdd87eb 100644 --- a/addons/mail/doc/mail_openchatter_howto.rst +++ b/addons/mail/doc/mail_openchatter_howto.rst @@ -45,7 +45,6 @@ Use the thread viewer widget inside your form view by using the mail_thread widg <record model="ir.ui.view" id="my_task_form_view"> <field name="name">My Task</field> <field name="model">my.task</field> - <field name="type">form</field> <field name="priority">1</field> <field name="arch" type="xml"> <form> diff --git a/addons/mail/mail_alias.py b/addons/mail/mail_alias.py index 807ed5dbe61..82b20f39480 100644 --- a/addons/mail/mail_alias.py +++ b/addons/mail/mail_alias.py @@ -20,9 +20,19 @@ ############################################################################## import re +import unicodedata from openerp.osv import fields, osv +from openerp.tools import ustr +# Inspired by http://stackoverflow.com/questions/517923 +def remove_accents(input_str): + """Suboptimal-but-better-than-nothing way to replace accented + latin letters by an ASCII equivalent. Will obviously change the + meaning of input_str and work only for some cases""" + input_str = ustr(input_str) + nkfd_form = unicodedata.normalize('NFKD', input_str) + return u''.join([c for c in nkfd_form if not unicodedata.combining(c)]) class mail_alias(osv.Model): """A Mail Alias is a mapping of an email address with a given OpenERP Document @@ -40,6 +50,7 @@ class mail_alias(osv.Model): _name = 'mail.alias' _description = "Email Aliases" _rec_name = 'alias_name' + _order = 'alias_model_id, alias_name' def _get_alias_domain(self, cr, uid, ids, name, args, context=None): ir_config_parameter = self.pool.get("ir.config_parameter") @@ -55,10 +66,9 @@ class mail_alias(osv.Model): "corresponds. Any incoming email that does not reply to an " "existing record will cause the creation of a new record " "of this model (e.g. a Project Task)", - # only allow selecting mail_thread models! - #TODO kept doamin temporarily in comment, need to redefine domain - #domain="[('field_id', 'in', 'message_ids')]" - ), + # hack to only allow selecting mail_thread models (we might + # (have a few false positives, though) + domain="[('field_id.name', '=', 'message_ids')]"), 'alias_user_id': fields.many2one('res.users', 'Owner', help="The owner of records created upon receiving emails on this alias. " "If this field is not set the system will attempt to find the right owner " @@ -76,7 +86,10 @@ class mail_alias(osv.Model): _defaults = { 'alias_defaults': '{}', - 'alias_user_id': lambda self,cr,uid, context: uid + 'alias_user_id': lambda self,cr,uid,context: uid, + + # looks better when creating new aliases - even if the field is informative only + 'alias_domain': lambda self,cr,uid,context: self._get_alias_domain(cr,1,[1],None,None)[1] } _sql_constraints = [ @@ -122,12 +135,10 @@ class mail_alias(osv.Model): make it unique, and the ``alias_model_id`` value will set to the model ID of the ``model_name`` value, if provided, """ - alias_name = re.sub(r'\W+', '_', vals['alias_name']).lower() + alias_name = re.sub(r'[^\w+]', '-', remove_accents(vals['alias_name'])).lower() alias_name = self._find_unique(cr, uid, alias_name, context=context) vals['alias_name'] = alias_name if model_name: model_id = self.pool.get('ir.model').search(cr, uid, [('model', '=', model_name)], context=context)[0] vals['alias_model_id'] = model_id return self.create(cr, uid, vals, context=context) - - diff --git a/addons/mail/mail_alias_view.xml b/addons/mail/mail_alias_view.xml index 61a89b774ca..e0d8e173ebc 100644 --- a/addons/mail/mail_alias_view.xml +++ b/addons/mail/mail_alias_view.xml @@ -6,19 +6,16 @@ <record model="ir.ui.view" id="view_mail_alias_form"> <field name="name">mail.alias.form</field> <field name="model">mail.alias</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Alias" version="7.0"> <sheet> <label for="alias_name" class="oe_edit_only"/> - <h2><field name="alias_name" class="oe_inline"/>@<field name="alias_domain" class="oe_inline"/></h2> - <group colspan="4" col="4"> - <field name="alias_model_id" readonly="1"/> - <field name="alias_user_id" readonly="1"/> - <field name="alias_force_thread_id" readonly="1"/> - <newline/> - <separator string="Default Values" colspan="4"/> - <field name="alias_defaults" colspan="4" nolabel="1" readonly="1"/> + <h2><field name="alias_name" class="oe_inline"/>@<field name="alias_domain" class="oe_inline"/></h2> + <group> + <field name="alias_model_id"/> + <field name="alias_user_id"/> + <field name="alias_force_thread_id"/> + <field name="alias_defaults"/> </group> </sheet> </form> @@ -29,7 +26,6 @@ <record model="ir.ui.view" id="view_mail_alias_tree"> <field name="name">mail.alias.tree</field> <field name="model">mail.alias</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Alias"> <field name="alias_name"/> @@ -44,7 +40,6 @@ <record model="ir.ui.view" id="view_mail_alias_search"> <field name="name">mail.alias.search</field> <field name="model">mail.alias</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Search Alias"> <field name="alias_name"/> diff --git a/addons/mail/mail_subscription.py b/addons/mail/mail_followers.py index fc82af879a9..fcdc78d5f0a 100644 --- a/addons/mail/mail_subscription.py +++ b/addons/mail/mail_followers.py @@ -22,18 +22,21 @@ from osv import osv from osv import fields -class mail_subscription(osv.osv): - """ - mail_subscription holds the data related to the follow mechanism inside OpenERP. +class mail_followers(osv.Model): + """ mail_followers holds the data related to the follow mechanism inside + OpenERP. Users can choose to follow documents (records) of any kind that + inherits from mail.thread. Following documents allow to receive + notifications for new messages. A subscription is characterized by: :param: res_model: model of the followed objects :param: res_id: ID of resource (may be 0 for every objects) :param: user_id: user_id of the follower """ - _name = 'mail.subscription' + _name = 'mail.followers' _rec_name = 'id' + _log_access = False _order = 'res_model asc' - _description = 'Mail subscription' + _description = 'Mail Document Followers' _columns = { 'res_model': fields.char('Related Document Model', size=128, required=True, select=1, @@ -44,10 +47,8 @@ class mail_subscription(osv.osv): ondelete='cascade', required=True, select=1), } -class mail_notification(osv.osv): - """ - mail_notification is a relational table modeling messages pushed to users. - :param: read: not used currently +class mail_notification(osv.Model): + """ mail_notification is a relational table modeling messages pushed to users. """ _name = 'mail.notification' _rec_name = 'id' @@ -59,9 +60,4 @@ class mail_notification(osv.osv): ondelete='cascade', required=True, select=1), 'message_id': fields.many2one('mail.message', string='Message', ondelete='cascade', required=True, select=1), - 'read': fields.boolean('Read', help="Not used currently",), - # TODO: add a timestamp ? or use message date ? - } - _defaults = { - 'read': False, } diff --git a/addons/mail/mail_subscription_view.xml b/addons/mail/mail_followers_view.xml index c3d79d48308..62e93430675 100644 --- a/addons/mail/mail_subscription_view.xml +++ b/addons/mail/mail_followers_view.xml @@ -2,17 +2,14 @@ <openerp> <data> - <!-- - SUBSCRIPTION - !--> - - <record model="ir.ui.view" id="view_subscription_tree"> - <field name="name">mail.subscription.tree</field> - <field name="model">mail.subscription</field> + <!-- FOLLOWERS !--> + <record model="ir.ui.view" id="view_followers_tree"> + <field name="name">mail.followers.tree</field> + <field name="model">mail.followers</field> <field name="type">tree</field> <field name="priority">10</field> <field name="arch" type="xml"> - <tree string="Subscription"> + <tree string="Followers"> <field name="res_model"/> <field name="res_id"/> <field name="user_id"/> @@ -20,27 +17,22 @@ </field> </record> - <!-- - NOTIFICATION - !--> - + <!-- NOTIFICATION !--> <record model="ir.ui.view" id="view_notification_tree"> <field name="name">mail.notification.tree</field> <field name="model">mail.notification</field> - <field name="type">tree</field> <field name="priority">10</field> <field name="arch" type="xml"> - <tree string="Subscription"> + <tree string="Notifications"> <field name="user_id"/> <field name="message_id"/> - <field name="read"/> </tree> </field> </record> - <record id="action_view_subscriptions" model="ir.actions.act_window"> - <field name="name">Subscriptions</field> - <field name="res_model">mail.subscription</field> + <record id="action_view_followers" model="ir.actions.act_window"> + <field name="name">Followers</field> + <field name="res_model">mail.followers</field> <field name="view_type">form</field> <field name="view_mode">tree,form</field> </record> @@ -52,9 +44,9 @@ <field name="view_mode">tree,form</field> </record> - <!-- Add subscriptions related menu entries in Settings/Email --> - <menuitem name="Subscriptions" id="menu_email_subscriptions" parent="base.menu_email" - action="action_view_subscriptions" sequence="30" groups="base.group_no_one"/> --> + <!-- Add followers related menu entries in Settings/Email --> + <menuitem name="Followers" id="menu_email_followers" parent="base.menu_email" + action="action_view_followers" sequence="30" groups="base.group_no_one"/> --> <!-- Add notifications related menu entry in Settings/Email --> <menuitem name="Notifications" id="menu_email_notifications" parent="base.menu_email" diff --git a/addons/mail/mail_group.py b/addons/mail/mail_group.py index b850f1c29f7..6a14fef83aa 100644 --- a/addons/mail/mail_group.py +++ b/addons/mail/mail_group.py @@ -25,28 +25,20 @@ import openerp.tools as tools from operator import itemgetter from osv import osv from osv import fields -import tools from tools.translate import _ -from lxml import etree -class mail_group(osv.osv): +class mail_group(osv.Model): """ A mail_group is a collection of users sharing messages in a discussion group. Group users are users that follow the mail group, using the subscription/follow mechanism of OpenSocial. A mail group has nothing in common with res.users.group. - Additional information on fields: - - ``member_ids``: user member of the groups are calculated with - ``message_get_subscribers`` method from mail.thread - - ``member_count``: calculated with member_ids - - ``is_subscriber``: calculated with member_ids - """ _description = 'Discussion group' _name = 'mail.group' _inherit = ['mail.thread'] - _inherits = {'mail.alias': 'alias_id'} + _inherits = {'mail.alias': 'alias_id', 'ir.ui.menu': 'menu_id'} def _get_image(self, cr, uid, ids, name, args, context=None): result = dict.fromkeys(ids, False) @@ -57,28 +49,8 @@ class mail_group(osv.osv): def _set_image(self, cr, uid, id, name, value, args, context=None): return self.write(cr, uid, [id], {'image': tools.image_resize_image_big(value)}, context=context) - def get_member_ids(self, cr, uid, ids, field_names, args, context=None): - if context is None: - context = {} - result = dict.fromkeys(ids) - for id in ids: - result[id] = {} - result[id]['member_ids'] = self.message_get_subscribers(cr, uid, [id], context=context) - result[id]['member_count'] = len(result[id]['member_ids']) - result[id]['is_subscriber'] = uid in result[id]['member_ids'] - return result - - def search_member_ids(self, cr, uid, obj, name, args, context=None): - if context is None: - context = {} - sub_obj = self.pool.get('mail.subscription') - sub_ids = sub_obj.search(cr, uid, ['&', ('res_model', '=', obj._name), ('user_id', '=', args[0][2])], context=context) - subs = sub_obj.read(cr, uid, sub_ids, context=context) - return [('id', 'in', map(itemgetter('res_id'), subs))] - - def get_last_month_msg_nbr(self, cr, uid, ids, name, args, context=None): + def _get_last_month_msg_nbr(self, cr, uid, ids, name, args, context=None): result = {} - message_obj = self.pool.get('mail.message') for id in ids: lower_date = (DT.datetime.now() - DT.timedelta(days=30)).strftime(tools.DEFAULT_SERVER_DATE_FORMAT) result[id] = self.message_search(cr, uid, [id], limit=None, domain=[('date', '>=', lower_date)], count=True, context=context) @@ -89,18 +61,21 @@ class mail_group(osv.osv): return tools.image_resize_image_big(open(image_path, 'rb').read().encode('base64')) _columns = { - 'name': fields.char('Name', size=64, required=True), 'description': fields.text('Description'), + 'menu_id': fields.many2one('ir.ui.menu', string='Related Menu', required=True, ondelete="cascade"), 'responsible_id': fields.many2one('res.users', string='Responsible', ondelete='set null', required=True, select=1, help="Responsible of the group that has all rights on the record."), - 'public': fields.boolean('Visible by non members', help='This group is visible by non members. \ - Invisible groups can add members through the invite button.'), + 'public': fields.selection([('public', 'Public'), ('private', 'Private'), ('groups', 'Selected Group Only')], + string='Privacy', required=True, + help='This group is visible by non members. '\ + 'Invisible groups can add members through the invite button.'), + 'group_public_id': fields.many2one('res.groups', string='Authorized Group'), 'group_ids': fields.many2many('res.groups', rel='mail_group_res_group_rel', - id1='mail_group_id', id2='groups_id', string='Linked groups', + id1='mail_group_id', id2='groups_id', string='Auto Subscription', help="Members of those groups will automatically added as followers. "\ - "Note that they will be able to manage their subscription manually "\ - "if necessary."), + "Note that they will be able to manage their subscription manually "\ + "if necessary."), 'image': fields.binary("Photo", help="This field holds the image used as photo for the "\ "user. The image is base64 encoded, and PIL-supported. "\ @@ -121,23 +96,28 @@ class mail_group(osv.osv): help="Small-sized photo of the group. It is automatically "\ "resized as a 50x50px image, with aspect ratio preserved. "\ "Use this field anywhere a small image is required."), - 'member_ids': fields.function(get_member_ids, fnct_search=search_member_ids, - type='many2many', relation='res.users', string='Group members', multi='get_member_ids'), - 'member_count': fields.function(get_member_ids, type='integer', - string='Member count', multi='get_member_ids'), - 'is_subscriber': fields.function(get_member_ids, type='boolean', - string='Joined', multi='get_member_ids'), - 'last_month_msg_nbr': fields.function(get_last_month_msg_nbr, type='integer', + 'last_month_msg_nbr': fields.function(_get_last_month_msg_nbr, type='integer', string='Messages count for last month'), - 'alias_id': fields.many2one('mail.alias', 'Alias', ondelete="cascade", required=True, + 'alias_id': fields.many2one('mail.alias', 'Alias', ondelete="cascade", help="The email address associated with this group. New emails received will automatically " "create new topics."), } + def _get_default_employee_group(self, cr, uid, context=None): + ref = self.pool.get('ir.model.data').get_object_reference(cr, uid, 'base', 'group_user') + return ref and ref[1] or False + + def _get_menu_parent(self, cr, uid, context=None): + ref = self.pool.get('ir.model.data').get_object_reference(cr, uid, 'mail', 'mail_group_root') + return ref and ref[1] or False + _defaults = { - 'public': True, + 'public': 'groups', + 'group_public_id': _get_default_employee_group, 'responsible_id': (lambda s, cr, uid, ctx: uid), 'image': _get_default_image, + 'parent_id': _get_menu_parent, + 'alias_domain': False, # always hide alias during creation } def _subscribe_user_with_group_m2m_command(self, cr, uid, ids, group_ids_command, context=None): @@ -153,15 +133,34 @@ class mail_group(osv.osv): return self.message_subscribe(cr, uid, ids, user_ids, context=context) def create(self, cr, uid, vals, context=None): - alias_pool = self.pool.get('mail.alias') + mail_alias = self.pool.get('mail.alias') if not vals.get('alias_id'): - name = vals.get('alias_name') or vals['name'] - alias_id = alias_pool.create_unique_alias(cr, uid, - {'alias_name': "group_"+name}, - model_name=self._name, context=context) + vals.pop('alias_name', None) # prevent errors during copy() + alias_id = mail_alias.create_unique_alias(cr, uid, + # Using '+' allows using subaddressing for those who don't + # have a catchall domain setup. + {'alias_name': "group+"+vals['name']}, + model_name=self._name, context=context) vals['alias_id'] = alias_id + mail_group_id = super(mail_group, self).create(cr, uid, vals, context) - alias_pool.write(cr, uid, [vals['alias_id']], {"alias_force_thread_id": mail_group_id}, context) + + # Create client action for this group and link the menu to it + ref = self.pool.get('ir.model.data').get_object_reference(cr, uid, 'mail', 'action_mail_group_feeds') + if ref: + search_ref = self.pool.get('ir.model.data').get_object_reference(cr, uid, 'mail', 'view_message_search_wall') + params = { + 'search_view_id': search_ref and search_ref[1] or False, + 'domain': [('model','=','mail.group'),('res_id','=',mail_group_id)], + 'res_model': 'mail.group', + 'res_id': mail_group_id, + 'thread_level': 2 + } + cobj = self.pool.get('ir.actions.client') + newref = cobj.copy(cr, uid, ref[1], default={'params': str(params), 'name': vals['name']}, context=context) + self.write(cr, uid, [mail_group_id], {'action': 'ir.actions.client,'+str(newref), 'mail_group_id': mail_group_id}, context=context) + + mail_alias.write(cr, uid, [vals['alias_id']], {"alias_force_thread_id": mail_group_id}, context) if vals.get('group_ids'): self._subscribe_user_with_group_m2m_command(cr, uid, [mail_group_id], vals.get('group_ids'), context=context) @@ -186,3 +185,12 @@ class mail_group(osv.osv): def action_group_leave(self, cr, uid, ids, context=None): return self.message_unsubscribe(cr, uid, ids, context=context) + + # ---------------------------------------- + # OpenChatter methods and notifications + # ---------------------------------------- + + def message_get_monitored_follower_fields(self, cr, uid, ids, context=None): + """ Add 'responsible_id' to the monitored fields """ + res = super(mail_group, self).message_get_monitored_follower_fields(cr, uid, ids, context=context) + return res + ['responsible_id'] diff --git a/addons/mail/mail_group_menu.py b/addons/mail/mail_group_menu.py new file mode 100644 index 00000000000..8625285d640 --- /dev/null +++ b/addons/mail/mail_group_menu.py @@ -0,0 +1,52 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# Copyright (C) 2012-today OpenERP SA (<http://www.openerp.com>) +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/> +# +############################################################################## + +from osv import osv +from osv import fields +from tools.translate import _ + +class ir_ui_menu(osv.osv): + """ Override of ir.ui.menu class. When adding mail_thread module, each + new mail.group will create a menu entry. This overrides checks that + the current user is in the mail.group followers. If not, the menu + entry is taken off the list of menu ids. This way the user will see + menu entries for the mail.group he is following. + """ + _inherit = 'ir.ui.menu' + + _columns = { + 'mail_group_id': fields.many2one('mail.group', 'Mail Group') + } + + def search(self, cr, uid, args, offset=0, limit=None, order=None, context=None, count=False): + """ Override to take off menu entries (mail.group) the user is not + following. """ + ids = super(ir_ui_menu, self).search(cr, uid, args, offset=0, limit=None, order=order, context=context, count=False) + follower_obj = self.pool.get('mail.followers') + for menu in self.browse(cr, uid, ids, context=context): + if menu.mail_group_id: + sub_ids = follower_obj.search(cr, uid, [ + ('user_id', '=', uid), ('res_model', '=', 'mail.group'), + ('res_id', '=', menu.mail_group_id.id) + ], context=context) + if not sub_ids: + ids.remove(menu.id) + return ids diff --git a/addons/mail/mail_group_view.xml b/addons/mail/mail_group_view.xml index 5c81d426d6a..a71ec972326 100644 --- a/addons/mail/mail_group_view.xml +++ b/addons/mail/mail_group_view.xml @@ -1,15 +1,21 @@ <?xml version="1.0"?> <openerp> <data> + <record id="action_mail_group_feeds" model="ir.actions.client"> + <field name="name">Discussion Group</field> + <field name="tag">mail.wall</field> + <field name="params" eval="{'search_view_id': ref('view_message_search_wall')}"/> + </record> <!-- Group Kanban View !--> <record model="ir.ui.view" id="view_group_kanban"> <field name="name">mail.group.kanban</field> <field name="model">mail.group</field> - <field name="type">kanban</field> <field name="priority" eval="10"/> <field name="arch" type="xml"> <kanban> + <field name="message_follower_ids"/> + <field name="message_is_follower"/> <templates> <t t-name="kanban-description"> <div class="oe_group_description" t-if="record.description.raw_value"> @@ -17,17 +23,19 @@ </div> </t> <t t-name="kanban-box"> - <div t-attf-class="{record.is_subscriber.raw_value} oe_group_vignette"> + <div t-attf-class="{record.message_is_follower.raw_value} oe_group_vignette"> <div class="oe_group_image"> <a type="edit"><img t-att-src="kanban_image('mail.group', 'image_medium', record.id.value)" class="oe_group_photo" tooltip="kanban-description"/></a> </div> <div class="oe_group_details"> <h4><a type="edit"><field name="name"/></a></h4> - <span style="display: none;"><field name="is_subscriber"/></span> <ul> - <li><field name="member_count"/> members</li> - <li t-if="! record.is_subscriber.raw_value"><a name="action_group_join" string="Join" type="object" class="oe_group_join">Not following</a></li> - <li t-if="record.is_subscriber.raw_value"><a name="action_group_leave" string="Join" type="object" class="oe_group_leave">Following</a></li> + <!-- <li><field name="message_follower_count"/> member(s)</li> --> + <li> + <t t-raw="record.message_follower_ids.raw_value.length"/> member(s) + </li> + <li t-if="! record.message_is_follower.raw_value"><a name="action_group_join" string="Join" type="object" class="oe_group_join">Not following</a></li> + <li t-if="record.message_is_follower.raw_value"><a name="action_group_leave" string="Join" type="object" class="oe_group_leave">Following</a></li> <li><field name="last_month_msg_nbr"/> messages last month</li> </ul> </div> @@ -46,42 +54,42 @@ <record model="ir.ui.view" id="view_group_form"> <field name="name">mail.group.form</field> <field name="model">mail.group</field> - <field name="type">form</field> <field name="priority" eval="10"/> <field name="arch" type="xml"> <form string="Group Form" version="7.0"> <sheet class="openerp_mail_group_sheet"> - <group colspan="4" col="8"> - <group colspan="1" col="2"> - <field name="image_small" widget='image' class="oe_image_small" nolabel="1"/> + <field name="image_small" widget='image' class="oe_avatar oe_left"/> + <div class="oe_title"> + <div class="oe_edit_only"> + <label for="name" string="Group Name"/> + </div> + <h1><field name="name"/></h1> + <div name="alias_box" colspan="4" attrs="{'invisible': [('alias_domain', '=', False)]}"> + <field name="alias_id" invisible="1" required="0"/> + <label for="alias_name" class="oe_edit_only"/> + <field name="alias_name" nolabel="1" class="oe_inline" attrs="{'required': [('alias_id', '!=', False)]}"/>@<field name="alias_domain" nolabel="1" class="oe_inline"/> + </div> + <field name="description" placeholder="Topics discussed in this group..."/> + </div> + <div class="oe_clear"/> + <group col="1"> + <group class="oe_edit_only"> + <field name="public" class="oe_inline"/> + <field name="group_public_id" class="oe_inline" + attrs="{'invisible': [('public','<>','groups')], 'required': [('public','=','groups')]}" + /> + <field name="group_ids" widget="many2many_tags" class="oe_inline"/> </group> - <group colspan="7" col="6"> - <div class="oe_edit_only"> - <label for="name"/> - </div> - <div> - <h2><field name="name" colspan="4"/></h2> - <div name="alias_box" colspan="4" attrs="{'invisible': [('alias_domain', '=', False)]}" class="oe_edit_only"> - <field name="alias_id" invisible="1"/> - <label for="alias_name" class="oe_edit_only"/> - <field name="alias_name" nolabel="1" class="oe_inline" attrs="{'required': [('alias_id', '!=', False)]}"/>@<field name="alias_domain" nolabel="1" class="oe_inline"/> - </div> - </div> - <newline/> - <group colspan="4" col="4"> - <field name="description" colspan="4" nolabel="1"/> - <field name="group_ids" colspan="4" widget="many2many_tags" class="oe_edit_only"/> - </group> - <group colspan="2" col="2" class="oe_edit_only"> - <field name="responsible_id" colspan="2"/> - <field name="public" colspan="2"/> - </group> + <group class="oe_edit_only"> + <field name="responsible_id" class="oe_inline"/> </group> </group> </sheet> - <div class="oe_chatter oe_mail_group_footer"> + <div class="oe_chatter"> <field name="message_ids" widget="mail_thread" options='{"thread_level": 1}'/> + <field name="message_follower_ids" widget="mail_followers" + context="{'lapin': 'nouille'}" image="image_small"/> </div> </form> </field> @@ -91,11 +99,10 @@ <record model="ir.ui.view" id="view_group_tree"> <field name="name">mail.group.tree</field> <field name="model">mail.group</field> - <field name="type">tree</field> <field name="priority" eval="10"/> <field name="arch" type="xml"> <tree string="Groups"> - <field name="name"/> + <field name="name" string="Group Name"/> <field name="responsible_id"/> </tree> </field> @@ -105,7 +112,6 @@ <record model="ir.ui.view" id="view_group_search"> <field name="name">mail.group.search</field> <field name="model">mail.group</field> - <field name="type">search</field> <field name="priority" eval="10"/> <field name="arch" type="xml"> <search string="Search Groups"> @@ -125,6 +131,7 @@ </record> <!-- left-side menu: Groups !--> - <menuitem id="mail_allgroups" name="All Groups" parent="mail_feeds" sequence="12" action="action_view_groups"/> + <menuitem id="mail_group_root" parent="mail_feeds_main" sequence="12" name="My Groups"/> + <menuitem id="mail_allgroups" parent="mail_feeds" sequence="12" action="action_view_groups"/> </data> </openerp> diff --git a/addons/mail/mail_message.py b/addons/mail/mail_message.py index b96b6e3791e..7801a9b42d9 100644 --- a/addons/mail/mail_message.py +++ b/addons/mail/mail_message.py @@ -93,6 +93,9 @@ class mail_message_common(osv.TransientModel): return result def name_get(self, cr, uid, ids, context=None): + # name_get may receive int id instead of an id list + if isinstance(ids, (int, long)): + ids = [ids] res = [] for message in self.browse(cr, uid, ids, context=context): name = '' @@ -129,7 +132,7 @@ class mail_message_common(osv.TransientModel): help="Type of message, usually 'html' or 'plain', used to select "\ "plain-text or rich-text contents accordingly"), 'body_text': fields.text('Text Contents', help="Plain-text version of the message"), - 'body_html': fields.text('Rich-text Contents', help="Rich-text/HTML version of the message"), + 'body_html': fields.html('Rich-text Contents', help="Rich-text/HTML version of the message"), 'body': fields.function(get_body, fnct_search = search_body, type='text', string='Message Content', store=True, help="Content of the message. This content equals the body_text field "\ @@ -208,12 +211,13 @@ class mail_message(osv.Model): 'partner_id': fields.many2one('res.partner', 'Related partner', help="Deprecated field. Use partner_ids instead."), 'partner_ids': fields.many2many('res.partner', - 'mail_message_destination_partner_rel', + 'mail_message_res_partner_rel', 'message_id', 'partner_id', 'Destination partners', help="When sending emails through the social network composition wizard"\ "you may choose to send a copy of the mail to partners."), 'user_id': fields.many2one('res.users', 'Related User', readonly=1), - 'attachment_ids': fields.many2many('ir.attachment', 'message_attachment_rel', 'message_id', 'attachment_id', 'Attachments'), + 'attachment_ids': fields.many2many('ir.attachment', 'message_attachment_rel', + 'message_id', 'attachment_id', 'Attachments'), 'mail_server_id': fields.many2one('ir.mail_server', 'Outgoing mail server', readonly=1), 'state': fields.selection([ ('outgoing', 'Outgoing'), @@ -371,7 +375,8 @@ class mail_message(osv.Model): } email_msg_id = self.create(cr, uid, msg_vals, context) attachment_ids = [] - for fname, fcontent in attachments.iteritems(): + for attachment in attachments: + fname, fcontent = attachment attachment_data = { 'name': fname, 'datas_fname': fname, diff --git a/addons/mail/mail_message_view.xml b/addons/mail/mail_message_view.xml index b967035bec3..0aa5261d7e7 100644 --- a/addons/mail/mail_message_view.xml +++ b/addons/mail/mail_message_view.xml @@ -5,7 +5,6 @@ <record model="ir.ui.view" id="view_message_tree_short"> <field name="name">mail.message.tree.short</field> <field name="model">mail.message</field> - <field name="type">tree</field> <field name="priority">20</field> <field name="arch" type="xml"> <tree string="Messages"> @@ -22,7 +21,6 @@ <record model="ir.ui.view" id="view_message_form_short"> <field name="name">mail.message.form.short</field> <field name="model">mail.message</field> - <field name="type">form</field> <field name="priority">20</field> <field name="arch" type="xml"> <form string="Message" version="7.0"> @@ -44,7 +42,7 @@ </group> <notebook> <page string="Body (Rich)"> - <field name="body_html" widget="text_html"/> + <field name="body_html"/> </page> <page string="Body (Plain)"> <field name="body_text" widget="text"/> @@ -59,7 +57,6 @@ <record model="ir.ui.view" id="view_message_search_short"> <field name="name">mail.message.search.short</field> <field name="model">mail.message</field> - <field name="type">search</field> <field name="priority">20</field> <field name="arch" type="xml"> <search string="Messages Search"> @@ -74,7 +71,6 @@ <record model="ir.ui.view" id="view_message_search_wall"> <field name="name">mail.message.search.wall</field> <field name="model">mail.message</field> - <field name="type">search</field> <field name="priority">25</field> <field name="arch" type="xml"> <search string="Messages Search"> @@ -110,7 +106,6 @@ <record model="ir.ui.view" id="view_email_message_form"> <field name="name">mail.message.form</field> <field name="model">mail.message</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Email message" version="7.0"> <sheet> @@ -138,7 +133,7 @@ </group> <notebook> <page string="Body (Rich)"> - <field name="body_html" widget="text_html"/> + <field name="body_html"/> </page> <page string="Body (Plain)"> <field name="body_text" widget="text"/> @@ -178,7 +173,6 @@ <record model="ir.ui.view" id="view_email_message_tree"> <field name="name">mail.message.tree</field> <field name="model">mail.message</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Emails" colors="grey:state in ('sent', 'cancel');blue:state=='outgoing';red:state=='exception';black:state=='received'"> <field name="date"/> @@ -202,7 +196,6 @@ <record model="ir.ui.view" id="view_email_message_search"> <field name="name">mail.message.search</field> <field name="model">mail.message</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Email Search"> <field name="email_from" filter_domain="['|' '|',('email_from','ilike',self), ('email_to','ilike',self), ('subject','ilike',self)]" string="Email"/> diff --git a/addons/mail/mail_thread.py b/addons/mail/mail_thread.py index f0dd023bf06..56c7e6b7088 100644 --- a/addons/mail/mail_thread.py +++ b/addons/mail/mail_thread.py @@ -21,19 +21,77 @@ import base64 import email -from email.utils import parsedate import logging -from mail_message import decode, to_email -from operator import itemgetter -from osv import osv, fields import re import time +import xmlrpclib +from email.utils import parsedate +from email.message import Message + +from osv import osv, fields +from mail_message import decode, to_email import tools from tools.translate import _ -import xmlrpclib +from tools.safe_eval import safe_eval as eval _logger = logging.getLogger(__name__) +def decode_header(message, header, separator=' '): + return separator.join(map(decode,message.get_all(header, []))) + +class many2many_reference(fields.many2many): + """ many2many_reference is an override of fields.many2many. It manages + many2many-like table where one id is given by two fields, res_model + and res_id. + """ + + def _get_query_and_where_params(self, cr, model, ids, values, where_params): + """ Add in where: + - mail_followers.res_model = 'crm.lead' + """ + query = 'SELECT %(rel)s.%(id2)s, %(rel)s.%(id1)s \ + FROM %(rel)s, %(from_c)s \ + WHERE %(rel)s.%(id1)s IN %%s \ + AND %(rel)s.%(id2)s = %(tbl)s.id \ + AND %(rel)s.res_model = %%s \ + %(where_c)s \ + %(order_by)s \ + %(limit)s \ + OFFSET %(offset)d' \ + % values + where_params = [model._name] + where_params + return query, where_params + + def set(self, cr, model, id, name, values, user=None, context=None): + """ Override to add the res_model field in queries. """ + if not values: return + rel, id1, id2 = self._sql_names(model) + obj = model.pool.get(self._obj) + for act in values: + if not (isinstance(act, list) or isinstance(act, tuple)) or not act: + continue + if act[0] == 0: + idnew = obj.create(cr, user, act[2], context=context) + cr.execute('INSERT INTO '+rel+' ('+id1+','+id2+',res_model) VALUES (%s,%s,%s)', (id, idnew, model._name)) + elif act[0] == 3: + cr.execute('DELETE FROM '+rel+' WHERE '+id1+'=%s AND '+id2+'=%s AND res_model=%s', (id, act[1], model._name)) + elif act[0] == 4: + # following queries are in the same transaction - so should be relatively safe + cr.execute('SELECT 1 FROM '+rel+' WHERE '+id1+'=%s AND '+id2+'=%s AND res_model=%s', (id, act[1], model._name)) + if not cr.fetchone(): + cr.execute('INSERT INTO '+rel+' ('+id1+','+id2+',res_model) VALUES (%s,%s,%s)', (id, act[1], model._name)) + elif act[0] == 6: + d1, d2,tables = obj.pool.get('ir.rule').domain_get(cr, user, obj._name, context=context) + if d1: + d1 = ' and ' + ' and '.join(d1) + else: + d1 = '' + cr.execute('DELETE FROM '+rel+' WHERE '+id1+'=%s AND res_model=%s AND '+id2+' IN (SELECT '+rel+'.'+id2+' FROM '+rel+', '+','.join(tables)+' WHERE '+rel+'.'+id1+'=%s AND '+rel+'.'+id2+' = '+obj._table+'.id '+ d1 +')', [id, model._name, id]+d2) + for act_nbr in act[2]: + cr.execute('INSERT INTO '+rel+' ('+id1+','+id2+',res_model) VALUES (%s,%s,%s)', (id, act_nbr, model._name)) + else: + return super(many2many_reference, self).set(cr, model, id, name, values, user, context) + class mail_thread(osv.Model): '''Mixin model, meant to be inherited by any model that needs to act as a discussion topic on which messages can be attached. @@ -55,22 +113,24 @@ class mail_thread(osv.Model): default implementation will work for any model. However it is common to override at least the ``message_new`` and ``message_update`` methods (calling ``super``) to add model-specific behavior at - creation and update of a thread; and ``message_get_subscribers`` - to manage more precisely the social aspect of the thread through - the followers. + creation and update of a thread. + + #TODO: UPDATE WITH SUBTYPE / NEW FOLLOW MECHANISM ''' _name = 'mail.thread' _description = 'Email Thread' - def _get_message_ids(self, cr, uid, ids, name, args, context=None): - res = {} + def _get_message_data(self, cr, uid, ids, field_names, args, context=None): + res = dict.fromkeys(ids) for id in ids: - message_ids = self.message_search(cr, uid, [id], context=context) - subscriber_ids = self.message_get_subscribers(cr, uid, [id], context=context) - res[id] = { - 'message_ids': message_ids, - 'message_summary': "<span><span class='oe_e'>9</span> %d</span> <span><span class='oe_e'>+</span> %d</span>" % (len(message_ids), len(subscriber_ids)), - } + res[id] = {'message_ids': self.message_search(cr, uid, [id], context=context)} + for thread in self.browse(cr, uid, ids, context=context): + message_follower_ids = [follower.id for follower in thread.message_follower_ids] + res[thread.id].update({ + 'message_is_follower': uid in message_follower_ids, + 'message_summary': "<span><span class='oe_e'>9</span> %d</span> <span><span class='oe_e'>+</span> %d</span>" % + (len(res[thread.id]['message_ids']), len(thread.message_follower_ids)) + }) return res def _search_message_ids(self, cr, uid, obj, name, args, context=None): @@ -79,20 +139,27 @@ class mail_thread(osv.Model): return [('id', 'in', msg_ids)] _columns = { - 'message_ids': fields.function(_get_message_ids, + 'message_ids': fields.function(_get_message_data, fnct_search=_search_message_ids, type='one2many', obj='mail.message', _fields_id = 'res_id', - string='Temp messages', multi="_get_message_ids", - help="Functional field holding messages related to the current document."), + string='Messages', multi="_get_message_data", + help="Field holding discussion about the current document."), + 'message_follower_ids': many2many_reference('res.users', + rel='mail_followers', id1='res_id', id2='user_id', string="Followers", + help="Followers of the document. The followers have full access to " \ + "the document details, as well as the conversation."), + 'message_is_follower': fields.function(_get_message_data, method=True, + type='boolean', string='I am Follower', multi='_get_message_data', + help='True if the current user is following the current document.'), 'message_state': fields.boolean('Read', help="When checked, new messages require your attention."), - 'message_summary': fields.function(_get_message_ids, method=True, - type='text', string='Summary', multi="_get_message_ids", + 'message_summary': fields.function(_get_message_data, method=True, + type='text', string='Summary', multi='_get_message_data', help="Holds the Chatter summary (number of messages, ...). "\ "This summary is directly in html format in order to "\ "be inserted in kanban views."), } - + _defaults = { 'message_state': True, } @@ -102,40 +169,93 @@ class mail_thread(osv.Model): #------------------------------------------------------ def create(self, cr, uid, vals, context=None): - """Automatically subscribe the creator """ + """ Override of create to subscribe : + - the writer + - followers given by the monitored fields + """ thread_id = super(mail_thread, self).create(cr, uid, vals, context=context) - if thread_id: - self.message_subscribe(cr, uid, [thread_id], [uid], context=context) + followers_command = self.message_get_automatic_followers(cr, uid, thread_id, vals, fetch_missing=False, context=context) + if followers_command: + self.write(cr, uid, [thread_id], {'message_follower_ids': followers_command}, context=context) return thread_id def write(self, cr, uid, ids, vals, context=None): - """Automatically subscribe the writer""" + """ Override of write to subscribe : + - the writer + - followers given by the monitored fields + """ if isinstance(ids, (int, long)): ids = [ids] - write_res = super(mail_thread, self).write(cr, uid, ids, vals, context=context); - if write_res: - self.message_subscribe(cr, uid, ids, [uid], context=context) - return write_res; + for id in ids: + # copy original vals because we are going to modify it + specific_vals = dict(vals) + # we modify followers: do not subscribe the uid + if specific_vals.get('message_follower_ids'): + followers_command = self.message_get_automatic_followers(cr, uid, id, specific_vals, add_uid=False, context=context) + specific_vals['message_follower_ids'] += followers_command + else: + followers_command = self.message_get_automatic_followers(cr, uid, id, specific_vals, context=context) + specific_vals['message_follower_ids'] = followers_command + write_res = super(mail_thread, self).write(cr, uid, ids, specific_vals, context=context) + return True def unlink(self, cr, uid, ids, context=None): - """Override unlink, to automatically delete - - subscriptions - - messages + """Override unlink, to automatically delete messages that are linked with res_model and res_id, not through a foreign key with a 'cascade' ondelete attribute. Notifications will be deleted with messages """ - subscr_obj = self.pool.get('mail.subscription') msg_obj = self.pool.get('mail.message') - # delete subscriptions - subscr_to_del_ids = subscr_obj.search(cr, uid, [('res_model', '=', self._name), ('res_id', 'in', ids)], context=context) - subscr_obj.unlink(cr, uid, subscr_to_del_ids, context=context) # delete messages and notifications msg_to_del_ids = msg_obj.search(cr, uid, [('model', '=', self._name), ('res_id', 'in', ids)], context=context) msg_obj.unlink(cr, uid, msg_to_del_ids, context=context) - return super(mail_thread, self).unlink(cr, uid, ids, context=context) + def message_get_automatic_followers(self, cr, uid, id, record_vals, add_uid=True, fetch_missing=False, context=None): + """ Return the command for the many2many follower_ids field to manage + subscribers. Behavior : + - get the monitored fields (ex: ['user_id', 'responsible_id']); those + fields should be relationships to res.users (#TODO: res.partner) + - if this field is in the record_vals: it means it has been modified + thus add its value to the followers + - if this fields is not in record_vals, but fetch_missing paramter + is set to True: fetch the value in the record (use: at creation + for default values, not present in record_vals) + - if add_uid: add the current user (for example: writer is subscriber) + - generate the command and return it + This method has to be used on 1 id, because otherwise it would imply + to track which user.id is used for which record.id. + + :param record_vals: values given to the create method of the new + record, or values updated in a write. + :param monitored_fields: a list of fields that are monitored. Those + fields must be many2one fields to the res.users model. + :param fetch_missing: is set to True, the method will read the + record to find values that are not present in record_vals. + + #TODO : UPDATE WHEN MERGING TO PARTNERS + """ + # get monitored fields + monitored_fields = self.message_get_monitored_follower_fields(cr, uid, [id], context=context) + modified_fields = [field for field in monitored_fields if field in record_vals.iterkeys()] + other_fields = [field for field in monitored_fields if field not in record_vals.iterkeys()] if fetch_missing else [] + # for each monitored field: if in record_vals, it has been modified/added + follower_ids = [] + for field in modified_fields: + # do not add 'False' + if record_vals.get(fields): + follower_ids.append(record_vals.get(field)) + # for other fields: read in record if fetch_missing (otherwise list is void) + for field in other_fields: + record = self.browse(cr, uid, id, context=context) + value = getattr(record, field) + if value: + follower_ids.append(value) + # add uid if asked and not already present + if add_uid and uid not in follower_ids: + follower_ids.append(uid) + return self.message_subscribe_get_command(cr, uid, follower_ids, context=context) + #------------------------------------------------------ # mail.message wrappers and tools #------------------------------------------------------ @@ -144,22 +264,21 @@ class mail_thread(osv.Model): """ OpenChatter: wrapper of mail.message create method - creates the mail.message - automatically subscribe the message writer - - push the message to subscribed users + - push the message to followers """ if context is None: context = {} - - message_obj = self.pool.get('mail.message') - notification_obj = self.pool.get('mail.notification') - body = vals.get('body_html', '') if vals.get('content_subtype') == 'html' else vals.get('body_text', '') - - # automatically subscribe the writer of the message - if vals['user_id']: - self.message_subscribe(cr, uid, [thread_id], [vals['user_id']], context=context) - + # create message - msg_id = message_obj.create(cr, uid, vals, context=context) - + msg_id = self.pool.get('mail.message').create(cr, uid, vals, context=context) + + # automatically subscribe the writer of the message + if vals.get('user_id'): + record = self.browse(cr, uid, thread_id, context=context) + follower_ids = [follower.id for follower in record.message_follower_ids] + if vals.get('user_id') not in follower_ids: + self.message_subscribe(cr, uid, [thread_id], [vals.get('user_id')], context=context) + # Set as unread if writer is not the document responsible self.message_create_set_unread(cr, uid, [thread_id], context=context) @@ -168,28 +287,27 @@ class mail_thread(osv.Model): return msg_id # get users that will get a notification pushed + notification_obj = self.pool.get('mail.notification') user_to_push_ids = self.message_get_user_ids_to_notify(cr, uid, [thread_id], vals, context=context) for id in user_to_push_ids: notification_obj.create(cr, uid, {'user_id': id, 'message_id': msg_id}, context=context) # create the email to send - email_id = self.message_create_notify_by_email(cr, uid, vals, user_to_push_ids, context=context) + self.message_create_notify_by_email(cr, uid, vals, user_to_push_ids, context=context) return msg_id def message_get_user_ids_to_notify(self, cr, uid, thread_ids, new_msg_vals, context=None): - subscription_obj = self.pool.get('mail.subscription') # get body body = new_msg_vals.get('body_html', '') if new_msg_vals.get('content_subtype') == 'html' else new_msg_vals.get('body_text', '') # get subscribers - notif_user_ids = self.message_get_subscribers(cr, uid, thread_ids, context=context) - - # add users requested via parsing message (@login) - notif_user_ids += self.message_parse_users(cr, uid, body, context=context) - + subscr_obj = self.pool.get('mail.followers') + subscr_ids = subscr_obj.search(cr, uid, ['&', ('res_model', '=', self._name), ('res_id', 'in', thread_ids)], context=context) + notif_user_ids = [sub['user_id'][0] for sub in subscr_obj.read(cr, uid, subscr_ids, ['user_id'], context=context)] + # add users requested to perform an action (need_action mechanism) - if hasattr(self, 'get_needaction_user_ids'): + if hasattr(self, 'get_needaction_user_ids') and self._columns.get('user_id'): user_ids_dict = self.get_needaction_user_ids(cr, uid, thread_ids, context=context) for id, user_ids in user_ids_dict.iteritems(): notif_user_ids += user_ids @@ -205,17 +323,6 @@ class mail_thread(osv.Model): notif_user_ids = list(set(notif_user_ids)) return notif_user_ids - def message_parse_users(self, cr, uid, string, context=None): - """Parse message content - - if find @login -(^|\s)@((\w|@|\.)*)-: returns the related ids - this supports login that are emails (such as @raoul@grobedon.net) - """ - regex = re.compile('(^|\s)@((\w|@|\.)*)') - login_lst = [item[1] for item in regex.findall(string)] - if not login_lst: return [] - user_ids = self.pool.get('res.users').search(cr, uid, [('login', 'in', login_lst)], context=context) - return user_ids - #------------------------------------------------------ # Generic message api #------------------------------------------------------ @@ -301,7 +408,6 @@ class mail_thread(osv.Model): threads = model_pool.browse(cr, uid, threads, context=context) ir_attachment = self.pool.get('ir.attachment') - mail_message = self.pool.get('mail.message') new_msg_ids = [] for thread in threads: @@ -330,7 +436,7 @@ class mail_thread(osv.Model): data = { 'subject': subject, - 'body_text': body_text or (hasattr(thread, 'description') and thread.description or ''), + 'body_text': body_text or thread._model._columns.get('description') and thread.description or '', 'body_html': body_html or '', 'parent_id': parent_id, 'date': email_date or fields.datetime.now(), @@ -353,7 +459,7 @@ class mail_thread(osv.Model): data.update({ 'email_to': email_to, 'email_from': email_from or \ - (hasattr(thread, 'user_id') and thread.user_id and thread.user_id.user_email), + thread._model._columns.get('user_id') and thread.user_id and thread.user_id.user_email, 'email_cc': email_cc, 'email_bcc': email_bcc, 'references': references, @@ -501,10 +607,6 @@ class mail_thread(osv.Model): """ Retrieve all attachments names """ map_id_to_name = dict((attachment_id, '') for message in messages for attachment_id in message['attachment_ids']) - map_id_to_name = {} - for msg in messages: - for attach_id in msg["attachment_ids"]: - map_id_to_name[attach_id] = '' # use empty string as a placeholder ids = map_id_to_name.keys() names = self.pool.get('ir.attachment').name_get(cr, uid, ids, context=context) @@ -560,79 +662,127 @@ class mail_thread(osv.Model): msgs = msg_obj.read(cr, uid, msg_ids, context=context) return msgs - - def _get_user(self, cr, uid, alias, context): - """ - param alias: browse record of alias. - return: int user_id. - """ - - user_obj = self.pool.get('res.user') - user_id = 1 - if alias.alias_user_id: - user_id = alias.alias_user_id.id - #if user_id not defined in the alias then search related user using name of Email sender - else: - from_email = msg.get('from') - user_ids = user_obj.search(cr, uid, [('name','=',from_email)], context) - if user_ids: - user_id = user_obj.browse(cr, uid, user_ids[0], context).id - return user_id - - def message_catchall(self, cr, uid, message, context=None): - """ - Process incoming mail and call messsage_process using details of the mail.alias model - else raise Exception so that mailgate script will reject the mail and - send notification mail sender that this mailbox does not exist so your mail have been rejected. - """ - mail_alias = self.pool.get('mail.alias') - mail_message = self.pool.get('mail.message') - if isinstance(message, xmlrpclib.Binary): - message = str(message.data) - if isinstance(message, unicode): - message = message.encode('utf-8') - msg_txt = email.message_from_string(message) - msg = mail_message.parse_message(msg_txt) - alias_name = msg.get('to').split("@")[0] # @@@@ - alias_ids = mail_alias.search(cr, uid, [('alias_name','=',alias_name)]) - #if alias found then call message_process method. # @@@@ - if alias_ids: - alias_id = mail_alias.browse(cr, uid, alias_ids[0], context) - user_id = self._get_user( cr, uid, alias_id, context) - alias_defaults = dict(eval(alias_id.alias_defaults or {})) - self.message_process(cr, user_id, alias_id.alias_model_id.model, message, - custom_values=alias_defaults, - thread_id=alias_id.alias_force_thread_id or False, - context=context) - else: - #if Mail box for the intended Mail Alias then give logger warning - _logger.warning("No Mail Alias Found for the name '%s'."%(alias_name)) - raise # @@@@ - return True + def _message_find_user_id(self, cr, uid, message, context=None): + from_local_part = to_email(decode(message.get('From')))[0] + user_ids = self.pool.get('res.users').search(cr, uid, [('login', '=', from_local_part)], context=context) + return user_ids[0] if user_ids else uid #------------------------------------------------------ # Mail gateway #------------------------------------------------------ # message_process will call either message_new or message_update. + def message_route(self, cr, uid, message, model=None, thread_id=None, + custom_values=None, context=None): + """Attempt to figure out the correct target model, thread_id, + custom_values and user_id to use for an incoming message. + Multiple values may be returned, if a message had multiple + recipients matching existing mail.aliases, for example. + + The following heuristics are used, in this order: + 1. If the message replies to an existing thread_id, and + properly contains the thread model in the 'In-Reply-To' + header, use this model/thread_id pair, and ignore + custom_value (not needed as no creation will take place) + 2. Look for a mail.alias entry matching the message + recipient, and use the corresponding model, thread_id, + custom_values and user_id. + 3. Fallback to the ``model``, ``thread_id`` and ``custom_values`` + provided. + 4. If all the above fails, raise an exception. + + :param string message: an email.message instance + :param string model: the fallback model to use if the message + does not match any of the currently configured mail aliases + (may be None if a matching alias is supposed to be present) + :type dict custom_values: optional dictionary of default field values + to pass to ``message_new`` if a new record needs to be created. + Ignored if the thread record already exists, and also if a + matching mail.alias was found (aliases define their own defaults) + :param int thread_id: optional ID of the record/thread from ``model`` + to which this mail should be attached. Only used if the message + does not reply to an existing thread and does not match any mail alias. + :return: list of [model, thread_id, custom_values, user_id] + """ + assert isinstance(message, Message), 'message must be an email.message.Message at this point' + message_id = message.get('Message-Id') + + # 1. Verify if this is a reply to an existing thread + references = decode_header(message, 'References') or decode_header(message, 'In-Reply-To') + ref_match = references and tools.reference_re.search(references) + if ref_match: + thread_id = int(ref_match.group(1)) + model = ref_match.group(2) or model + model_pool = self.pool.get(model) + if thread_id and model and model_pool and model_pool.exists(cr, uid, thread_id) \ + and hasattr(model_pool, 'message_update'): + _logger.debug('Routing mail with Message-Id %s: direct reply to model: %s, thread_id: %s, custom_values: %s, uid: %s', + message_id, model, thread_id, custom_values, uid) + return [(model, thread_id, custom_values, uid)] + + # 2. Look for a matching mail.alias entry + # Delivered-To is a safe bet in most modern MTAs, but we have to fallback on To + Cc values + # for all the odd MTAs out there, as there is no standard header for the envelope's `rcpt_to` value. + rcpt_tos = decode_header(message, 'Delivered-To') or \ + ','.join([decode_header(message, 'To'), + decode_header(message, 'Cc'), + decode_header(message, 'Resent-To'), + decode_header(message, 'Resent-Cc')]) + local_parts = [e.split('@')[0] for e in to_email(rcpt_tos)] + if local_parts: + mail_alias = self.pool.get('mail.alias') + alias_ids = mail_alias.search(cr, uid, [('alias_name', 'in', local_parts)]) + if alias_ids: + routes = [] + for alias in mail_alias.browse(cr, uid, alias_ids, context=context): + user_id = alias.alias_user_id.id + if not user_id: + user_id = self._message_find_user_id(cr, uid, message, context=context) + routes.append((alias.alias_model_id.model, alias.alias_force_thread_id, \ + eval(alias.alias_defaults), user_id)) + _logger.debug('Routing mail with Message-Id %s: direct alias match: %r', message_id, routes) + return routes + + # 3. Fallback to the provided parameters, if they work + model_pool = self.pool.get(model) + if not thread_id: + # Legacy: fallback to matching [ID] in the Subject + match = tools.res_re.search(decode_header(message, 'Subject')) + thread_id = match and match.group(1) + assert thread_id and hasattr(model_pool, 'message_update') or hasattr(model_pool, 'message_new'), \ + "No possible route found for incoming message with Message-Id %s. " \ + "Create an appropriate mail.alias or force the destination model." % message_id + if thread_id and not model_pool.exists(cr, uid, thread_id): + _logger.warning('Received mail reply to missing document %s! Ignoring and creating new document instead for Message-Id %s', + thread_id, message_id) + thread_id = None + _logger.debug('Routing mail with Message-Id %s: fallback to model:%s, thread_id:%s, custom_values:%s, uid:%s', + message_id, model, thread_id, custom_values, uid) + return [(model, thread_id, custom_values, uid)] + + def message_process(self, cr, uid, model, message, custom_values=None, save_original=False, strip_attachments=False, thread_id=None, context=None): - """Process an incoming RFC2822 email message related to the - given thread model, relying on ``mail.message.parse()`` - for the parsing operation, and then calling ``message_new`` - (if the thread record did not exist) or ``message_update`` - (if it did), then calling ``message_forward`` to automatically - notify other people that should receive this message. - - :param string model: the thread model for which a new message - must be processed - :param message: source of the RFC2822 mail + """Process an incoming RFC2822 email message, relying on + ``mail.message.parse()`` for the parsing operation, + and ``message_route()`` to figure out the target model. + + Once the target model is known, its ``message_new`` method + is called with the new message (if the thread record did not exist) + or its ``message_update`` method (if it did). Finally, + ``message_forward`` is called to automatically notify other + people that should receive this message. + + :param string model: the fallback model to use if the message + does not match any of the currently configured mail aliases + (may be None if a matching alias is supposed to be present) + :param message: source of the RFC2822 message :type message: string or xmlrpclib.Binary :type dict custom_values: optional dictionary of field values - to pass to ``message_new`` if a new - record needs to be created. Ignored - if the thread record already exists. + to pass to ``message_new`` if a new record needs to be created. + Ignored if the thread record already exists, and also if a + matching mail.alias was found (aliases define their own defaults) :param bool save_original: whether to keep a copy of the original email source attached to the message after it is imported. :param bool strip_attachments: whether to strip all attachments @@ -642,66 +792,41 @@ class mail_thread(osv.Model): overrides the automatic detection based on the message headers. """ + if context is None: context = {} + # extract message bytes - we are forced to pass the message as binary because # we don't know its encoding until we parse its headers and hence can't # convert it to utf-8 for transport between the mailgate script and here. if isinstance(message, xmlrpclib.Binary): message = str(message.data) - - if context is None: context = {} - - mail_message = self.pool.get('mail.message') - model_pool = self.pool.get(model) - if self._name != model: - context.update({'thread_model': model}) - - # Parse Message # Warning: message_from_string doesn't always work correctly on unicode, # we must use utf-8 strings here :-( if isinstance(message, unicode): message = message.encode('utf-8') msg_txt = email.message_from_string(message) - msg = mail_message.parse_message(msg_txt, save_original=save_original, context=context) - - # update state - msg['state'] = 'received' - + routes = self.message_route(cr, uid, msg_txt, model, + thread_id, custom_values, + context=context) + msg = self.pool.get('mail.message').parse_message(msg_txt, save_original=save_original, context=context) + msg['state'] = 'received' if strip_attachments and 'attachments' in msg: del msg['attachments'] - - # Create New Record into particular model - def create_record(msg): - if hasattr(model_pool, 'message_new'): - return model_pool.message_new(cr, uid, msg, - custom_values, - context=context) - if not thread_id and (msg.get('references') or msg.get('in-reply-to')): - references = msg.get('references') or msg.get('in-reply-to') - if '\r\n' in references: - references = references.split('\r\n') + for model, thread_id, custom_values, user_id in routes: + if self._name != model: + context.update({'thread_model': model}) + model_pool = self.pool.get(model) + assert thread_id and hasattr(model_pool, 'message_update') or hasattr(model_pool, 'message_new'), \ + "Undeliverable mail with Message-Id %s, model %s does not accept incoming emails" % \ + (msg['message-id'], model) + if thread_id and hasattr(model_pool, 'message_update'): + model_pool.message_update(cr, user_id, [thread_id], msg, context=context) else: - references = references.split(' ') - for ref in references: - ref = ref.strip() - thread_id = tools.reference_re.search(ref) - if not thread_id: - thread_id = tools.res_re.search(msg['subject']) - if thread_id: - thread_id = int(thread_id.group(1)) - if not model_pool.exists(cr, uid, thread_id) or \ - not hasattr(model_pool, 'message_update'): - # referenced thread not found or not updatable, - # -> create a new one - thread_id = False - if not thread_id: - thread_id = create_record(msg) - else: - model_pool.message_update(cr, uid, [thread_id], msg, {}, context=context) - # To forward the email to other followers - self.message_forward(cr, uid, model, [thread_id], msg_txt, context=context) - # Set as Unread - model_pool.message_mark_as_unread(cr, uid, [thread_id], context=context) - return thread_id + thread_id = model_pool.message_new(cr, user_id, msg, custom_values, context=context) + + # Forward the email to other followers + self.message_forward(cr, uid, model, [thread_id], msg_txt, context=context) + model_pool.message_mark_as_unread(cr, uid, [thread_id], context=context) + return True def message_new(self, cr, uid, msg_dict, custom_values=None, context=None): """Called by ``message_process`` when a new message is received @@ -735,7 +860,7 @@ class mail_thread(osv.Model): fields = model_pool.fields_get(cr, uid, context=context) data = model_pool.default_get(cr, uid, fields, context=context) if 'name' in fields and not data.get('name'): - data['name'] = msg_dict.get('from', '') + data['name'] = msg_dict.get('subject', '') if custom_values and isinstance(custom_values, dict): data.update(custom_values) res_id = model_pool.create(cr, uid, data, context=context) @@ -771,7 +896,7 @@ class mail_thread(osv.Model): for thread in self.browse(cr, uid, ids, context=context): l = set() for message in thread.message_ids: - l.add((message.user_id and message.user_id.user_email) or '') + l.add((message.user_id and message.user_id.email) or '') l.add(message.email_from or '') l.add(message.email_cc or '') res[thread.id] = filter(None, l) @@ -791,7 +916,6 @@ class mail_thread(osv.Model): """ model_pool = self.pool.get(model) smtp_server_obj = self.pool.get('ir.mail_server') - mail_message = self.pool.get('mail.message') for res in model_pool.browse(cr, uid, thread_ids, context=context): if hasattr(model_pool, 'message_thread_followers'): followers = model_pool.message_thread_followers(cr, uid, [res.id])[res.id] @@ -805,7 +929,7 @@ class mail_thread(osv.Model): forward_to = [i for i in message_followers_emails if (i and (i not in message_recipients))] if forward_to: # TODO: we need an interface for this for all types of objects, not just leads - if hasattr(res, 'section_id'): + if model_pool._columns.get('section_id'): del msg['reply-to'] msg['reply-to'] = res.section_id.reply_to @@ -881,70 +1005,41 @@ class mail_thread(osv.Model): # Subscription mechanism #------------------------------------------------------ - def message_get_subscribers(self, cr, uid, ids, context=None): - """ Returns the current document followers. Basically this method - checks in mail.subscription for entries with matching res_model, - res_id. - This method can be overriden to add implicit subscribers, such - as project managers, by adding their user_id to the list of - ids returned by this method. - """ - subscr_obj = self.pool.get('mail.subscription') - subscr_ids = subscr_obj.search(cr, uid, ['&', ('res_model', '=', self._name), ('res_id', 'in', ids)], context=context) - return [sub['user_id'][0] for sub in subscr_obj.read(cr, uid, subscr_ids, ['user_id'], context=context)] - - def message_read_subscribers(self, cr, uid, ids, fields=['id', 'name', 'image_small'], context=None): - """ Returns the current document followers as a read result. Used - mainly for Chatter having only one method to call to have - details about users. - """ - user_ids = self.message_get_subscribers(cr, uid, ids, context=context) - return self.pool.get('res.users').read(cr, uid, user_ids, fields=fields, context=context) - - def message_is_subscriber(self, cr, uid, ids, user_id = None, context=None): - """ Check if uid or user_id (if set) is a subscriber to the current - document. - - :param user_id: if set, check is done on user_id; if not set - check is done on uid + def message_get_monitored_follower_fields(self, cr, uid, ids, context=None): + """ Returns a list of fields containing a res.user.id. Those fields + will be checked to automatically subscribe those users. """ - sub_user_id = uid if user_id is None else user_id - if sub_user_id in self.message_get_subscribers(cr, uid, ids, context=context): - return True - return False + return [] def message_subscribe(self, cr, uid, ids, user_ids = None, context=None): """ Subscribe the user (or user_ids) to the current document. :param user_ids: a list of user_ids; if not set, subscribe uid instead + :param return: new value of followers, for Chatter """ - subscription_obj = self.pool.get('mail.subscription') to_subscribe_uids = [uid] if user_ids is None else user_ids - create_ids = [] - for id in ids: - already_subscribed_user_ids = self.message_get_subscribers(cr, uid, [id], context=context) - for user_id in to_subscribe_uids: - if user_id in already_subscribed_user_ids: continue - create_ids.append(subscription_obj.create(cr, uid, {'res_model': self._name, 'res_id': id, 'user_id': user_id}, context=context)) - return create_ids + write_res = self.write(cr, uid, ids, {'message_follower_ids': self.message_subscribe_get_command(cr, uid, to_subscribe_uids, context)}, context=context) + return [follower.id for thread in self.browse(cr, uid, ids, context=context) for follower in thread.message_follower_ids] + + def message_subscribe_get_command(self, cr, uid, follower_ids, context=None): + """ Generate the many2many command to add followers. """ + return [(4, id) for id in follower_ids] def message_unsubscribe(self, cr, uid, ids, user_ids = None, context=None): """ Unsubscribe the user (or user_ids) from the current document. :param user_ids: a list of user_ids; if not set, subscribe uid instead + :param return: new value of followers, for Chatter """ - # Trying to unsubscribe somebody not in subscribers: returns False - # if special management is needed; allows to know that an automatically - # subscribed user tries to unsubscribe and allows to warn him to_unsubscribe_uids = [uid] if user_ids is None else user_ids - subscription_obj = self.pool.get('mail.subscription') - to_delete_sub_ids = subscription_obj.search(cr, uid, - ['&', '&', ('res_model', '=', self._name), ('res_id', 'in', ids), ('user_id', 'in', to_unsubscribe_uids)], context=context) - if not to_delete_sub_ids: - return False - return subscription_obj.unlink(cr, uid, to_delete_sub_ids, context=context) + write_res = self.write(cr, uid, ids, {'message_follower_ids': self.message_unsubscribe_get_command(cr, uid, to_unsubscribe_uids, context)}, context=context) + return [follower.id for thread in self.browse(cr, uid, ids, context=context) for follower in thread.message_follower_ids] + + def message_unsubscribe_get_command(self, cr, uid, follower_ids, context=None): + """ Generate the many2many command to remove followers. """ + return [(3, id) for id in follower_ids] #------------------------------------------------------ # Notification API @@ -975,19 +1070,16 @@ class mail_thread(osv.Model): # remove message writer if user_to_notify_ids.count(new_msg_values.get('user_id')) > 0: user_to_notify_ids.remove(new_msg_values.get('user_id')) - - # get user_ids directly asked - user_to_push_from_parse_ids = self.message_parse_users(cr, uid, body, context=context) - + # try to find an email_to email_to = '' for user in res_users_obj.browse(cr, uid, user_to_notify_ids, context=context): - if not user.notification_email_pref == 'all' and \ - not (user.notification_email_pref == 'to_me' and user.id in user_to_push_from_parse_ids): + # TO BE REFACTORED BY FP, JUSTE REMOVED TO_ME, NOT SURE WHAT S NEW BEHAVIOR + if not user.notification_email_pref == 'all': continue - if not user.user_email: + if not user.email: continue - email_to = '%s, %s' % (email_to, user.user_email) + email_to = '%s, %s' % (email_to, user.email) email_to = email_to.lstrip(', ') # did not find any email address: not necessary to create an email @@ -998,7 +1090,7 @@ class mail_thread(osv.Model): current_user = res_users_obj.browse(cr, uid, [uid], context=context)[0] email_from = new_msg_values.get('email_from') if not email_from: - email_from = current_user.user_email + email_from = current_user.email # get email content, create it (with mail_message.create) email_values = self.message_create_notify_get_email_dict(cr, uid, new_msg_values, email_from, email_to, context) @@ -1047,14 +1139,14 @@ class mail_thread(osv.Model): """ When creating a new message, set as unread if uid is not the object responsible. """ for obj in self.browse(cr, uid, ids, context=context): - if obj.message_state and hasattr(obj, 'user_id') and (not obj.user_id or obj.user_id.id != uid): + if obj.message_state and self._columns.get('user_id') and (not obj.user_id or obj.user_id.id != uid): self.message_mark_as_unread(cr, uid, [obj.id], context=context) def message_check_and_set_unread(self, cr, uid, ids, context=None): """ Set unread if uid is the object responsible or if the object has no responsible. """ for obj in self.browse(cr, uid, ids, context=context): - if obj.message_state and hasattr(obj, 'user_id') and (not obj.user_id or obj.user_id.id == uid): + if obj.message_state and self._columns.get('user_id') and (not obj.user_id or obj.user_id.id == uid): self.message_mark_as_unread(cr, uid, [obj.id], context=context) def message_mark_as_unread(self, cr, uid, ids, context=None): @@ -1064,7 +1156,7 @@ class mail_thread(osv.Model): def message_check_and_set_read(self, cr, uid, ids, context=None): """ Set read if uid is the object responsible. """ for obj in self.browse(cr, uid, ids, context=context): - if not obj.message_state and hasattr(obj, 'user_id') and obj.user_id and obj.user_id.id == uid: + if not obj.message_state and self._columns.get('user_id') and obj.user_id and obj.user_id.id == uid: self.message_mark_as_read(cr, uid, [obj.id], context=context) def message_mark_as_read(self, cr, uid, ids, context=None): diff --git a/addons/mail/res_config_view.xml b/addons/mail/res_config_view.xml index a17a1f22a80..c4bc23c9357 100644 --- a/addons/mail/res_config_view.xml +++ b/addons/mail/res_config_view.xml @@ -5,7 +5,6 @@ <field name="name">base.config.settings.mail.alias</field> <field name="model">base.config.settings</field> <field name="inherit_id" ref="base_setup.view_general_configuration"/> - <field name="type">form</field> <field name="arch" type="xml"> <xpath expr="/form/group[last()]/div[last()]/div[last()]" position='after' version="7.0"> <div> diff --git a/addons/mail/res_partner.py b/addons/mail/res_partner.py index 3dc1f91d857..d3a61b31a8a 100644 --- a/addons/mail/res_partner.py +++ b/addons/mail/res_partner.py @@ -20,20 +20,28 @@ ############################################################################## from osv import osv -from osv import fields -class res_partner_mail(osv.osv): +class res_partner_mail(osv.Model): """ Inherits partner and adds CRM information in the partner form """ _name = "res.partner" _inherit = ['res.partner', 'mail.thread'] def message_search_get_domain(self, cr, uid, ids, context=None): """ Override of message_search_get_domain for partner discussion page. - The purpose is to add messages directly sent to the partner. + The purpose is to add messages directly sent to the partner. It also + adds messages pushed to the related user, if any, using @login. """ initial_domain = super(res_partner_mail, self).message_search_get_domain(cr, uid, ids, context=context) - if self._name == 'res.partner': # to avoid models inheriting from res.partner - search_domain = ['|'] + initial_domain + ['|', ('partner_id', 'in', ids), ('partner_ids', 'in', ids)] + # to avoid models inheriting from res.partner + if self._name != 'res.partner': + return initial_domain + # add message linked to the partner + search_domain = ['|'] + initial_domain + ['|', ('partner_id', 'in', ids), ('partner_ids', 'in', ids)] + # if partner is linked to a user: find @login + res_users_obj = self.pool.get('res.users') + user_ids = res_users_obj.search(cr, uid, [('partner_id', 'in', ids)], context=context) + for user in res_users_obj.browse(cr, uid, user_ids, context=context): + search_domain = ['|'] + search_domain + ['|', ('body_text', 'like', '@%s' % (user.login)), ('body_html', 'like', '@%s' % (user.login))] return search_domain # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/mail/res_partner_view.xml b/addons/mail/res_partner_view.xml index 8b4d89f89f4..2a8430926d5 100644 --- a/addons/mail/res_partner_view.xml +++ b/addons/mail/res_partner_view.xml @@ -5,13 +5,13 @@ <record id="view_emails_partner_info_form" model="ir.ui.view"> <field name="name">res.partner.emails.info.inherit</field> <field name="model">res.partner</field> - <field name="type">form</field> <field name="inherit_id" ref="base.view_partner_form"/> <field name="arch" type="xml"> <xpath expr="//sheet" position="after"> <div class="oe_chatter"> <field name="message_ids" widget="mail_thread" options='{"thread_level": 1}'/> + <field name="message_follower_ids" widget="mail_followers"/> </div> </xpath> </field> diff --git a/addons/mail/res_users.py b/addons/mail/res_users.py index 8a590fc318f..f985ac4f88d 100644 --- a/addons/mail/res_users.py +++ b/addons/mail/res_users.py @@ -28,32 +28,32 @@ from tools.translate import _ _logger = logging.getLogger(__name__) -class res_users(osv.osv): +class res_users(osv.Model): """ Update of res.users class - add a preference about sending emails about notifications - make a new user follow itself - add a welcome message """ _name = 'res.users' - _inherit = ['res.users', 'mail.thread'] + _inherit = ['res.users'] _inherits = {'mail.alias': 'alias_id'} - + _columns = { 'notification_email_pref': fields.selection([ - ('all', 'All feeds'), - ('comments', 'Only comments'), - ('to_me', 'Only when sent directly to me'), + ('all', 'All Feeds'), + ('to_me', 'Only send directly to me'), ('none', 'Never') ], 'Receive Feeds by Email', required=True, help="Choose in which case you want to receive an email when you "\ - "receive new feeds."), + "receive new feeds."), 'alias_id': fields.many2one('mail.alias', 'Alias', ondelete="cascade", required=True, - help="Email address internally associated with this user. Incoming emails will appear " - "in the user's notifications."), + help="Email address internally associated with this user. Incoming "\ + "emails will appear in the user's notifications."), } _defaults = { 'notification_email_pref': 'to_me', + 'alias_domain': False, # always hide alias during creation } def __init__(self, pool, cr): @@ -67,44 +67,62 @@ class res_users(osv.osv): self.SELF_WRITEABLE_FIELDS.append('notification_email_pref') return init_res - def init(self, cr): - # Installation hook to create aliases for all users, right after _auto_init + def _auto_init(self, cr, context=None): + """Installation hook to create aliases for all users and avoid constraint errors.""" + + # disable the unique alias_id not null constraint, to avoid spurious warning during + # super.auto_init. We'll reinstall it afterwards. + self._columns['alias_id'].required = False + + super(res_users,self)._auto_init(cr, context=context) + registry = RegistryManager.get(cr.dbname) mail_alias = registry.get('mail.alias') - res_users = registry.get('res.users') - users_no_alias = res_users.search(cr, SUPERUSER_ID, [('alias_id', '=', False)]) + res_users_model = registry.get('res.users') + users_no_alias = res_users_model.search(cr, SUPERUSER_ID, [('alias_id', '=', False)]) # Use read() not browse(), to avoid prefetching uninitialized inherited fields - for user_data in res_users.read(cr, SUPERUSER_ID, users_no_alias, ['login']): + for user_data in res_users_model.read(cr, SUPERUSER_ID, users_no_alias, ['login']): alias_id = mail_alias.create_unique_alias(cr, SUPERUSER_ID, {'alias_name': user_data['login'], 'alias_force_id': user_data['id']}, model_name=self._name) - res_users.write(cr, SUPERUSER_ID, user_data['id'], {'alias_id': alias_id}) + res_users_model.write(cr, SUPERUSER_ID, user_data['id'], {'alias_id': alias_id}) _logger.info('Mail alias created for user %s (uid %s)', user_data['login'], user_data['id']) # Finally attempt to reinstate the missing constraint try: cr.execute('ALTER TABLE res_users ALTER COLUMN alias_id SET NOT NULL') except Exception: - pass - - + _logger.warning("Table '%s': unable to set a NOT NULL constraint on column '%s' !\n"\ + "If you want to have it, you should update the records and execute manually:\n"\ + "ALTER TABLE %s ALTER COLUMN %s SET NOT NULL", + self._table, 'alias_id', self._table, 'alias_id') + + self._columns['alias_id'].required = True + def create(self, cr, uid, data, context=None): # create default alias same as the login mail_alias = self.pool.get('mail.alias') alias_id = mail_alias.create_unique_alias(cr, uid, {'alias_name': data['login']}, model_name=self._name, context=context) data['alias_id'] = alias_id + data.pop('alias_name', None) # prevent errors during copy() + # create user that follows its related partner user_id = super(res_users, self).create(cr, uid, data, context=context) - mail_alias.write(cr, SUPERUSER_ID, [alias_id], {"alias_force_thread_id": user_id}, context) - user = self.browse(cr, uid, user_id, context=context) - # make user follow itself - self.message_subscribe(cr, uid, [user_id], [user_id], context=context) + self.pool.get('res.partner').message_subscribe(cr, uid, [user.partner_id.id], [user_id], context=context) + # alias + mail_alias.write(cr, SUPERUSER_ID, [alias_id], {"alias_force_thread_id": user_id}, context) # create a welcome message - company_name = user.company_id.name if user.company_id else _('the company') - message = _('%s joined the %s network! Take a moment to welcome %s.') % (user.name, company_name, user.name) - self.message_append_note(cr, uid, [user_id], body=message, type='comment', context=context) + self.create_welcome_message(cr, uid, user, context=context) return user_id - + + def create_welcome_message(self, cr, uid, user, context=None): + company_name = user.company_id.name if user.company_id else _('the company') + subject = '''%s has joined %s.''' % (user.name, company_name) + body = '''Welcome to OpenERP !''' + # TODO change 1 into user.id but catch errors + return self.pool.get('res.partner').message_append_note(cr, 1, [user.partner_id.id], + subject=subject, body=body, type='comment', content_subtype='html', context=context) + def write(self, cr, uid, ids, vals, context=None): # User alias is sync'ed with login if vals.get('login'): vals['alias_name'] = vals['login'] @@ -117,28 +135,52 @@ class res_users(osv.osv): res = super(res_users, self).unlink(cr, uid, ids, context=context) alias_pool.unlink(cr, uid, alias_ids, context=context) return res - - def message_search_get_domain(self, cr, uid, ids, context=None): - """ Override of message_search_get_domain for partner discussion page. - The purpose is to add messages directly sent to user using - @user_login. - """ - initial_domain = super(res_users, self).message_search_get_domain(cr, uid, ids, context=context) - custom_domain = [] + + # -------------------------------------------------- + # Wrappers on partner methods for Chatter + # #FIXME: another branch holds a refactoring of mail.thread + # that should help cleaning those wrappers + # -------------------------------------------------- + + def message_append(self, cr, uid, threads, subject, body_text=None, body_html=None, + type='email', email_date=None, parent_id=False, + content_subtype='plain', state=None, + partner_ids=None, email_from=False, email_to=False, + email_cc=None, email_bcc=None, reply_to=None, + headers=None, message_id=False, references=None, + attachments=None, original=None, context=None): + for user in self.browse(cr, uid, threads, context=context): + user.partner_id.message_append(subject, body_text, body_html, type, email_date, parent_id, + content_subtype, state, partner_ids, email_from, email_to, email_cc, email_bcc, reply_to, + headers, message_id, references, attachments, original) + + def message_read(self, cr, uid, ids, fetch_ancestors=False, ancestor_ids=None, + limit=100, offset=0, domain=None, context=None): + for user in self.browse(cr, uid, ids, context=context): + return user.partner_id.message_read(fetch_ancestors, ancestor_ids, limit, offset, domain) + + def message_search(self, cr, uid, ids, fetch_ancestors=False, ancestor_ids=None, + limit=100, offset=0, domain=None, count=False, context=None): + for user in self.browse(cr, uid, ids, context=context): + return user.partner_id.message_search(fetch_ancestors, ancestor_ids, limit, offset, domain, count) + + def message_subscribe(self, cr, uid, ids, user_ids = None, context=None): for user in self.browse(cr, uid, ids, context=context): - if custom_domain: - custom_domain += ['|'] - custom_domain += ['|', ('body_text', 'like', '@%s' % (user.login)), ('body_html', 'like', '@%s' % (user.login))] - return ['|'] + initial_domain + custom_domain + return user.partner_id.message_subscribe(user_ids) -class res_users_mail_group(osv.osv): + def message_unsubscribe(self, cr, uid, ids, user_ids = None, context=None): + for user in self.browse(cr, uid, ids, context=context): + return user.partner_id.message_unsubscribe(user_ids) + + +class res_users_mail_group(osv.Model): """ Update of res.groups class - if adding/removing users from a group, check mail.groups linked to this user group, and subscribe / unsubscribe them from the discussion group. This is done by overriding the write method. """ _name = 'res.users' - _inherit = ['res.users', 'mail.thread'] + _inherit = ['res.users'] def write(self, cr, uid, ids, vals, context=None): write_res = super(res_users_mail_group, self).write(cr, uid, ids, vals, context=context) @@ -150,9 +192,8 @@ class res_users_mail_group(osv.osv): mail_group_ids = mail_group_obj.search(cr, uid, [('group_ids', 'in', user_group_ids)], context=context) mail_group_obj.message_subscribe(cr, uid, mail_group_ids, ids, context=context) return write_res - -class res_groups_mail_group(osv.osv): +class res_groups_mail_group(osv.Model): """ Update of res.groups class - if adding/removing users from a group, check mail.groups linked to this user group, and subscribe / unsubscribe them from the discussion @@ -170,3 +211,5 @@ class res_groups_mail_group(osv.osv): mail_group_ids = mail_group_obj.search(cr, uid, [('group_ids', 'in', ids)], context=context) mail_group_obj.message_subscribe(cr, uid, mail_group_ids, user_ids, context=context) return super(res_groups_mail_group, self).write(cr, uid, ids, vals, context=context) + +# vim:et: diff --git a/addons/mail/res_users_view.xml b/addons/mail/res_users_view.xml index d1429f0afbc..005d71cb09f 100644 --- a/addons/mail/res_users_view.xml +++ b/addons/mail/res_users_view.xml @@ -9,7 +9,7 @@ <field name="inherit_id" ref="base.view_users_form_simple_modif"/> <field name="arch" type="xml"> <data> - <field name="user_email" position="before"> + <field name="email" position="before"> <field name="notification_email_pref" readonly="0"/> </field> </data> @@ -23,17 +23,12 @@ <field name="inherit_id" ref="base.view_users_form"/> <field name="arch" type="xml"> <data> - <field name="user_email" position="before"> + <field name="email" position="before"> <field name="notification_email_pref"/> </field> - <xpath expr="/form/sheet" position="after"> - <div class="oe_chatter"> - <field name="message_ids" colspan="4" widget="mail_thread" nolabel="1"/> - </div> - </xpath> - <field name="user_email" position="after"> + <field name="email" position="after"> <field name="alias_domain" invisible="1"/> - <field name="alias_id" readonly="1" attrs="{'invisible': [('alias_domain', '=', False)]}"/> + <field name="alias_id" readonly="1" required="0" attrs="{'invisible': [('alias_domain', '=', False)]}"/> </field> </data> </field> diff --git a/addons/mail/security/ir.model.access.csv b/addons/mail/security/ir.model.access.csv index 3677d424c14..1979e2fec05 100644 --- a/addons/mail/security/ir.model.access.csv +++ b/addons/mail/security/ir.model.access.csv @@ -2,7 +2,7 @@ id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink access_mail_message_all,mail.message.all,model_mail_message,,1,0,0,0
access_mail_message_group_user,mail.message.group.user,model_mail_message,base.group_user,1,1,1,1
access_mail_thread,mail.thread,model_mail_thread,base.group_user,1,1,1,0
-access_mail_subscription_all,mail.subscription.all,model_mail_subscription,,1,1,1,1
+access_mail_followers_all,mail.followers.all,model_mail_followers,,1,1,1,1
access_mail_notification_all,mail.notification.all,model_mail_notification,,1,1,1,1
access_mail_group,mail.group,model_mail_group,base.group_user,1,1,1,1
access_mail_alias_user,mail.alias,model_mail_alias,base.group_user,1,1,1,0
diff --git a/addons/mail/security/mail_security.xml b/addons/mail/security/mail_security.xml index 34fcbac3088..a12314e6f25 100644 --- a/addons/mail/security/mail_security.xml +++ b/addons/mail/security/mail_security.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <openerp> - <data noupdate="1"> + <data> <!-- CATEGORY --> <record model="ir.module.category" id="module_category_social"> @@ -20,23 +20,8 @@ <record id="group_rule_public_and_joined" model="ir.rule"> <field name="name">Mail.group: access only public and joined groups</field> <field name="model_id" ref="model_mail_group"/> - <field name="domain_force">['|', ('public', '=', True), ('member_ids', 'in', user.id)]</field> - <field name="perm_create" eval="False"/> - <field name="perm_unlink" eval="False"/> - </record> - <record id="group_rule_delete_mygroup" model="ir.rule"> - <field name="name">Mail.group: delete my groups only</field> - <field name="model_id" ref="model_mail_group"/> - <field name="domain_force">[('responsible_id', '=', user.id)]</field> - <field name="perm_read" eval="False"/> - <field name="perm_write" eval="False"/> - <field name="perm_create" eval="False"/> - </record> - <record id="group_rule_all" model="ir.rule"> - <field name="name">Mail.group: all groups</field> - <field name="model_id" ref="model_mail_group"/> - <field name="domain_force">[(1,'=',1)]</field> - <field name="groups" eval="[(4, ref('group_mail_manager'))]"/> + <!-- This rule has to be improved for employee only groups --> + <field name="domain_force">['|', '|', ('public', '=', 'public'), ('message_follower_ids', 'in', [user.id]), '&', ('public','=','groups'), ('group_public_id','in', [x.id for x in user.groups_id])]</field> </record> </data> diff --git a/addons/mail/static/scripts/openerp_mailgate.py b/addons/mail/static/scripts/openerp_mailgate.py index 64dafc56785..99ebc8f770b 100755 --- a/addons/mail/static/scripts/openerp_mailgate.py +++ b/addons/mail/static/scripts/openerp_mailgate.py @@ -106,15 +106,15 @@ class EmailParser(object): self.email_default = email_default - def parse(self, method, message, custom_values=None, save_original=None): + def parse(self, message, custom_values=None, save_original=None): # pass message as bytes because we don't know its encoding until we parse its headers # and hence can't convert it to utf-8 for transport - res_id = self.rpc('mail.thread', - method, - self.model, - xmlrpclib.Binary(message), - custom_values or {}, - save_original or False) + return self.rpc('mail.thread', + 'message_process', + self.model, + xmlrpclib.Binary(message), + custom_values or {}, + save_original or False) def configure_parser(): parser = optparse.OptionParser(usage='usage: %prog [options]', version='%prog v1.1') @@ -123,32 +123,32 @@ def configure_parser(): "with the OpenERP server for case management in the CRM module.") parser.add_option_group(group) parser.add_option("-u", "--user", dest="userid", - help="ID of the user in OpenERP", + help="OpenERP user id to connect with", default=config.OPENERP_DEFAULT_USER_ID, type='int') parser.add_option("-p", "--password", dest="password", - help="Password of the user in OpenERP", + help="OpenERP user password", default=config.OPENERP_DEFAULT_PASSWORD) parser.add_option("-o", "--model", dest="model", - help="Name or ID of crm model", + help="Name or ID of destination model", default="crm.lead") parser.add_option("-m", "--default", dest="default", - help="Default eMail in case of any trouble.", + help="Admin email for error notifications.", default=None) parser.add_option("-d", "--dbname", dest="dbname", - help="Database name (default: %default)", + help="OpenERP database name (default: %default)", default=config.OPENERP_DEFAULT_DATABASE) parser.add_option("--host", dest="host", - help="Hostname of the OpenERP Server", + help="OpenERP Server hostname", default=config.OPENERP_HOSTNAME) parser.add_option("--port", dest="port", - help="Port of the OpenERP Server", + help="OpenERP Server XML-RPC port number", default=config.OPENERP_PORT) parser.add_option("--custom-values", dest="custom_values", - help="Add Custom Values to the object", + help="Dictionary of extra values to pass when creating records", default=None) parser.add_option("-s", dest="save_original", action="store_true", - help="Attach a copy of original email to the message entry", + help="Keep a full copy of the email source attached to each message", default=False) return parser @@ -160,7 +160,6 @@ def main(): parser = configure_parser() (options, args) = parser.parse_args() - method = "message_process" email_parser = EmailParser(options.userid, options.password, options.dbname, @@ -170,8 +169,6 @@ def main(): email_default= options.default) msg_txt = sys.stdin.read() custom_values = {} - if not options.model: - method = "message_catchall" try: custom_values = dict(eval(options.custom_values or "{}" )) except: @@ -179,7 +176,7 @@ def main(): traceback.print_exc() try: - email_parser.parse(method, msg_txt, custom_values, options.save_original or False) + email_parser.parse(msg_txt, custom_values, options.save_original or False) except Exception: msg = '\n'.join([ 'parameters', diff --git a/addons/mail/static/src/css/mail.css b/addons/mail/static/src/css/mail.css index c0317633aa7..7cee91e30e5 100644 --- a/addons/mail/static/src/css/mail.css +++ b/addons/mail/static/src/css/mail.css @@ -89,10 +89,14 @@ /* RecordThread /* ------------------------------------------------------------ */ -.openerp div.oe_mail_recthread { +.openerp .oe_form div.oe_chatter { overflow: auto; } +.openerp div.oe_mail_recthread { + /*overflow: auto;*/ +} + .openerp div.oe_mail_recthread_main { float: left; width: 560px; diff --git a/addons/mail/static/src/js/mail.js b/addons/mail/static/src/js/mail.js index da6816d3441..16404b28594 100644 --- a/addons/mail/static/src/js/mail.js +++ b/addons/mail/static/src/js/mail.js @@ -4,6 +4,8 @@ openerp.mail = function(session) { var mail = session.mail = {}; + openerp_mail_followers(session, mail); // import mail_followers.js + /** * ------------------------------------------------------------ * FormView @@ -838,32 +840,17 @@ openerp.mail = function(session) { this._super.apply(this, arguments); this.params = this.get_definition_options(); this.params.thread_level = this.params.thread_level || 0; - this.params.see_subscribers = true; - this.params.see_subscribers_options = this.params.see_subscribers_options || false; this.thread = null; this.ds = new session.web.DataSet(this, this.view.model); this.ds_users = new session.web.DataSet(this, 'res.users'); }, start: function() { - var self = this; - // NB: all the widget should be modified to check the actual_mode property on view, not use // any other method to know if the view is in create mode anymore this.view.on("change:actual_mode", this, this._check_visibility); this._check_visibility(); - mail.ChatterUtils.bind_events(this); - this.$element.find('button.oe_mail_button_followers').click(function () { self.do_toggle_followers(); }); - if (! this.params.see_subscribers_options) { - this.$element.find('button.oe_mail_button_followers').hide(); } - this.$element.find('button.oe_mail_button_follow').click(function () { self.do_follow(); }) - .mouseover(function () { $(this).html('Follow').removeClass('oe_mail_button_mouseout').addClass('oe_mail_button_mouseover'); }) - .mouseleave(function () { $(this).html('Not following').removeClass('oe_mail_button_mouseover').addClass('oe_mail_button_mouseout'); }); - this.$element.find('button.oe_mail_button_unfollow').click(function () { self.do_unfollow(); }) - .mouseover(function () { $(this).html('Unfollow').removeClass('oe_mail_button_mouseout').addClass('oe_mail_button_mouseover'); }) - .mouseleave(function () { $(this).html('Following').removeClass('oe_mail_button_mouseover').addClass('oe_mail_button_mouseout'); }); - this.reinit(); }, _check_visibility: function() { @@ -874,72 +861,20 @@ openerp.mail = function(session) { this._super.apply(this, arguments); }, - reinit: function() { - this.params.see_subscribers = true; - this.params.see_subscribers_options = this.params.see_subscribers_options || false; - this.$element.find('button.oe_mail_button_followers').html('Hide followers') - this.$element.find('button.oe_mail_button_follow').hide(); - this.$element.find('button.oe_mail_button_unfollow').hide(); - }, - set_value: function() { this._super.apply(this, arguments); - var self = this; - this.reinit(); if (! this.view.datarecord.id || session.web.BufferedDataSet.virtual_id_regex.test(this.view.datarecord.id)) { this.$element.find('.oe_mail_thread').hide(); return; } - // fetch followers - var fetch_sub_done = this.fetch_subscribers(); // create and render Thread widget this.$element.find('div.oe_mail_recthread_main').empty(); if (this.thread) this.thread.destroy(); this.thread = new mail.Thread(this, {'res_model': this.view.model, 'res_id': this.view.datarecord.id, 'uid': this.session.uid, 'thread_level': this.params.thread_level, 'show_post_comment': true, 'limit': 15}); var thread_done = this.thread.appendTo(this.$element.find('div.oe_mail_recthread_main')); - return fetch_sub_done && thread_done; - }, - - fetch_subscribers: function () { - return this.ds.call('message_read_subscribers', [[this.view.datarecord.id]]).then(this.proxy('display_subscribers')); - }, - - display_subscribers: function (records) { - var self = this; - this.is_subscriber = false; - var user_list = this.$element.find('ul.oe_mail_followers_display').empty(); - this.$element.find('div.oe_mail_recthread_followers h4').html('Followers (' + records.length + ')'); - _(records).each(function (record) { - if (record.id == self.session.uid) { self.is_subscriber = true; } - record.avatar_url = mail.ChatterUtils.get_image(self.session.prefix, self.session.session_id, 'res.users', 'image_small', record.id); - $(session.web.qweb.render('mail.record_thread.subscriber', {'record': record})).appendTo(user_list); - }); - if (self.is_subscriber) { - self.$element.find('button.oe_mail_button_follow').hide(); - self.$element.find('button.oe_mail_button_unfollow').show(); } - else { - self.$element.find('button.oe_mail_button_follow').show(); - self.$element.find('button.oe_mail_button_unfollow').hide(); } - }, - - do_follow: function () { - return this.ds.call('message_subscribe', [[this.view.datarecord.id]]).pipe(this.proxy('fetch_subscribers')); - }, - - do_unfollow: function () { - var self = this; - return this.ds.call('message_unsubscribe', [[this.view.datarecord.id]]).then(function (record) { - if (record == false) self.do_notify("Impossible to unsubscribe", "You are automatically subscribed to this record. You cannot unsubscribe."); - }).pipe(this.proxy('fetch_subscribers')); - }, - - do_toggle_followers: function () { - this.params.see_subscribers = ! this.params.see_subscribers; - if (this.params.see_subscribers) { this.$element.find('button.oe_mail_button_followers').html('Hide followers'); } - else { this.$element.find('button.oe_mail_button_followers').html('Show followers'); } - this.$element.find('div.oe_mail_recthread_followers').toggle(); + return thread_done; }, }); @@ -972,6 +907,8 @@ openerp.mail = function(session) { this.params.limit = params.limit || 25; this.params.domain = params.domain || []; this.params.context = params.context || {}; + this.params.res_model = params.res_model || false; + this.params.res_id = params.res_id || false; this.params.search_view_id = params.search_view_id || false; this.params.thread_level = params.thread_level || 1; this.comments_structure = {'root_ids': [], 'new_root_ids': [], 'msgs': {}, 'tree_struct': {}, 'model_to_root_ids': {}}; @@ -1019,8 +956,8 @@ openerp.mail = function(session) { this.compose_message_widget.destroy(); } this.compose_message_widget = new mail.ComposeMessage(this, { - 'extended_mode': false, 'uid': this.session.uid, 'res_model': 'res.users', - 'res_id': this.session.uid, 'mode': mode || 'comment', 'msg_id': msg_id }); + 'extended_mode': false, 'uid': this.session.uid, 'res_model': this.params.res_model, + 'res_id': this.params.res_id, 'mode': mode || 'comment', 'msg_id': msg_id }); var composition_node = this.$element.find('div.oe_mail_wall_action'); composition_node.empty(); var compose_done = this.compose_message_widget.appendTo(composition_node); diff --git a/addons/mail/static/src/js/mail_followers.js b/addons/mail/static/src/js/mail_followers.js new file mode 100644 index 00000000000..0e920f73041 --- /dev/null +++ b/addons/mail/static/src/js/mail_followers.js @@ -0,0 +1,122 @@ +openerp_mail_followers = function(session, mail) { + var _t = session.web._t, + _lt = session.web._lt; + + var mail_followers = session.mail_followers = {}; + + /** + * ------------------------------------------------------------ + * mail_followers Widget + * ------------------------------------------------------------ + * + * This widget handles the display of a list of records as a vetical + * list, with an image on the left. The widget itself is a floatting + * right-sided box. + * This widget is mainly used to display the followers of records + * in OpenChatter. + */ + + /* Add the widget to registry */ + session.web.form.widgets.add('mail_followers', 'openerp.mail_followers.Followers'); + + mail_followers.Followers = session.web.form.AbstractField.extend({ + template: 'mail.followers', + + init: function() { + this._super.apply(this, arguments); + this.params = {}; + this.params.image = this.node.attrs.image || 'image_small'; + this.params.title = this.node.attrs.title || 'Followers'; + this.params.display_followers = true; + this.params.display_control = this.node.attrs.display_control || false; + this.params.display_actions = this.node.attrs.display_actions || false; + this.ds_model = new session.web.DataSetSearch(this, this.view.model); + this.ds_follow = new session.web.DataSetSearch(this, this.field.relation); + }, + + start: function() { + var self = this; + // NB: all the widget should be modified to check the actual_mode property on view, not use + // any other method to know if the view is in create mode anymore + this.view.on("change:actual_mode", this, this._check_visibility); + this._check_visibility(); + this.$element.find('button.oe_mail_button_followers').click(function () { self.do_toggle_followers(); }); + if (! this.params.display_control) { + this.$element.find('button.oe_mail_button_followers').hide(); } + this.$element.find('button.oe_mail_button_follow').click(function () { self.do_follow(); }) + .mouseover(function () { $(this).html('Follow').removeClass('oe_mail_button_mouseout').addClass('oe_mail_button_mouseover'); }) + .mouseleave(function () { $(this).html('Not following').removeClass('oe_mail_button_mouseover').addClass('oe_mail_button_mouseout'); }); + this.$element.find('button.oe_mail_button_unfollow').click(function () { self.do_unfollow(); }) + .mouseover(function () { $(this).html('Unfollow').removeClass('oe_mail_button_mouseout').addClass('oe_mail_button_mouseover'); }) + .mouseleave(function () { $(this).html('Following').removeClass('oe_mail_button_mouseover').addClass('oe_mail_button_mouseout'); }); + this.reinit(); + }, + + _check_visibility: function() { + this.$element.toggle(this.view.get("actual_mode") !== "create"); + }, + + destroy: function () { + this._super.apply(this, arguments); + }, + + reinit: function() { + this.params.display_followers = true; + this.params.display_control = this.node.attrs.display_control || false; + this.params.display_actions = this.node.attrs.display_actions || false; + this.$element.find('button.oe_mail_button_followers').html('Hide followers') + this.$element.find('button.oe_mail_button_follow').hide(); + this.$element.find('button.oe_mail_button_unfollow').hide(); + }, + + set_value: function(value_) { + this.reinit(); + if (! this.view.datarecord.id || + session.web.BufferedDataSet.virtual_id_regex.test(this.view.datarecord.id)) { + this.$element.find('div.oe_mail_recthread_aside').hide(); + return; + } + return this.fetch_subscribers(value_); + }, + + fetch_subscribers: function (value_) { + return this.ds_follow.call('read', [value_ || this.get_value(), ['name', this.params.image]]).then(this.proxy('display_subscribers')); + }, + + /** + * Display the followers. + * TODO: replace the is_subscriber check by fields read */ + display_subscribers: function (records) { + var self = this; + this.is_subscriber = false; + var user_list = this.$element.find('ul.oe_mail_followers_display').empty(); + this.$element.find('div.oe_mail_recthread_followers h4').html(this.params.title + ' (' + records.length + ')'); + _(records).each(function (record) { + if (record.id == self.session.uid) { self.is_subscriber = true; } + record.avatar_url = mail.ChatterUtils.get_image(self.session.prefix, self.session.session_id, 'res.users', 'image_small', record.id); + $(session.web.qweb.render('mail.followers.partner', {'record': record})).appendTo(user_list); + }); + if (this.is_subscriber) { + this.$element.find('button.oe_mail_button_follow').hide(); + this.$element.find('button.oe_mail_button_unfollow').show(); } + else { + this.$element.find('button.oe_mail_button_follow').show(); + this.$element.find('button.oe_mail_button_unfollow').hide(); } + }, + + do_follow: function () { + return this.ds_model.call('message_subscribe', [[this.view.datarecord.id]]).pipe(this.proxy('set_value')); + }, + + do_unfollow: function () { + return this.ds_model.call('message_unsubscribe', [[this.view.datarecord.id]]).pipe(this.proxy('set_value')); + }, + + do_toggle_followers: function () { + this.params.see_subscribers = ! this.params.see_subscribers; + if (this.params.see_subscribers) { this.$element.find('button.oe_mail_button_followers').html('Hide followers'); } + else { this.$element.find('button.oe_mail_button_followers').html('Show followers'); } + this.$element.find('div.oe_mail_recthread_followers').toggle(); + }, + }); +}; diff --git a/addons/mail/static/src/xml/mail.xml b/addons/mail/static/src/xml/mail.xml index 86d115f29c8..7f49b7f3943 100644 --- a/addons/mail/static/src/xml/mail.xml +++ b/addons/mail/static/src/xml/mail.xml @@ -16,7 +16,10 @@ <tr class="oe_header_row oe_header_row_top"> <td colspan="2"> <h2 class="oe_view_title"> - <span class="oe_view_title_text">All Feeds</span> + <span class="oe_view_title_text"> + <t t-if="! widget.params.res_model">News Feeds</t> + <t t-if="widget.params.res_model" t-esc="widget.params.res_model"/> + </span> </h2> </td> <td><div class="oe_view_manager_view_search" t-opentag="true"/></td> @@ -58,29 +61,9 @@ <div class="oe_mail_recthread_main"> <!-- contains the document thread --> </div> - <div class="oe_mail_recthread_aside"> - <div class="oe_mail_recthread_actions"> - <button type="button" class="oe_mail_button_follow oe_mail_button_mouseout">Not following</button> - <button type="button" class="oe_mail_button_unfollow oe_mail_button_mouseout">Following</button> - <button type="button" class="oe_mail_button_followers">Show followers</button> - </div> - <div class="oe_mail_recthread_followers"> - <h4>Followers</h4> - <ul class="oe_mail_followers_display"></ul> - </div> - </div> </div> <!-- - record_thread.subscriber template - Template used to display a subscriber. - --> - <li t-name="mail.record_thread.subscriber"> - <img class="oe_mail_thumbnail oe_mail_frame" t-attf-src="{record.avatar_url}"/> - <a t-attf-href="#model=res.users&id=#{record.id}"><t t-raw="record.name"/></a> - </li> - - <!-- mail.compose_message template This template holds the composition form to write a note or send an e-mail. It contains by default a textarea, that will be replaced diff --git a/addons/mail/static/src/xml/mail_followers.xml b/addons/mail/static/src/xml/mail_followers.xml new file mode 100644 index 00000000000..53c899b9569 --- /dev/null +++ b/addons/mail/static/src/xml/mail_followers.xml @@ -0,0 +1,31 @@ +<?xml version="1.0" encoding="UTF-8"?> +<template> + + <!-- + followers main template + Template used to display the followers and the actions in a record. + --> + <div t-name="mail.followers" class="oe_mail_recthread_aside"> + <div class="oe_mail_recthread_actions"> + <button type="button" class="oe_mail_button_follow oe_mail_button_mouseout">Not following</button> + <button type="button" class="oe_mail_button_unfollow oe_mail_button_mouseout">Following</button> + <button type="button" class="oe_mail_button_followers">Show followers</button> + </div> + <div class="oe_mail_recthread_followers"> + <t t-if="widget.params.title"> + <h4><t t-raw="widget.params.title"/></h4> + </t> + <ul class="oe_mail_followers_display"></ul> + </div> + </div> + + <!-- + followers.partner template + Template used to display a partner following the record + --> + <li t-name="mail.followers.partner"> + <img class="oe_mail_thumbnail oe_mail_frame" t-attf-src="{record.avatar_url}"/> + <a t-attf-href="#model=res.users&id=#{record.id}"><t t-raw="record.name"/></a> + </li> + +</template> diff --git a/addons/portal/res_user.py b/addons/mail/tests/__init__.py index 9ed95a8a740..d63c5634cc3 100644 --- a/addons/portal/res_user.py +++ b/addons/mail/tests/__init__.py @@ -1,8 +1,8 @@ # -*- coding: utf-8 -*- ############################################################################## # -# OpenERP, Open Source Management Solution -# Copyright (C) 2004-2011 OpenERP S.A (<http://www.openerp.com>). +# OpenERP, Open Source Business Applications +# Copyright (c) 2012-TODAY OpenERP S.A. <http://openerp.com> # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as @@ -18,17 +18,10 @@ # along with this program. If not, see <http://www.gnu.org/licenses/>. # ############################################################################## +from . import test_mail -from osv import osv, fields +checks = [ + test_mail, +] - - -class res_users(osv.osv): - _inherit = 'res.users' - _columns = { - 'partner_id': fields.many2one('res.partner', - string='Related Partner'), - } - - -# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: +# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file diff --git a/addons/mail/tests/test_mail.py b/addons/mail/tests/test_mail.py new file mode 100644 index 00000000000..0940d72c490 --- /dev/null +++ b/addons/mail/tests/test_mail.py @@ -0,0 +1,112 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Business Applications +# Copyright (c) 2012-TODAY OpenERP S.A. <http://openerp.com> +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. +# +############################################################################## + +from openerp.tests import common + +MAIL_TEMPLATE = """Return-Path: <whatever-2a840@postmaster.twitter.com> +To: {to} +Received: by mail1.openerp.com (Postfix, from userid 10002) + id 5DF9ABFB2A; Fri, 10 Aug 2012 16:16:39 +0200 (CEST) +From: Sylvie Lelitre <sylvie.lelitre@agrolait.com> +Subject: {subject} +MIME-Version: 1.0 +Content-Type: multipart/alternative; + boundary="----=_Part_4200734_24778174.1344608186754" +Date: Fri, 10 Aug 2012 14:16:26 +0000 +Message-ID: <1198923581.41972151344608186760.JavaMail@agrolait.com> +{extra} +------=_Part_4200734_24778174.1344608186754 +Content-Type: text/plain; charset=utf-8 +Content-Transfer-Encoding: quoted-printable + +Please call me as soon as possible this afternoon! + +-- +Sylvie +------=_Part_4200734_24778174.1344608186754 +Content-Type: text/html; charset=utf-8 +Content-Transfer-Encoding: quoted-printable + +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> +<html> + <head>=20 + <meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Dutf-8" /> + </head>=20 + <body style=3D"margin: 0; padding: 0; background: #ffffff;-webkit-text-size-adjust: 100%;">=20 + + <p>Please call me as soon as possible this afternoon!</p> + + <p>--<br/> + Sylvie + <p> + </body> +</html> +------=_Part_4200734_24778174.1344608186754-- +""" + + +class test_mail(common.TransactionCase): + + def setUp(self): + super(test_mail, self).setUp() + self.ir_model = self.registry('ir.model') + self.mail_alias = self.registry('mail.alias') + self.mail_thread = self.registry('mail.thread') + self.mail_group = self.registry('mail.group') + self.res_users = self.registry('res.users') + + # groups@.. will cause the creation of new mail groups + self.mail_group_model_id = self.ir_model.search(self.cr, self.uid, [('model','=', 'mail.group')])[0] + self.mail_alias.create(self.cr, self.uid, {'alias_name': 'groups', + 'alias_model_id': self.mail_group_model_id}) + + # tech@... will append new messages to the 'tech' group + self.group_tech_id = self.mail_group.create(self.cr, self.uid, {'name': 'tech'}) + + def test_message_process(self): + # Incoming mail creates a new mail_group "frogs" + self.assertEqual(self.mail_group.search(self.cr, self.uid, [('name','=','frogs')]), []) + mail_frogs = MAIL_TEMPLATE.format(to='groups@example.com, other@gmail.com', subject='frogs', extra='') + self.mail_thread.message_process(self.cr, self.uid, None, mail_frogs) + frog_groups = self.mail_group.search(self.cr, self.uid, [('name','=','frogs')]) + self.assertTrue(len(frog_groups) == 1) + + # Previously-created group can be emailed now - it should have an implicit alias group+frogs@... + frog_group = self.mail_group.browse(self.cr, self.uid, frog_groups[0]) + group_messages = frog_group.message_ids + self.assertTrue(len(group_messages) == 1, 'New group should only have the original message') + mail_frog_news = MAIL_TEMPLATE.format(to='Friendly Frogs <group+frogs@example.com>', subject='news', extra='') + self.mail_thread.message_process(self.cr, self.uid, None, mail_frog_news) + frog_group.refresh() + self.assertTrue(len(frog_group.message_ids) == 2, 'Group should contain 2 messages now') + + # Even with a wrong destination, a reply should end up in the correct thread + mail_reply = MAIL_TEMPLATE.format(to='erroneous@example.com>', subject='Re: news', + extra='In-Reply-To: <12321321-openerp-%d-mail.group@example.com>\n'%frog_group.id) + self.mail_thread.message_process(self.cr, self.uid, None, mail_reply) + frog_group.refresh() + self.assertTrue(len(frog_group.message_ids) == 3, 'Group should contain 3 messages now') + + # No model passed and no matching alias must raise + mail_spam = MAIL_TEMPLATE.format(to='noone@example.com', subject='spam', extra='') + self.assertRaises(Exception, + self.mail_thread.message_process, + self.cr, self.uid, None, mail_spam) diff --git a/addons/mail/wizard/mail_compose_message.py b/addons/mail/wizard/mail_compose_message.py index d26511464f8..fe87b7584e0 100644 --- a/addons/mail/wizard/mail_compose_message.py +++ b/addons/mail/wizard/mail_compose_message.py @@ -100,7 +100,7 @@ class mail_compose_message(osv.TransientModel): # Try to provide default email_from if not specified yet if not result.get('email_from'): current_user = self.pool.get('res.users').browse(cr, uid, uid, context=context) - result['email_from'] = current_user.user_email or False + result['email_from'] = current_user.email or False return result _columns = { @@ -133,7 +133,7 @@ class mail_compose_message(osv.TransientModel): result.update({ 'model': model, 'res_id': res_id, - 'email_from': user.user_email or tools.config.get('email_from', False), + 'email_from': user.email or tools.config.get('email_from', False), 'body_html': False, 'body_text': False, 'subject': False, @@ -223,7 +223,7 @@ class mail_compose_message(osv.TransientModel): 'dest_partner_ids': dest_partner_ids, 'model': message_data.model or False, 'res_id': message_data.res_id or False, - 'email_from': current_user.user_email or message_data.email_to or False, + 'email_from': current_user.email or message_data.email_to or False, 'email_to': message_data.reply_to or message_data.email_from or False, 'email_cc': message_data.email_cc or False, 'user_id': uid, diff --git a/addons/mail/wizard/mail_compose_message_view.xml b/addons/mail/wizard/mail_compose_message_view.xml index 8fa4eaa9c50..73fb03cdc28 100644 --- a/addons/mail/wizard/mail_compose_message_view.xml +++ b/addons/mail/wizard/mail_compose_message_view.xml @@ -4,7 +4,6 @@ <record model="ir.ui.view" id="email_compose_message_wizard_form"> <field name="name">mail.compose.message.form</field> <field name="model">mail.compose.message</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Compose Email" version="7.0"> <group> @@ -41,7 +40,6 @@ <field name="name">mail.compose.message.form</field> <field name="model">mail.compose.message</field> <field name="priority">18</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Compose Email" version="7.0" > <group> @@ -50,7 +48,7 @@ <field name="body_text" colspan="2" nolabel="1" placeholder="What are you working on ?" class="oe_mail_compose_message_body_text"/> <field name="body_html" colspan="2" nolabel="1" placeholder="What are you working on HTML ?" - class="oe_mail_compose_message_body_html oe_mail_compose_message_invisible" widget="text_html"/> + class="oe_mail_compose_message_body_html oe_mail_compose_message_invisible"/> <field name="dest_partner_ids" colspan="2" nolabel="1" widget="many2many_tags" placeholder="Add contacts to notify..." class="oe_mail_compose_message_partner_ids oe_mail_compose_message_invisible"/> diff --git a/addons/marketing/res_config_view.xml b/addons/marketing/res_config_view.xml index a759fa9c8bf..78144843f82 100644 --- a/addons/marketing/res_config_view.xml +++ b/addons/marketing/res_config_view.xml @@ -5,7 +5,6 @@ <record id="view_marketing_configuration" model="ir.ui.view"> <field name="name">Configure Marketing</field> <field name="model">marketing.config.settings</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Configure Marketing" class="oe_form_configuration" version="7.0"> <header> diff --git a/addons/marketing_campaign/marketing_campaign.py b/addons/marketing_campaign/marketing_campaign.py index e268f3db5dd..bfabd2002bd 100644 --- a/addons/marketing_campaign/marketing_campaign.py +++ b/addons/marketing_campaign/marketing_campaign.py @@ -120,7 +120,7 @@ Normal - the campaign runs normally and automatically sends all emails and repor 'Status',), 'activity_ids': fields.one2many('marketing.campaign.activity', 'campaign_id', 'Activities'), - 'fixed_cost': fields.float('Fixed Cost', help="Fixed cost for running this campaign. You may also specify variable cost and revenue on each campaign activity. Cost and Revenue statistics are included in Campaign Reporting.", digits_compute=dp.get_precision('Purchase Price')), + 'fixed_cost': fields.float('Fixed Cost', help="Fixed cost for running this campaign. You may also specify variable cost and revenue on each campaign activity. Cost and Revenue statistics are included in Campaign Reporting.", digits_compute=dp.get_precision('Product Price')), } _defaults = { @@ -435,8 +435,8 @@ class marketing_campaign_activity(osv.osv): 'from_ids': fields.one2many('marketing.campaign.transition', 'activity_to_id', 'Previous Activities'), - 'variable_cost': fields.float('Variable Cost', help="Set a variable cost if you consider that every campaign item that has reached this point has entailed a certain cost. You can get cost statistics in the Reporting section", digits_compute=dp.get_precision('Purchase Price')), - 'revenue': fields.float('Revenue', help="Set an expected revenue if you consider that every campaign item that has reached this point has generated a certain revenue. You can get revenue statistics in the Reporting section", digits_compute=dp.get_precision('Sale Price')), + 'variable_cost': fields.float('Variable Cost', help="Set a variable cost if you consider that every campaign item that has reached this point has entailed a certain cost. You can get cost statistics in the Reporting section", digits_compute=dp.get_precision('Product Price')), + 'revenue': fields.float('Revenue', help="Set an expected revenue if you consider that every campaign item that has reached this point has generated a certain revenue. You can get revenue statistics in the Reporting section", digits_compute=dp.get_precision('Account')), 'signal': fields.char('Signal', size=128, help='An activity with a signal can be called programmatically. Be careful, the workitem is always created when a signal is sent'), 'keep_if_condition_not_met': fields.boolean("Don't Delete Workitems", diff --git a/addons/marketing_campaign/marketing_campaign_view.xml b/addons/marketing_campaign/marketing_campaign_view.xml index 9af709c19a5..19b9536c432 100644 --- a/addons/marketing_campaign/marketing_campaign_view.xml +++ b/addons/marketing_campaign/marketing_campaign_view.xml @@ -24,9 +24,8 @@ <record model="ir.ui.view" id="view_marketing_campaign_form"> <field name="name">marketing.campaign.form</field> <field name="model">marketing.campaign</field> - <field name="type">form</field> <field name="arch" type="xml"> - <form version="7.0"> + <form string="Marketing Campaign" version="7.0"> <header> <button name="state_running_set" string="Run" states="draft" class="oe_highlight"/> <button name="state_done_set" string="Done" states="running" class="oe_highlight"/> @@ -68,7 +67,6 @@ <record model="ir.ui.view" id="view_marketing_campaign_tree"> <field name="name">marketing.campaign.tree</field> <field name="model">marketing.campaign</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree colors="blue:state == 'draft';black:state == 'running';gray:state in ('done','cancelled')" string="Campaigns"> <field name="name"/> @@ -83,7 +81,6 @@ <record id="view_marketing_campaign_diagram" model="ir.ui.view"> <field name="name">marketing.campaign.diagram</field> <field name="model">marketing.campaign</field> - <field name="type">diagram</field> <field name="arch" type="xml"> <diagram string="Campaign Editor"> <node object="marketing.campaign.activity" shape="rectangle:type=='subcampaign'" bgcolor="gray:start==True"> @@ -105,7 +102,6 @@ <record id="view_marketing_campaign_search" model="ir.ui.view"> <field name="name">marketing.campaign.search</field> <field name="model">marketing.campaign</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Campaigns"> <field name="name" string="Campaign"/> @@ -156,9 +152,8 @@ <record model="ir.ui.view" id="view_marketing_campaign_segment_form"> <field name="name">marketing.campaign.segment.form</field> <field name="model">marketing.campaign.segment</field> - <field name="type">form</field> <field name="arch" type="xml"> - <form version="7.0"> + <form string="Marketing Campaign Segment" version="7.0"> <header> <button name="state_running_set" string="Run" states="draft" class="oe_highlight"/> <button name="state_done_set" string="Close" states="running" class="oe_highlight"/> @@ -194,7 +189,6 @@ <record model="ir.ui.view" id="view_marketing_campaign_segment_tree"> <field name="name">marketing.campaign.segment.tree</field> <field name="model">marketing.campaign.segment</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree colors="blue:state == 'draft';black:state == 'running';gray:state in ('done','cancelled')" string="Segments"> <field name="name"/> @@ -209,7 +203,6 @@ <record id="view_marketing_campaign_segment_search" model="ir.ui.view"> <field name="name">marketing.campaign.segment.search</field> <field name="model">marketing.campaign.segment</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Segments"> <field name="name" string="Segment"/> @@ -251,7 +244,6 @@ <record model="ir.ui.view" id="view_marketing_campaign_activity_form"> <field name="name">marketing.campaign.activity.form</field> <field name="model">marketing.campaign.activity</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Activities" version="7.0"> <group> @@ -322,7 +314,6 @@ <record model="ir.ui.view" id="view_marketing_campaign_activity_tree"> <field name="name">marketing.campaign.activity.tree</field> <field name="model">marketing.campaign.activity</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Activities"> <field name="name"/> @@ -338,7 +329,6 @@ <record model="ir.ui.view" id="view_marketing_campaign_workitem_tree"> <field name="name">marketing.campaign.workitem.tree</field> <field name="model">marketing.campaign.workitem</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree colors="red:state == 'exception';black:state == 'todo';gray:state == 'cancelled'" string="Marketing Campaign Activities"> <field name="campaign_id"/> @@ -360,7 +350,6 @@ <record model="ir.ui.view" id="view_marketing_campaign_workitem_form"> <field name="name">marketing.campaign.workitem.form</field> <field name="model">marketing.campaign.workitem</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Marketing Campaign Activities" version="7.0"> <header> @@ -396,7 +385,6 @@ <record id="view_marketing_campaign_workitem_search" model="ir.ui.view"> <field name="name">marketing.campaign.workitem.search</field> <field name="model">marketing.campaign.workitem</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Marketing Campaign Activities"> <field name="res_name" string="Marketing Campaign Activity"/> diff --git a/addons/marketing_campaign/report/campaign_analysis.py b/addons/marketing_campaign/report/campaign_analysis.py index 0330cd1f7d3..d469be9c25e 100644 --- a/addons/marketing_campaign/report/campaign_analysis.py +++ b/addons/marketing_campaign/report/campaign_analysis.py @@ -63,8 +63,8 @@ class campaign_analysis(osv.osv): 'country_id': fields.related('partner_id', 'country_id', type='many2one', relation='res.country',string='Country'), 'total_cost' : fields.function(_total_cost, string='Cost', - type="float", digits_compute=dp.get_precision('Purchase Price')), - 'revenue': fields.float('Revenue', readonly=True, digits_compute=dp.get_precision('Sale Price')), + type="float", digits_compute=dp.get_precision('Account')), + 'revenue': fields.float('Revenue', readonly=True, digits_compute=dp.get_precision('Account')), 'count' : fields.integer('# of Actions', readonly=True), 'state': fields.selection([('todo', 'To Do'), ('exception', 'Exception'), ('done', 'Done'), diff --git a/addons/marketing_campaign/report/campaign_analysis_view.xml b/addons/marketing_campaign/report/campaign_analysis_view.xml index 30913f1b532..db79ce44132 100644 --- a/addons/marketing_campaign/report/campaign_analysis_view.xml +++ b/addons/marketing_campaign/report/campaign_analysis_view.xml @@ -4,7 +4,6 @@ <record id="view_campaign_analysis_tree" model="ir.ui.view"> <field name="name">campaign.analysis.tree</field> <field name="model">campaign.analysis</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Marketing Reports"> <field name="year" invisible="1"/> @@ -28,7 +27,6 @@ <record id="view_campaign_analysis_search" model="ir.ui.view"> <field name="name">campaign.analysis.search</field> <field name="model">campaign.analysis</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Campaign Analysis"> <field name="date"/> diff --git a/addons/marketing_campaign/res_partner_view.xml b/addons/marketing_campaign/res_partner_view.xml index ee619f041e8..5b959625086 100644 --- a/addons/marketing_campaign/res_partner_view.xml +++ b/addons/marketing_campaign/res_partner_view.xml @@ -6,7 +6,6 @@ <record id="view_workitem_partner_info_form" model="ir.ui.view"> <field name="name">res.partner.workitem.info.inherit</field> <field name="model">res.partner</field> - <field name="type">form</field> <field name="inherit_id" ref="base.view_partner_form"/> <field name="arch" type="xml"> <xpath expr="//page[@name='page_history']" position="attributes"> diff --git a/addons/membership/membership.py b/addons/membership/membership.py index f6bcc5087e6..3439f97f833 100644 --- a/addons/membership/membership.py +++ b/addons/membership/membership.py @@ -146,7 +146,7 @@ class membership_line(osv.osv): 'date_to': fields.date('To', readonly=True), 'date_cancel': fields.date('Cancel date'), 'date': fields.date('Join Date', help="Date on which member has joined the membership"), - 'member_price': fields.float('Member Price', digits_compute= dp.get_precision('Sale Price'), required=True, help='Amount for the membership'), + 'member_price': fields.float('Member Price', digits_compute= dp.get_precision('Product Price'), required=True, help='Amount for the membership'), 'account_invoice_line': fields.many2one('account.invoice.line', 'Account Invoice line', readonly=True), 'account_invoice_id': fields.related('account_invoice_line', 'invoice_id', type='many2one', relation='account.invoice', string='Invoice', readonly=True), 'state': fields.function(_state, @@ -447,7 +447,7 @@ Partner() class product_template(osv.osv): _inherit = 'product.template' _columns = { - 'member_price': fields.float('Member Price', digits_compute= dp.get_precision('Sale Price')), + 'member_price': fields.float('Member Price', digits_compute= dp.get_precision('Product Price')), } product_template() diff --git a/addons/membership/membership_demo.xml b/addons/membership/membership_demo.xml index 29825c7524b..49863bb1f4c 100644 --- a/addons/membership/membership_demo.xml +++ b/addons/membership/membership_demo.xml @@ -11,7 +11,7 @@ <field name="list_price">180</field> <field name="categ_id" ref="product.product_category_1"/> <field name="type">service</field> - <field name="product_image">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</field> + <field name="image">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</field> </record> <record id="membership_1" model="product.product"> <field name="membership">True</field> @@ -21,7 +21,7 @@ <field name="categ_id" ref="product.product_category_1"/> <field name="list_price">80</field> <field name="type">service</field> - <field name="product_image">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</field> + <field name="image">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</field> </record> <record id="membership_2" model="product.product"> <field name="membership">True</field> @@ -31,7 +31,7 @@ <field name="categ_id" ref="product.product_category_1"/> <field name="list_price">40</field> <field name="type">service</field> - <field name="product_image">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</field> + <field name="image">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</field> </record> <!-- Join Memberships --> diff --git a/addons/membership/membership_view.xml b/addons/membership/membership_view.xml index a06bcfcce5e..fb128585fd2 100644 --- a/addons/membership/membership_view.xml +++ b/addons/membership/membership_view.xml @@ -9,7 +9,6 @@ <record model="ir.ui.view" id="membership_product_search_form_view"> <field name="name">membership.product.search.form</field> <field name="model">product.product</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Membership Products"> <field name="name" filter_domain="['|',('name','ilike',self),('code','ilike',self)]" string="Membership Product"/> @@ -26,7 +25,6 @@ <record model="ir.ui.view" id="membership_products_tree"> <field name="name">Membership products</field> <field name="model">product.product</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Membership products"> <field name="code"/> @@ -44,7 +42,6 @@ <record model="ir.ui.view" id="membership_products_form"> <field name="name">Membership Products</field> <field name="model">product.product</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Membership products" version="7.0"> <sheet> @@ -146,7 +143,6 @@ <record model="ir.ui.view" id="membership_members_tree"> <field name="name">Members</field> <field name="model">res.partner</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Members"> <field name="name"/> @@ -162,7 +158,6 @@ <record id="view_res_partner_member_filter" model="ir.ui.view"> <field name="name">res.partner.select</field> <field name="model">res.partner</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Membership Partners"> <field name="membership_start" invisible="1"/> @@ -278,7 +273,6 @@ <!-- View for product.product object inherited from product module --> <record model="ir.ui.view" id="view_product_form_inherit1"> <field name="name">product.normal.form</field> - <field name="type">form</field> <field name="model">product.product</field> <field name="inherit_id" ref="product.product_normal_form_view"/> <field name="arch" type="xml"> diff --git a/addons/membership/report/report_membership_view.xml b/addons/membership/report/report_membership_view.xml index 71e1c6f7876..81e1a3db97c 100644 --- a/addons/membership/report/report_membership_view.xml +++ b/addons/membership/report/report_membership_view.xml @@ -7,7 +7,6 @@ <record model="ir.ui.view" id="view_report_membership_tree1"> <field name="name">report.membership.tree</field> <field name="model">report.membership</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree colors="blue:membership_state == 'draft';black:membership_state in ('open','free');gray:membership_state in ('done','cancel') " string="Membership"> <field name="partner_id"/> @@ -32,7 +31,6 @@ <record model="ir.ui.view" id="view_report_membership_search"> <field name="name">report.membership.search</field> <field name="model">report.membership</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Membership"> <field name="date_from"/> @@ -64,7 +62,6 @@ <record model="ir.ui.view" id="view_report_membership_graph1"> <field name="name">report.membership.graph1</field> <field name="model">report.membership</field> - <field name="type">graph</field> <field name="arch" type="xml"> <graph string="Membership" type="bar"> <field name="year" /> diff --git a/addons/membership/wizard/membership_invoice.py b/addons/membership/wizard/membership_invoice.py index d0be223158f..4ef16b99d82 100644 --- a/addons/membership/wizard/membership_invoice.py +++ b/addons/membership/wizard/membership_invoice.py @@ -29,7 +29,7 @@ class membership_invoice(osv.osv_memory): _description = "Membership Invoice" _columns = { 'product_id': fields.many2one('product.product','Membership', required=True), - 'member_price': fields.float('Member Price', digits_compute= dp.get_precision('Sale Price'), required=True), + 'member_price': fields.float('Member Price', digits_compute= dp.get_precision('Product Price'), required=True), } def onchange_product(self, cr, uid, ids, product_id=False): """This function returns value of product's member price based on product id. diff --git a/addons/membership/wizard/membership_invoice_view.xml b/addons/membership/wizard/membership_invoice_view.xml index e97ad7445df..bfb687d893c 100644 --- a/addons/membership/wizard/membership_invoice_view.xml +++ b/addons/membership/wizard/membership_invoice_view.xml @@ -5,7 +5,6 @@ <record id="view_membership_invoice_view" model="ir.ui.view"> <field name="name">membership.invoice.view.form</field> <field name="model">membership.invoice</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Membership Invoice" version="7.0"> <group> diff --git a/addons/mrp/board_manufacturing_view.xml b/addons/mrp/board_manufacturing_view.xml index 0ac0c02540f..e7668517a70 100644 --- a/addons/mrp/board_manufacturing_view.xml +++ b/addons/mrp/board_manufacturing_view.xml @@ -4,7 +4,6 @@ <record id="board_mrp_manager_form" model="ir.ui.view"> <field name="name">board.mrp.manager.form</field> <field name="model">board.board</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Manufacturing board" version="7.0"> <board style="2-1"> diff --git a/addons/mrp/company_view.xml b/addons/mrp/company_view.xml index e7b24ecce29..559f5f02330 100644 --- a/addons/mrp/company_view.xml +++ b/addons/mrp/company_view.xml @@ -5,7 +5,6 @@ <record id="mrp_company" model="ir.ui.view"> <field name="name">res.company.mrp.config</field> <field name="model">res.company</field> - <field name="type">form</field> <field name="priority">22</field> <field name="inherit_id" ref="base.view_company_form"/> <field name="arch" type="xml"> diff --git a/addons/mrp/mrp.py b/addons/mrp/mrp.py index 749d95c0c23..7b8442b4c46 100644 --- a/addons/mrp/mrp.py +++ b/addons/mrp/mrp.py @@ -1046,13 +1046,10 @@ class mrp_production(osv.osv): # OpenChatter methods and notifications # --------------------------------------------------- - def message_get_subscribers(self, cr, uid, ids, context=None): - """ Override to add responsible user. """ - user_ids = super(mrp_production, self).message_get_subscribers(cr, uid, ids, context=context) - for obj in self.browse(cr, uid, ids, context=context): - if obj.user_id and not obj.user_id.id in user_ids: - user_ids.append(obj.user_id.id) - return user_ids + def message_get_monitored_follower_fields(self, cr, uid, ids, context=None): + """ Add 'user_id' to the monitored fields """ + res = super(mrp_production, self).message_get_monitored_follower_fields(cr, uid, ids, context=context) + return res + ['user_id'] def create_send_note(self, cr, uid, ids, context=None): self.message_append_note(cr, uid, ids, body=_("Manufacturing order has been <b>created</b>."), context=context) diff --git a/addons/mrp/mrp_view.xml b/addons/mrp/mrp_view.xml index 708e60e818b..c394544574d 100644 --- a/addons/mrp/mrp_view.xml +++ b/addons/mrp/mrp_view.xml @@ -25,12 +25,11 @@ <record id="mrp_property_group_form_view" model="ir.ui.view"> <field name="name">mrp.property.group.form</field> <field name="model">mrp.property.group</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Properties categories" version="7.0"> <label for="name"/> <field name="name"/> - <label name="description"/> + <label for="description"/> <field name="description"/> </form> </field> @@ -67,7 +66,6 @@ <record id="mrp_property_tree_view" model="ir.ui.view"> <field name="name">mrp.property.tree</field> <field name="model">mrp.property</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Properties"> <field name="name"/> @@ -79,7 +77,6 @@ <record id="mrp_property_form_view" model="ir.ui.view"> <field name="name">mrp.property.form</field> <field name="model">mrp.property</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Properties" version="7.0"> <group col="4"> @@ -96,7 +93,6 @@ <record id="view_mrp_property_search" model="ir.ui.view"> <field name="name">mrp.property.search</field> <field name="model">mrp.property</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Search"> <field name="name" string="Name"/> @@ -156,7 +152,6 @@ <record id="mrp_workcenter_tree_view" model="ir.ui.view"> <field name="name">mrp.workcenter.tree</field> <field name="model">mrp.workcenter</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Work Center"> <field name="code"/> @@ -169,7 +164,6 @@ <record id="mrp_workcenter_view" model="ir.ui.view"> <field name="name">mrp.workcenter.form</field> <field name="model">mrp.workcenter</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Work Center" version="7.0"> <group col="4"> @@ -217,7 +211,6 @@ <record id="view_mrp_workcenter_search" model="ir.ui.view"> <field name="name">mrp.workcenter.search</field> <field name="model">mrp.workcenter</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Search for mrp workcenter"> <field name="name" string="Mrp Workcenter" filter_domain="['|',('name','ilike',self),('code','ilike',self)]"/> @@ -238,7 +231,6 @@ <record id="mrp_routing_workcenter_tree_view" model="ir.ui.view"> <field name="name">mrp.routing.workcenter.tree</field> <field name="model">mrp.routing.workcenter</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Routing Work Centers"> <field name="sequence"/> @@ -254,7 +246,6 @@ <record id="mrp_routing_workcenter_form_view" model="ir.ui.view"> <field name="name">mrp.routing.workcenter.form</field> <field name="model">mrp.routing.workcenter</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Routing Work Centers" version="7.0"> <group col="4" string="General Information"> @@ -274,7 +265,6 @@ <record id="mrp_routing_form_view" model="ir.ui.view"> <field name="name">mrp.routing.form</field> <field name="model">mrp.routing</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Routing" version="7.0"> <group col="4"> @@ -302,7 +292,6 @@ <record id="mrp_routing_tree_view" model="ir.ui.view"> <field name="name">mrp.routing.tree</field> <field name="model">mrp.routing</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Routing"> <field name="code"/> @@ -315,7 +304,6 @@ <record id="mrp_routing_search_view" model="ir.ui.view"> <field name="name">mrp.routing.search</field> <field name="model">mrp.routing</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Routing"> <field name="name" string="Routing" filter_domain="['|',('name','ilike',self),('code','ilike',self)]"/> @@ -355,7 +343,6 @@ <record id="mrp_bom_form_view" model="ir.ui.view"> <field name="name">mrp.bom.form</field> <field name="model">mrp.bom</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Bill of Material" version="7.0"> <label for="product_id" string="Product and Quantity" class="oe_edit_only"/> @@ -427,7 +414,6 @@ <record id="view_mrp_bom_filter" model="ir.ui.view"> <field name="name">mrp.bom.select</field> <field name="model">mrp.bom</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Search Bill Of Material"> <field name="name" string="Bill Of Material" filter_domain="['|',('name','ilike',self),('code','ilike',self)]"/> @@ -447,7 +433,6 @@ <record id="mrp_bom_tree_view" model="ir.ui.view"> <field name="name">mrp.bom.tree</field> <field name="model">mrp.bom</field> - <field name="type">tree</field> <field name="field_parent">child_complete_ids</field> <field name="arch" type="xml"> <tree string="Bill of Materials" colors="blue:method"> @@ -468,7 +453,6 @@ <record id="mrp_bom_component_tree_view" model="ir.ui.view"> <field name="name">mrp.bom.component.tree</field> <field name="model">mrp.bom</field> - <field name="type">tree</field> <field name="field_parent">child_complete_ids</field> <field name="arch" type="xml"> <tree string="BoM Structure" colors="blue:method"> @@ -557,7 +541,6 @@ <record id="mrp_bom_revision_tree" model="ir.ui.view"> <field name="name">mrp.bom.revision</field> <field name="model">mrp.bom.revision</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="BoM Revisions"> <field name="indice"/> @@ -570,7 +553,6 @@ <record id="mrp_bom_revision_form" model="ir.ui.view"> <field name="name">mrp.bom.revision</field> <field name="model">mrp.bom.revision</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="BoM Revisions" version="7.0"> <group col="4"> @@ -591,7 +573,6 @@ <record id="mrp_production_tree_view" model="ir.ui.view"> <field name="name">mrp.production.tree</field> <field name="model">mrp.production</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree fonts="bold:needaction_pending==True" colors="blue:state in ('draft','confirmed');red:date_planned<current_date and state not in ('done','cancel');black:date_planned>=current_date;gray:state in ('done','cancel') " string="Manufacturing Orders"> <field name="needaction_pending" invisible="1"/> @@ -612,7 +593,6 @@ <record id="view_production_calendar" model="ir.ui.view"> <field name="name">mrp.production.calendar</field> <field name="model">mrp.production</field> - <field name="type">calendar</field> <field eval="2" name="priority"/> <field name="arch" type="xml"> <calendar color="routing_id" date_start="date_planned" string="Manufacturing Orders"> @@ -627,7 +607,6 @@ <record id="view_production_gantt" model="ir.ui.view"> <field name="name">mrp.production.gantt</field> <field name="model">mrp.production</field> - <field name="type">gantt</field> <field name="arch" type="xml"> <gantt date_stop="date_finished" date_start="date_start" string="Productions" default_group_by="routing_id"> </gantt> @@ -638,7 +617,6 @@ <record model="ir.ui.view" id="view_production_graph"> <field name="name">mrp.production.graph</field> <field name="model">mrp.production</field> - <field name="type">graph</field> <field name="arch" type="xml"> <graph string="Manufacturing Orders" type="bar"> <field name="date_planned_date"/> @@ -651,7 +629,6 @@ <record id="mrp_production_form_view" model="ir.ui.view"> <field name="name">mrp.production.form</field> <field name="model">mrp.production</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Manufacturing Orders" version="7.0"> <header> @@ -841,6 +818,7 @@ </sheet> <div class="oe_chatter"> <field name="message_ids" widget="mail_thread"/> + <field name="message_follower_ids" widget="mail_followers"/> </div> </form> </field> @@ -849,7 +827,6 @@ <record id="view_mrp_production_filter" model="ir.ui.view"> <field name="name">mrp.production.select</field> <field name="model">mrp.production</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Search Production"> <field name="name" string="Production" filter_domain="['|',('name','ilike',self),('origin','ilike',self)]"/> @@ -956,7 +933,6 @@ <record id="mrp_production_product_form_view" model="ir.ui.view"> <field name="name">mrp.production.product.line.form</field> <field name="model">mrp.production.product.line</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Scheduled Products" version="7.0"> <group col="4"> @@ -973,7 +949,6 @@ <record id="mrp_production_product_tree_view" model="ir.ui.view"> <field name="name">mrp.production.product.line.tree</field> <field name="model">mrp.production.product.line</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Scheduled Products"> <field name="product_id"/> @@ -993,7 +968,6 @@ <field name="name">procurement.order.form.inherit</field> <field name="model">procurement.order</field> <field name="inherit_id" ref="procurement.procurement_form_view"/> - <field name="type">form</field> <field name="arch" type="xml"> <data> <xpath expr="//field[@name='move_id']" position="before"> @@ -1011,7 +985,6 @@ <record id="product_normal_form_view" model="ir.ui.view"> <field name="name">product.normal.form.mrp.inherit</field> <field name="model">product.product</field> - <field name="type">form</field> <field name="inherit_id" ref="product.product_normal_form_view"/> <field name="arch" type="xml"> <page string="Procurement & Locations" position="inside"> diff --git a/addons/mrp/report/mrp_report_view.xml b/addons/mrp/report/mrp_report_view.xml index 99571903dde..72e07074665 100644 --- a/addons/mrp/report/mrp_report_view.xml +++ b/addons/mrp/report/mrp_report_view.xml @@ -5,7 +5,6 @@ <record id="view_workcenter_load_tree" model="ir.ui.view"> <field name="name">report.workcenter.load.tree</field> <field name="model">report.workcenter.load</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Work Center Loads"> <field name="name"/> @@ -19,7 +18,6 @@ <record id="view_workcenter_load_graph" model="ir.ui.view"> <field name="name">report.workcenter.load.graph</field> <field name="model">report.workcenter.load</field> - <field name="type">graph</field> <field name="arch" type="xml"> <graph string="Work Center load" type="bar"> <field name="name"/> @@ -33,7 +31,6 @@ <record id="view_workcenter_load_search" model="ir.ui.view"> <field name="name">report.workcenter.load.search</field> <field name="model">report.workcenter.load</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Work Center load"> <field name="name" string="Week"/> @@ -49,7 +46,6 @@ <record id="view_report_in_out_picking_tree" model="ir.ui.view"> <field name="name">report.mrp.inout.tree</field> <field name="model">report.mrp.inout</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Stock value variation"> <field name="date"/> @@ -61,7 +57,6 @@ <record id="view_report_in_out_picking_form" model="ir.ui.view"> <field name="name">report.mrp.inout.form</field> <field name="model">report.mrp.inout</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Stock value variation" version="7.0"> <group col="4"> @@ -76,7 +71,6 @@ <record id="view_report_in_out_picking_graph" model="ir.ui.view"> <field name="name">report.mrp.inout.graph</field> <field name="model">report.mrp.inout</field> - <field name="type">graph</field> <field name="arch" type="xml"> <graph string="Stock value variation" type="bar"> <field name="date"/> diff --git a/addons/mrp/report/price.py b/addons/mrp/report/price.py index 9b3b724306f..527505d8ea5 100644 --- a/addons/mrp/report/price.py +++ b/addons/mrp/report/price.py @@ -138,7 +138,7 @@ class report_custom(report_rml): </row> """ % (_('Components'), _('Components suppliers'), _('Quantity'),_('Cost Price per Unit of Measure'), _('Supplier Price per Unit of Measure')) - purchase_price_digits = rml_obj.get_digits(dp='Purchase Price') + purchase_price_digits = rml_obj.get_digits(dp='Product Price') for product in product_pool.browse(cr, uid, ids, context=context): product_uom_name = to_xml(product.uom_id.name) diff --git a/addons/mrp/res_config_view.xml b/addons/mrp/res_config_view.xml index 34e273eddd0..4d94e611fdf 100644 --- a/addons/mrp/res_config_view.xml +++ b/addons/mrp/res_config_view.xml @@ -17,7 +17,6 @@ <record id="view_mrp_config" model="ir.ui.view"> <field name="name">mrp settings</field> <field name="model">mrp.config.settings</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Configure Manufacturing" class= "oe_form_configuration" version="7.0"> <header> diff --git a/addons/mrp/wizard/change_production_qty_view.xml b/addons/mrp/wizard/change_production_qty_view.xml index 87b180f0aad..ef01f2b5719 100644 --- a/addons/mrp/wizard/change_production_qty_view.xml +++ b/addons/mrp/wizard/change_production_qty_view.xml @@ -7,7 +7,6 @@ <record id="view_change_production_qty_wizard" model="ir.ui.view"> <field name="name">Change Product Qty</field> <field name="model">change.production.qty</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Change Product Qty" version="7.0"> <group> diff --git a/addons/mrp/wizard/mrp_price_view.xml b/addons/mrp/wizard/mrp_price_view.xml index f8aaa7e3c5d..faaadbb524a 100644 --- a/addons/mrp/wizard/mrp_price_view.xml +++ b/addons/mrp/wizard/mrp_price_view.xml @@ -7,7 +7,6 @@ <record id="view_mrp_product_price_wizard" model="ir.ui.view"> <field name="name">Product Cost Structure</field> <field name="model">mrp.product_price</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Product Cost Structure" version="7.0"> <group string="Print Cost Structure of Product."> diff --git a/addons/mrp/wizard/mrp_product_produce_view.xml b/addons/mrp/wizard/mrp_product_produce_view.xml index 72d0ccfcaa2..f3e892a1b0a 100644 --- a/addons/mrp/wizard/mrp_product_produce_view.xml +++ b/addons/mrp/wizard/mrp_product_produce_view.xml @@ -8,7 +8,6 @@ <record id="view_mrp_product_produce_wizard" model="ir.ui.view"> <field name="name">MRP Product Produce</field> <field name="model">mrp.product.produce</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Produce" version="7.0"> <group string="Produce"> diff --git a/addons/mrp/wizard/mrp_workcenter_load_view.xml b/addons/mrp/wizard/mrp_workcenter_load_view.xml index 439e180ca3c..101db26bce1 100644 --- a/addons/mrp/wizard/mrp_workcenter_load_view.xml +++ b/addons/mrp/wizard/mrp_workcenter_load_view.xml @@ -7,7 +7,6 @@ <record id="view_mrp_workcenter_load_wizard" model="ir.ui.view"> <field name="name">Work Center Load</field> <field name="model">mrp.workcenter.load</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Select time unit" version="7.0"> <sheet> diff --git a/addons/mrp_operations/mrp_operations_view.xml b/addons/mrp_operations/mrp_operations_view.xml index f8726782980..834f3000472 100644 --- a/addons/mrp_operations/mrp_operations_view.xml +++ b/addons/mrp_operations/mrp_operations_view.xml @@ -5,7 +5,6 @@ <record id="mrp_production_form_inherit_view" model="ir.ui.view"> <field name="name">mrp.production.form.inherit</field> <field name="model">mrp.production</field> - <field name="type">form</field> <field name="inherit_id" ref="mrp.mrp_production_form_view"/> <field name="arch" type="xml"> <xpath expr="//field[@name='workcenter_lines']/form//field[@name='name']" position="before"> @@ -25,7 +24,6 @@ <record id="mrp_production_form_inherit_view2" model="ir.ui.view"> <field name="name">mrp.production.form.inherit2</field> <field name="model">mrp.production</field> - <field name="type">form</field> <field name="inherit_id" ref="mrp.mrp_production_form_view"/> <field name="arch" type="xml"> <xpath expr="//field[@name='workcenter_lines']/tree/field[@name='hour']" position="after"> @@ -42,7 +40,6 @@ <record model="ir.ui.view" id="mrp_production_workcenter_tree_view_inherit"> <field name="name">mrp.production.workcenter.line.tree</field> <field name="model">mrp.production.workcenter.line</field> - <field name="type">tree</field> <field name="inherit_id" eval="False"/> <field name="arch" type="xml"> <tree string="Work Orders" colors="gray:state in ('done','cancel');black:state in ('draft','startworking') and date_planned>=current_date;red:date_planned<current_date and state in ('draft', 'confirmed', 'ready')"> @@ -63,10 +60,9 @@ <record model="ir.ui.view" id="mrp_production_workcenter_form_view_inherit"> <field name="name">mrp.production.workcenter.line.form</field> <field name="model">mrp.production.workcenter.line</field> - <field name="type">form</field> <field name="inherit_id" eval="False"/> <field name="arch" type="xml"> - <form version="7.0"> + <form string="Production Workcenter" version="7.0"> <header> <button name="button_start_working" string="Start" states="draft" class="oe_highlight"/> <button name="button_resume" string="Resume" states="pause" class="oe_highlight"/> @@ -112,6 +108,7 @@ </sheet> <div class="oe_chatter"> <field name="message_ids" widget="mail_thread"/> + <field name="message_follower_ids" widget="mail_followers"/> </div> </form> </field> @@ -120,7 +117,6 @@ <record id="view_mrp_production_workcenter_form_view_filter" model="ir.ui.view"> <field name="name">mrp.production.workcenter.line.select</field> <field name="model">mrp.production.workcenter.line</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Search Work Orders"> <field name="name" string="Work Orders"/> @@ -147,7 +143,6 @@ <record id="workcenter_line_calendar" model="ir.ui.view"> <field name="name">mrp.production.workcenter.line.calendar</field> <field name="model">mrp.production.workcenter.line</field> - <field name="type">calendar</field> <field name="arch" type="xml"> <calendar color="product" date_stop="date_finished" date_start="date_start" string="Operations"> <field name="workcenter_id"/> @@ -160,7 +155,6 @@ <record id="workcenter_line_gantt" model="ir.ui.view"> <field name="name">mrp.production.workcenter.line.gantt</field> <field name="model">mrp.production.workcenter.line</field> - <field name="type">gantt</field> <field name="arch" type="xml"> <gantt date_delay="hour" date_start="date_planned" string="Operations" default_group_by="production_id"> </gantt> @@ -215,7 +209,6 @@ <record id="workcenter_line_resource_gantt" model="ir.ui.view"> <field name="name">mrp.production.workcenter.line.resource.gantt</field> <field name="model">mrp.production.workcenter.line</field> - <field name="type">gantt</field> <field name="arch" type="xml"> <gantt date_delay="hour" date_start="date_planned" default_group_by="workcenter_id"> </gantt> @@ -282,7 +275,6 @@ <record model="ir.ui.view" id="mrp_production_code_tree_view"> <field name="name">mrp.production.code.tree</field> <field name="model">mrp_operations.operation.code</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Production Operation Code"> <field name="name"/> @@ -294,7 +286,6 @@ <record model="ir.ui.view" id="mrp_production_code_form_view"> <field name="name">mrp.production.code.form</field> <field name="model">mrp_operations.operation.code</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Production Operation Code" version="7.0"> <group col="4"> @@ -320,7 +311,6 @@ <record model="ir.ui.view" id="mrp_production_operation_tree_view"> <field name="name">mrp.production.operation.tree</field> <field name="model">mrp_operations.operation</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Production Operation" editable="top"> <field name="production_id"/> @@ -336,7 +326,6 @@ <record id="graph_in_hrs_workcenter" model="ir.ui.view"> <field name="name">graph.in.hrs.workcenter</field> <field name="model">mrp.production.workcenter.line</field> - <field name="type">graph</field> <field name="arch" type="xml"> <graph string="Hours by Work Center" type="bar"> <field name="date_start_date"/> @@ -358,7 +347,6 @@ <field name="name">mrp.production.allow_reorder.form</field> <field name="inherit_id" ref="mrp.mrp_production_form_view"/> <field name="model">mrp.production</field> - <field name="type">form</field> <field name="arch" type="xml"> <field name="date_finished" position="after"> <field name="allow_reorder"/> @@ -369,7 +357,6 @@ <record model="ir.ui.view" id="operation_calendar_view"> <field name="name">mrp.perations.calendar</field> <field name="model">mrp_operations.operation</field> - <field name="type">calendar</field> <field name="priority" eval="2"/> <field name="arch" type="xml"> <calendar string="Calendar View" date_start="order_date" color="workcenter_id"> diff --git a/addons/mrp_operations/report/mrp_workorder_analysis_view.xml b/addons/mrp_operations/report/mrp_workorder_analysis_view.xml index 0c9ee4c6726..cca9a7e3b24 100644 --- a/addons/mrp_operations/report/mrp_workorder_analysis_view.xml +++ b/addons/mrp_operations/report/mrp_workorder_analysis_view.xml @@ -8,7 +8,6 @@ <record id="view_report_mrp_workorder_tree" model="ir.ui.view"> <field name="name">mrp.workorder.tree</field> <field name="model">mrp.workorder</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Work Orders"> <field name="date" invisible="1"/> @@ -31,7 +30,6 @@ <record id="view_report_mrp_workorder_graph" model="ir.ui.view"> <field name="name">mrp.workorder.graph</field> <field name="model">mrp.workorder</field> - <field name="type">graph</field> <field name="arch" type="xml"> <graph orientation="horizontal" string="Work Orders" type="bar"> <field name="state"/> @@ -43,7 +41,6 @@ <record id="view_report_mrp_workorder_filter" model="ir.ui.view"> <field name="name">mrp.workorder.select</field> <field name="model">mrp.workorder</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Search"> <field name="date"/> diff --git a/addons/mrp_repair/mrp_repair.py b/addons/mrp_repair/mrp_repair.py index c9dc3f5e7bc..f41abb58c08 100644 --- a/addons/mrp_repair/mrp_repair.py +++ b/addons/mrp_repair/mrp_repair.py @@ -692,10 +692,10 @@ class mrp_repair_line(osv.osv, ProductChangeMixin): 'to_invoice': fields.boolean('To Invoice'), 'product_id': fields.many2one('product.product', 'Product', domain=[('sale_ok','=',True)], required=True), 'invoiced': fields.boolean('Invoiced',readonly=True), - 'price_unit': fields.float('Unit Price', required=True, digits_compute= dp.get_precision('Sale Price')), - 'price_subtotal': fields.function(_amount_line, string='Subtotal',digits_compute= dp.get_precision('Sale Price')), + 'price_unit': fields.float('Unit Price', required=True, digits_compute= dp.get_precision('Product Price')), + 'price_subtotal': fields.function(_amount_line, string='Subtotal',digits_compute= dp.get_precision('Account')), 'tax_id': fields.many2many('account.tax', 'repair_operation_line_tax', 'repair_operation_line_id', 'tax_id', 'Taxes'), - 'product_uom_qty': fields.float('Quantity', digits_compute= dp.get_precision('Product UoS'), required=True), + 'product_uom_qty': fields.float('Quantity', digits_compute= dp.get_precision('Product Unit of Measure'), required=True), 'product_uom': fields.many2one('product.uom', 'Product Unit of Measure', required=True), 'prodlot_id': fields.many2one('stock.production.lot', 'Lot Number',domain="[('product_id','=',product_id)]"), 'invoice_line_id': fields.many2one('account.invoice.line', 'Invoice Line', readonly=True), @@ -784,10 +784,10 @@ class mrp_repair_fee(osv.osv, ProductChangeMixin): 'repair_id': fields.many2one('mrp.repair', 'Repair Order Reference', required=True, ondelete='cascade', select=True), 'name': fields.char('Description', size=64, select=True,required=True), 'product_id': fields.many2one('product.product', 'Product'), - 'product_uom_qty': fields.float('Quantity', digits=(16,2), required=True), + 'product_uom_qty': fields.float('Quantity', digits_compute= dp.get_precision('Product Unit of Measure'), required=True), 'price_unit': fields.float('Unit Price', required=True), 'product_uom': fields.many2one('product.uom', 'Product Unit of Measure', required=True), - 'price_subtotal': fields.function(_amount_line, string='Subtotal',digits_compute= dp.get_precision('Sale Price')), + 'price_subtotal': fields.function(_amount_line, string='Subtotal',digits_compute= dp.get_precision('Account')), 'tax_id': fields.many2many('account.tax', 'repair_fee_line_tax', 'repair_fee_line_id', 'tax_id', 'Taxes'), 'invoice_line_id': fields.many2one('account.invoice.line', 'Invoice Line', readonly=True), 'to_invoice': fields.boolean('To Invoice'), diff --git a/addons/mrp_repair/mrp_repair_view.xml b/addons/mrp_repair/mrp_repair_view.xml index 6c47a5c002f..55cbe49c75b 100644 --- a/addons/mrp_repair/mrp_repair_view.xml +++ b/addons/mrp_repair/mrp_repair_view.xml @@ -5,7 +5,6 @@ <record id="view_repair_order_tree" model="ir.ui.view"> <field name="name">mrp.repair.tree</field> <field name="model">mrp.repair</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Repairs order" colors="gray:state in ('done','cancel');black:state not in ('done','cancel');blue:state=='draft'"> <field name="name" /> @@ -25,9 +24,8 @@ <record id="view_repair_order_form" model="ir.ui.view"> <field name="name">mrp.repair.form</field> <field name="model">mrp.repair</field> - <field name="type">form</field> <field name="arch" type="xml"> - <form version="7.0"> + <form string="Repair Order" version="7.0"> <header> <button name="repair_confirm" states="draft" string="Confirm Repair" class="oe_highlight"/> <button name="repair_ready" states="confirmed,ready" string="Start Repair" class="oe_highlight"/> @@ -192,6 +190,7 @@ </sheet> <div class="oe_chatter"> <field name="message_ids" widget="mail_thread"/> + <field name="message_follower_ids" widget="mail_followers"/> </div> </form> </field> @@ -202,7 +201,6 @@ <record id="view_repair_order_form_filter" model="ir.ui.view"> <field name="name">mrp.repair.select</field> <field name="model">mrp.repair</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Search Reair Orders"> <field name="name" string="Reair Orders"/> diff --git a/addons/mrp_repair/wizard/mrp_repair_cancel_view.xml b/addons/mrp_repair/wizard/mrp_repair_cancel_view.xml index b90d822121a..04f85e055be 100644 --- a/addons/mrp_repair/wizard/mrp_repair_cancel_view.xml +++ b/addons/mrp_repair/wizard/mrp_repair_cancel_view.xml @@ -7,7 +7,6 @@ <record id="view_cancel_repair" model="ir.ui.view"> <field name="name">Cancel Repair</field> <field name="model">mrp.repair.cancel</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Cancel Repair Order" version="7.0"> <group> diff --git a/addons/mrp_repair/wizard/mrp_repair_make_invoice_view.xml b/addons/mrp_repair/wizard/mrp_repair_make_invoice_view.xml index ca4690df210..431cf0d54b4 100644 --- a/addons/mrp_repair/wizard/mrp_repair_make_invoice_view.xml +++ b/addons/mrp_repair/wizard/mrp_repair_make_invoice_view.xml @@ -7,7 +7,6 @@ <record id="view_make_invoice" model="ir.ui.view"> <field name="name">Make Invoice</field> <field name="model">mrp.repair.make_invoice</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Create invoices" version="7.0"> <group string="Do you really want to create the invoice(s)?"> diff --git a/addons/mrp_subproduct/mrp_subproduct_view.xml b/addons/mrp_subproduct/mrp_subproduct_view.xml index 42f9c7b4060..94da87ef0de 100644 --- a/addons/mrp_subproduct/mrp_subproduct_view.xml +++ b/addons/mrp_subproduct/mrp_subproduct_view.xml @@ -5,7 +5,6 @@ <field name="name">mrp.bom.sub.product</field> <field name="model">mrp.bom</field> <field name="inherit_id" ref="mrp.mrp_bom_form_view"/> - <field name="type">form</field> <field name="arch" type="xml"> <notebook position="inside"> <page string="Sub Products" position="inside"> diff --git a/addons/multi_company/res_company_view.xml b/addons/multi_company/res_company_view.xml index 5ea323175e6..d69eb6e533d 100644 --- a/addons/multi_company/res_company_view.xml +++ b/addons/multi_company/res_company_view.xml @@ -5,7 +5,6 @@ <record id="view_inventory_tree" model="ir.ui.view"> <field name="name">multi_company.default.tree</field> <field name="model">multi_company.default</field> - <field name="type">tree</field> <field name="priority" eval="8"/> <field name="arch" type="xml"> <tree string="Multi Company"> @@ -22,7 +21,6 @@ <record id="view_inventory_form" model="ir.ui.view"> <field name="name">multi_company.default.form</field> <field name="model">multi_company.default</field> - <field name="type">form</field> <field name="priority" eval="8"/> <field name="arch" type="xml"> <form string="Multi Company"> @@ -46,7 +44,6 @@ <record id="view_inventory_search" model="ir.ui.view"> <field name="name">multi_company.default.search</field> <field name="model">multi_company.default</field> - <field name="type">search</field> <field name="priority" eval="8"/> <field name="arch" type="xml"> <search string="Multi Company"> diff --git a/addons/pad/res_company.xml b/addons/pad/res_company.xml index 12f14b0f5bd..017561aaec3 100644 --- a/addons/pad/res_company.xml +++ b/addons/pad/res_company.xml @@ -3,7 +3,6 @@ <record id="view_company_form_with_pad" model="ir.ui.view"> <field name="name">res.company.form.pad</field> <field name="model">res.company</field> - <field name="type">form</field> <field name="inherit_id" ref="base.view_company_form"/> <field name="arch" type="xml"> <xpath expr="//group[@name='account_grp']" position="after"> diff --git a/addons/pad_project/project_task.xml b/addons/pad_project/project_task.xml index d18f43a92f4..24efbc9dad0 100644 --- a/addons/pad_project/project_task.xml +++ b/addons/pad_project/project_task.xml @@ -3,7 +3,6 @@ <record id="view_task_form_with_pad" model="ir.ui.view"> <field name="name">project.task.form.pad</field> <field name="model">project.task</field> - <field name="type">form</field> <field name="inherit_id" ref="project.view_task_form2"/> <field name="arch" type="xml"> <field name="description" position="replace"> diff --git a/addons/plugin_outlook/plugin_outlook.xml b/addons/plugin_outlook/plugin_outlook.xml index f42d17e51c0..e99fbf72b6d 100644 --- a/addons/plugin_outlook/plugin_outlook.xml +++ b/addons/plugin_outlook/plugin_outlook.xml @@ -4,7 +4,6 @@ <record id="view_outlook_installer" model="ir.ui.view"> <field name="name">outlook.installer.view</field> <field name="model">outlook.installer</field> - <field name="type">form</field> <field name="inherit_id" ref="base.res_config_installer"/> <field name="arch" type="xml"> <data> @@ -46,7 +45,6 @@ <record id="view_config_outlook_installer" model="ir.ui.view"> <field name="name">Sales Application</field> <field name="model">sale.config.settings</field> - <field name="type">form</field> <field name="inherit_id" ref="base_setup.view_sale_config_settings"/> <field name="arch" type="xml"> <div name="module_plugin_outlook" version="7.0" position="replace"> diff --git a/addons/plugin_thunderbird/plugin_thunderbird.xml b/addons/plugin_thunderbird/plugin_thunderbird.xml index 7a323ce33f5..5ea5fc38219 100644 --- a/addons/plugin_thunderbird/plugin_thunderbird.xml +++ b/addons/plugin_thunderbird/plugin_thunderbird.xml @@ -4,7 +4,6 @@ <record id="view_thunderbird_installer" model="ir.ui.view"> <field name="name">plugin_thunderbird.installer.view</field> <field name="model">plugin_thunderbird.installer</field> - <field name="type">form</field> <field name="inherit_id" ref="base.res_config_installer"/> <field name="arch" type="xml"> <data> @@ -52,7 +51,6 @@ <record id="view_config_thunderbird_installer" model="ir.ui.view"> <field name="name">Sales Application</field> <field name="model">sale.config.settings</field> - <field name="type">form</field> <field name="inherit_id" ref="base_setup.view_sale_config_settings"/> <field name="arch" type="xml"> <div name="module_plugin_thunderbird" version="7.0" position="replace"> diff --git a/addons/point_of_sale/account_statement_demo.xml b/addons/point_of_sale/account_statement_demo.xml index e8ee0a7c349..982e0480aeb 100644 --- a/addons/point_of_sale/account_statement_demo.xml +++ b/addons/point_of_sale/account_statement_demo.xml @@ -12,7 +12,6 @@ <record id="account.cash_journal" model="account.journal"> <field eval="True" name="journal_user"/> - <field eval="1" name="check_dtls"/> </record> </data> diff --git a/addons/point_of_sale/account_statement_view.xml b/addons/point_of_sale/account_statement_view.xml index 8568c8d60d9..d7f3be2a8d6 100644 --- a/addons/point_of_sale/account_statement_view.xml +++ b/addons/point_of_sale/account_statement_view.xml @@ -4,7 +4,6 @@ <record model="ir.ui.view" id="view_account_journal_pos_user_form"> <field name="name">POS Journal</field> <field name="model">account.journal</field> - <field name="type">form</field> <field name="inherit_id" ref="account.view_account_journal_form"/> <field name="arch" type="xml"> <xpath expr="//notebook[last()]" position="inside"> @@ -24,7 +23,6 @@ <record id="view_pos_open_cash_statement_filter" model="ir.ui.view"> <field name="name">account.bank.statement.inherit</field> <field name="model">account.bank.statement</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Search Cash Statements"> <field name="name" string="Cash Statement"/> @@ -43,7 +41,6 @@ <record id="view_pos_confirm_cash_statement_filter" model="ir.ui.view"> <field name="name">account.bank.statement.inherit2</field> <field name="model">account.bank.statement</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Search Cash Statements"> <field name="name" string="Cash Statement"/> @@ -86,7 +83,6 @@ <record id="view_cash_statement_pos_tree" model="ir.ui.view"> <field name="name">account.bank.statement.tree</field> <field name="model">account.bank.statement</field> - <field name="type">tree</field> <field name="inherit_id" ref="account.view_cash_statement_tree"/> <field name="arch" type="xml"> <field name="journal_id" position="after"> diff --git a/addons/point_of_sale/point_of_sale_view.xml b/addons/point_of_sale/point_of_sale_view.xml index 1168faa21ac..47a41260378 100644 --- a/addons/point_of_sale/point_of_sale_view.xml +++ b/addons/point_of_sale/point_of_sale_view.xml @@ -15,7 +15,6 @@ <record model="ir.ui.view" id="view_pos_pos_form"> <field name="name">pos.order</field> <field name="model">pos.order</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Point of Sale Orders" version="7.0"> <header> @@ -125,7 +124,6 @@ <record model="ir.ui.view" id="view_pos_order_tree"> <field name="name">Sales</field> <field name="model">pos.order</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="POS Orders" colors="blue:state == 'draft';gray:state in ('done','cancel');black:state not in('done','cancel')"> <field name="name"/> @@ -142,7 +140,6 @@ <record id="view_pos_order_filter" model="ir.ui.view"> <field name="name">pos.order.list.select</field> <field name="model">pos.order</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Search Sales Order"> <field name="name" string="Sales Order"/> @@ -198,7 +195,6 @@ <record model="ir.ui.view" id="view_pos_order_line"> <field name="name">Sale lines</field> <field name="model">pos.order.line</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="POS Order lines"> <field name="product_id" readonly="1"/> @@ -215,7 +211,6 @@ <record model="ir.ui.view" id="view_pos_order_line_form"> <field name="name">Sale line</field> <field name="model">pos.order.line</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="POS Order line" version="7.0"> <group col="4"> @@ -264,7 +259,6 @@ <record model="ir.ui.view" id="view_pos_trans_user_form"> <field name="name">report.trans.pos.user.form</field> <field name="model">report.transaction.pos</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="POS " version="7.0"> <group col="4"> @@ -284,7 +278,6 @@ <record model="ir.ui.view" id="view_trans_pos_user_tree"> <field name="name">Sales by user</field> <field name="model">report.transaction.pos</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="POS"> <field name="date_create" widget="date" /> @@ -303,7 +296,6 @@ <record model="ir.ui.view" id="view_report_transaction_pos_calendar"> <field name="name">report.transaction.pos.calendar</field> <field name="model">report.transaction.pos</field> - <field name="type">calendar</field> <field eval="2" name="priority"/> <field name="arch" type="xml"> <calendar color="user_id" date_start="date_create" string="POS Report"> @@ -316,7 +308,6 @@ <record model="ir.ui.view" id="view_report_transaction_pos_graph"> <field name="name">report.transaction.pos.graph</field> <field name="model">report.transaction.pos</field> - <field name="type">graph</field> <field eval="2" name="priority"/> <field name="arch" type="xml"> <graph type="bar" string="POS Report"> @@ -357,7 +348,6 @@ <record model="ir.ui.view" id="view_report_sales_by_user_pos_form"> <field name="name">report.sales.by.user.pos.form</field> <field name="model">report.sales.by.user.pos</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="POS " version="7.0"> <group col="4"> @@ -374,7 +364,6 @@ <record model="ir.ui.view" id="view_report_sales_by_user_pos_tree"> <field name="name">report.sales.by.user.pos.tree</field> <field name="model">report.sales.by.user.pos</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="POS"> <field name="date_order" widget="date"/> @@ -388,7 +377,6 @@ <record model="ir.ui.view" id="view_report_sales_by_user_pos_calendar"> <field name="name">report.sales.by.user.pos.calendar</field> <field name="model">report.sales.by.user.pos</field> - <field name="type">calendar</field> <field eval="2" name="priority"/> <field name="arch" type="xml"> <calendar color="user_id" date_start="date_order" string="POS Report"> @@ -401,7 +389,6 @@ <record model="ir.ui.view" id="view_report_sales_by_user_pos_graph"> <field name="name">report.sales.by.user.pos.graph</field> <field name="model">report.sales.by.user.pos</field> - <field name="type">graph</field> <field eval="2" name="priority"/> <field name="arch" type="xml"> <graph type="bar" string="Sales by User"> @@ -425,7 +412,6 @@ <record model="ir.ui.view" id="view_report_sales_by_user_pos_month_form"> <field name="name">report.sales.by.user.pos.month.form</field> <field name="model">report.sales.by.user.pos.month</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="POS " version="7.0"> <group col="4"> @@ -442,7 +428,6 @@ <record model="ir.ui.view" id="view_report_sales_by_user_pos_month_tree"> <field name="name">report.sales.by.user.pos.month.tree</field> <field name="model">report.sales.by.user.pos.month</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="POS"> <field name="date_order" widget="date"/> @@ -456,7 +441,6 @@ <record model="ir.ui.view" id="view_report_sales_by_user_pos_month_calendar"> <field name="name">report.sales.by.user.pos.month.calendar</field> <field name="model">report.sales.by.user.pos.month</field> - <field name="type">calendar</field> <field eval="2" name="priority"/> <field name="arch" type="xml"> <calendar color="user_id" date_start="date_order" string="POS Report"> @@ -469,7 +453,6 @@ <record model="ir.ui.view" id="view_report_sales_by_user_pos_month_graph"> <field name="name">report.sales.by.user.pos.month.graph</field> <field name="model">report.sales.by.user.pos.month</field> - <field name="type">graph</field> <field eval="2" name="priority"/> <field name="arch" type="xml"> <graph type="bar" string="Sales by User"> @@ -493,7 +476,6 @@ <record model="ir.ui.view" id="view_report_sales_by_margin_pos_form"> <field name="name">report.sales.by.margin.pos.form</field> <field name="model">report.sales.by.margin.pos</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="POS " version="7.0"> <group col="4"> @@ -512,7 +494,6 @@ <record model="ir.ui.view" id="view_report_sales_by_margin_pos_tree"> <field name="name">report.sales.by.margin.pos.tree</field> <field name="model">report.sales.by.margin.pos</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="POS"> <field name="user_id"/> @@ -528,7 +509,6 @@ <record model="ir.ui.view" id="view_report_sales_by_margin_pos_calendar"> <field name="name">report.sales.by.margin.pos.calendar</field> <field name="model">report.sales.by.margin.pos</field> - <field name="type">calendar</field> <field eval="2" name="priority"/> <field name="arch" type="xml"> <calendar color="user_id" date_start="date_order" string="Sales by User Margin"> @@ -541,7 +521,6 @@ <record model="ir.ui.view" id="view_report_sales_by_margin_pos_graph"> <field name="name">report.sales.by.margin.pos.graph</field> <field name="model">report.sales.by.margin.pos</field> - <field name="type">graph</field> <field eval="2" name="priority"/> <field name="arch" type="xml"> <graph type="bar" string="Sales by User Margin" orientation="horizontal"> @@ -562,7 +541,6 @@ <record model="ir.ui.view" id="view_report_sales_by_margin_pos_month_form"> <field name="name">report.sales.by.margin.pos.month.form</field> <field name="model">report.sales.by.margin.pos.month</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="POS " version="7.0"> <group col="4"> @@ -581,7 +559,6 @@ <record model="ir.ui.view" id="view_report_sales_by_margin_pos_month_tree"> <field name="name">report.sales.by.margin.pos.month.tree</field> <field name="model">report.sales.by.margin.pos.month</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="POS"> <field name="user_id"/> @@ -597,7 +574,6 @@ <record model="ir.ui.view" id="view_report_sales_by_margin_pos_month_calendar"> <field name="name">report.sales.by.margin.pos.month.calendar</field> <field name="model">report.sales.by.margin.pos.month</field> - <field name="type">calendar</field> <field eval="2" name="priority"/> <field name="arch" type="xml"> <calendar color="user_id" date_start="date_order" string="Sales by User Margin"> @@ -610,7 +586,6 @@ <record model="ir.ui.view" id="view_report_sales_by_margin_pos_month_graph"> <field name="name">report.sales.by.margin.pos.month.graph</field> <field name="model">report.sales.by.margin.pos.month</field> - <field name="type">graph</field> <field eval="2" name="priority"/> <field name="arch" type="xml"> <graph type="bar" string="Sales by User Margin" orientation="horizontal"> @@ -631,7 +606,6 @@ <record id="product_normal_form_pos_view" model="ir.ui.view"> <field name="name">product.normal.pos.form.inherit</field> <field name="model">product.product</field> - <field name="type">form</field> <field name="inherit_id" ref="product.product_normal_form_view"/> <field name="arch" type="xml"> <group name="status" position="after"> @@ -647,7 +621,6 @@ <record id="product_normal_form_view" model="ir.ui.view"> <field name="name">product.normal.form.inherit</field> <field name="model">product.product</field> - <field name="type">form</field> <field name="inherit_id" ref="product.product_normal_form_view"/> <field name="arch" type="xml"> <group name="misc" position="after"> @@ -664,7 +637,6 @@ <record id="pos_category_form_view" model="ir.ui.view"> <field name="name">pos.category.form</field> <field name="model">pos.category</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Product PoS Categories" version="7.0"> <sheet> @@ -683,7 +655,6 @@ <record id="pos_category_tree_view" model="ir.ui.view"> <field name="name">pos.category.tree</field> <field name="model">pos.category</field> - <field name="type">tree</field> <field name="field_parent" eval="False"/> <field name="arch" type="xml"> <tree string="Product PoS Categories"> @@ -745,7 +716,6 @@ <record model="ir.ui.view" id="view_pos_order_tree_all_sales_lines"> <field name="name">POS Sales Lines</field> <field name="model">pos.order.line</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="POS Orders lines"> <field name="order_id" /> @@ -789,7 +759,6 @@ <record model="ir.ui.view" id="view_pos_config_form"> <field name="name">pos.config.form.view</field> <field name="model">pos.config</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Point of Sale Configuration" version="7.0"> <header> @@ -843,7 +812,6 @@ <record model="ir.ui.view" id="view_pos_config_tree"> <field name="name">pos.config.tree.view</field> <field name="model">pos.config</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Point of Sale Configuration" colors="grey:state == 'inactive'"> <field name="name" /> @@ -856,7 +824,6 @@ <record model="ir.ui.view" id="view_pos_config_search"> <field name="name">pos.config.search.view</field> <field name="model">pos.config</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Point of Sale Config"> <field name="name" /> @@ -902,7 +869,6 @@ <record model="ir.ui.view" id="view_pos_session_form"> <field name="name">pos.session.form.view</field> <field name="model">pos.session</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Point of Sale Session" version="7.0"> <header> @@ -1002,7 +968,6 @@ <record model="ir.ui.view" id="view_pos_session_tree"> <field name="name">pos.session.tree.view</field> <field name="model">pos.session</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Point of Sale Session"> <field name="config_id" /> @@ -1018,7 +983,6 @@ <record model="ir.ui.view" id="view_pos_session_search"> <field name="name">pos.session.search.view</field> <field name="model">pos.session</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Point of Sale Session"> <field name="name" /> @@ -1068,7 +1032,6 @@ <record id="view_pos_order_filter" model="ir.ui.view"> <field name="name">pos.order.list.select</field> <field name="model">pos.order</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Search Sales Order"> <field name="name"/> diff --git a/addons/point_of_sale/report/pos_order_report_view.xml b/addons/point_of_sale/report/pos_order_report_view.xml index e103fe4e6c0..fee47312610 100644 --- a/addons/point_of_sale/report/pos_order_report_view.xml +++ b/addons/point_of_sale/report/pos_order_report_view.xml @@ -4,7 +4,6 @@ <record id="view_report_pos_order_tree" model="ir.ui.view"> <field name="name">report.pos.order.tree</field> <field name="model">report.pos.order</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Point of Sale Analysis"> <field name="date" invisible="1"/> @@ -31,7 +30,6 @@ <record id="view_report_pos_order_search" model="ir.ui.view"> <field name="name">report.pos.order.search</field> <field name="model">report.pos.order</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Point of Sale Analysis"> <field name="date"/> diff --git a/addons/point_of_sale/res_users_view.xml b/addons/point_of_sale/res_users_view.xml index def4a578252..f561ccf9b80 100644 --- a/addons/point_of_sale/res_users_view.xml +++ b/addons/point_of_sale/res_users_view.xml @@ -5,7 +5,6 @@ <record id="res_users_form_preference_view" model="ir.ui.view"> <field name="name">res.users.form.view</field> <field name="model">res.users</field> - <field name="type">form</field> <field name="inherit_id" ref="base.view_users_form_simple_modif" /> <field name="arch" type="xml"> <xpath expr="//group[@name='preferences']" position="inside"> @@ -17,7 +16,6 @@ <record id="res_users_form_view" model="ir.ui.view"> <field name="name">res.users.form.view</field> <field name="model">res.users</field> - <field name="type">form</field> <field name="inherit_id" ref="base.view_users_form" /> <field name="arch" type="xml"> <notebook position="inside"> diff --git a/addons/point_of_sale/static/src/js/pos_widgets.js b/addons/point_of_sale/static/src/js/pos_widgets.js index bebbb3c1591..9a27be29381 100644 --- a/addons/point_of_sale/static/src/js/pos_widgets.js +++ b/addons/point_of_sale/static/src/js/pos_widgets.js @@ -674,7 +674,7 @@ function openerp_pos_widgets(instance, module){ //module is instance.point_of_sa self.$('.loader img').hide(); return new instance.web.Model("ir.model.data").get_func("search_read")([['name', '=', 'action_pos_session_opening']], ['res_id']) .pipe( _.bind(function(res){ - return instance.connection.rpc('/web/action/load', {'action_id': res[0]['res_id']}) + return instance.session.rpc('/web/action/load', {'action_id': res[0]['res_id']}) .pipe(_.bind(function(result){ var action = result.result; this.do_action(action); diff --git a/addons/point_of_sale/wizard/pos_box_entries.xml b/addons/point_of_sale/wizard/pos_box_entries.xml index ae80722474e..913f3b17b20 100644 --- a/addons/point_of_sale/wizard/pos_box_entries.xml +++ b/addons/point_of_sale/wizard/pos_box_entries.xml @@ -6,7 +6,6 @@ <record id="view_box_entries" model="ir.ui.view"> <field name="name">Box Entries</field> <field name="model">pos.box.entries</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Put Money" version="7.0"> <separator string="Fill in this form if you put money in the cash register:"/> diff --git a/addons/point_of_sale/wizard/pos_box_out.xml b/addons/point_of_sale/wizard/pos_box_out.xml index 29c9df57b36..750630ac4db 100644 --- a/addons/point_of_sale/wizard/pos_box_out.xml +++ b/addons/point_of_sale/wizard/pos_box_out.xml @@ -6,7 +6,6 @@ <record id="view_pos_box_out" model="ir.ui.view"> <field name="name">Box Out</field> <field name="model">pos.box.out</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Output Operation" version="7.0"> <separator string="Describe why you take money from the cash register:"/> diff --git a/addons/point_of_sale/wizard/pos_confirm.xml b/addons/point_of_sale/wizard/pos_confirm.xml index f7baa27f439..626c99e1069 100644 --- a/addons/point_of_sale/wizard/pos_confirm.xml +++ b/addons/point_of_sale/wizard/pos_confirm.xml @@ -5,7 +5,6 @@ <record id="view_pos_confirm" model="ir.ui.view"> <field name="name">Post Sale Journal Entries</field> <field name="model">pos.confirm</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Post All Orders" version="7.0"> <separator string="Generate Journal Entries"/> diff --git a/addons/point_of_sale/wizard/pos_details.xml b/addons/point_of_sale/wizard/pos_details.xml index 85f71c63433..15e0449d4d9 100644 --- a/addons/point_of_sale/wizard/pos_details.xml +++ b/addons/point_of_sale/wizard/pos_details.xml @@ -6,7 +6,6 @@ <record id="view_pos_details" model="ir.ui.view"> <field name="name">POS Details</field> <field name="model">pos.details</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="POS Details" version="7.0"> <group col="4" string="Dates"> diff --git a/addons/point_of_sale/wizard/pos_discount.xml b/addons/point_of_sale/wizard/pos_discount.xml index d17bea7f454..05a7949b48f 100644 --- a/addons/point_of_sale/wizard/pos_discount.xml +++ b/addons/point_of_sale/wizard/pos_discount.xml @@ -6,7 +6,6 @@ <record id="view_pos_discount" model="ir.ui.view"> <field name="name">Apply Discount</field> <field name="model">pos.discount</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Apply Discount" version="7.0"> <group> diff --git a/addons/point_of_sale/wizard/pos_open_statement.xml b/addons/point_of_sale/wizard/pos_open_statement.xml index 6c4c96edcc9..0aa28a33b32 100644 --- a/addons/point_of_sale/wizard/pos_open_statement.xml +++ b/addons/point_of_sale/wizard/pos_open_statement.xml @@ -6,7 +6,6 @@ <record id="view_pos_open_statement" model="ir.ui.view"> <field name="name">Open Statements</field> <field name="model">pos.open.statement</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Open Statements" version="7.0"> <separator string="Do you want to open cash registers?"/> diff --git a/addons/point_of_sale/wizard/pos_payment.xml b/addons/point_of_sale/wizard/pos_payment.xml index 4a8b0dfba84..3b1cde3e488 100644 --- a/addons/point_of_sale/wizard/pos_payment.xml +++ b/addons/point_of_sale/wizard/pos_payment.xml @@ -5,7 +5,6 @@ <record id="view_pos_payment" model="ir.ui.view"> <field name="name">Pay Order</field> <field name="model">pos.make.payment</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Pay Order" version="7.0"> <group> diff --git a/addons/point_of_sale/wizard/pos_payment_report.xml b/addons/point_of_sale/wizard/pos_payment_report.xml index df56f76a70b..6ba34ffab8c 100644 --- a/addons/point_of_sale/wizard/pos_payment_report.xml +++ b/addons/point_of_sale/wizard/pos_payment_report.xml @@ -6,7 +6,6 @@ <record id="view_pos_payment_report" model="ir.ui.view"> <field name="name">Payment Report</field> <field name="model">pos.payment.report</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Payment Report" version="7.0"> <header> diff --git a/addons/point_of_sale/wizard/pos_payment_report_user.xml b/addons/point_of_sale/wizard/pos_payment_report_user.xml index cd06b6a6992..3f109616b34 100644 --- a/addons/point_of_sale/wizard/pos_payment_report_user.xml +++ b/addons/point_of_sale/wizard/pos_payment_report_user.xml @@ -6,7 +6,6 @@ <record id="view_pos_payment_report" model="ir.ui.view"> <field name="name">Payment Report</field> <field name="model">pos.payment.report</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Pyament Report " version="7.0"> <header> diff --git a/addons/point_of_sale/wizard/pos_payment_report_user_view.xml b/addons/point_of_sale/wizard/pos_payment_report_user_view.xml index 850ae6729a6..3ec4db98305 100644 --- a/addons/point_of_sale/wizard/pos_payment_report_user_view.xml +++ b/addons/point_of_sale/wizard/pos_payment_report_user_view.xml @@ -4,7 +4,6 @@ <record id="pos_payment_report_user_form" model="ir.ui.view"> <field name="name">pos.payment.report.user.form</field> <field name="model">pos.payment.report.user</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Sale by User" version="7.0"> <group> diff --git a/addons/point_of_sale/wizard/pos_receipt_view.xml b/addons/point_of_sale/wizard/pos_receipt_view.xml index 79031e5012f..ed7c4ac1d93 100644 --- a/addons/point_of_sale/wizard/pos_receipt_view.xml +++ b/addons/point_of_sale/wizard/pos_receipt_view.xml @@ -5,7 +5,6 @@ <record id="view_pos_receipt" model="ir.ui.view"> <field name="name">Receipt</field> <field name="model">pos.receipt</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Receipt :" version="7.0"> <group> diff --git a/addons/point_of_sale/wizard/pos_return_view.xml b/addons/point_of_sale/wizard/pos_return_view.xml index 09005712b78..62e2f3012d9 100644 --- a/addons/point_of_sale/wizard/pos_return_view.xml +++ b/addons/point_of_sale/wizard/pos_return_view.xml @@ -4,7 +4,6 @@ <record id="pos_return_form" model="ir.ui.view"> <field name="name">pos.return</field> <field name="model">pos.return</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Return lines" version="7.0"> <footer> @@ -27,7 +26,6 @@ <record id="pos_return_tree_in" model="ir.ui.view"> <field name="name">pos.return.memory</field> <field name="model">pos.return.memory</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree editable="bottom" string="Return Product"> <field name="product_id" /> @@ -40,7 +38,6 @@ <record id="pos_return_form_in" model="ir.ui.view"> <field name="name">pos.return.memory</field> <field name="model">pos.return.memory</field> - <field name="type">form</field> <field name="arch" type="xml"> <form version="7.0"> <group col="4"> diff --git a/addons/point_of_sale/wizard/pos_sales_user.xml b/addons/point_of_sale/wizard/pos_sales_user.xml index cf39f3bb4ec..2623c426cb8 100644 --- a/addons/point_of_sale/wizard/pos_sales_user.xml +++ b/addons/point_of_sale/wizard/pos_sales_user.xml @@ -6,7 +6,6 @@ <record id="view_pos_sale_user" model="ir.ui.view"> <field name="name">Sale By User</field> <field name="model">pos.sale.user</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Sale By User" version="7.0"> <group col="4"> diff --git a/addons/portal/__init__.py b/addons/portal/__init__.py index 65b924183e1..9c6cc59be7d 100644 --- a/addons/portal/__init__.py +++ b/addons/portal/__init__.py @@ -21,7 +21,6 @@ import portal import wizard -import res_user # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/portal/__openerp__.py b/addons/portal/__openerp__.py index 97183bccd9f..6669efbcf77 100644 --- a/addons/portal/__openerp__.py +++ b/addons/portal/__openerp__.py @@ -43,7 +43,6 @@ very handy when used in combination with the module 'share'. 'security/ir.model.access.csv', 'portal_view.xml', 'portal_data.xml', - 'res_user_view.xml', 'wizard/portal_wizard_view.xml', 'wizard/share_wizard_view.xml', ], diff --git a/addons/portal/portal_view.xml b/addons/portal/portal_view.xml index b56b9a32bd1..831db25e26a 100644 --- a/addons/portal/portal_view.xml +++ b/addons/portal/portal_view.xml @@ -6,7 +6,6 @@ <record id="portal_list_view" model="ir.ui.view"> <field name="name">Portal List</field> <field name="model">res.portal</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Portals"> <field name="name" string="Portal Name"/> @@ -18,7 +17,6 @@ <record id="portal_form_view" model="ir.ui.view"> <field name="name">Portal Form</field> <field name="model">res.portal</field> - <field name="type">form</field> <field name="inherit_id" ref="base.view_groups_form"/> <field name="arch" type="xml"> <page string="Users" position="before"> @@ -32,7 +30,7 @@ <field name="override_menu"/> <field name="parent_menu_id" context="{'ir.ui.menu.full_list': True}"/> - <label colspan="1"/> + <label for="partent_menu_id" colspan="1"/> <button name="do_create_menu" type="object" string="Create Parent Menu"/> </group> diff --git a/addons/portal/res_user_view.xml b/addons/portal/res_user_view.xml deleted file mode 100644 index d481b865b79..00000000000 --- a/addons/portal/res_user_view.xml +++ /dev/null @@ -1,19 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<openerp> - <data> - - <!-- add partner field in user form --> - <record id="view_users_form" model="ir.ui.view"> - <field name="name">res.portal.users.form</field> - <field name="model">res.users</field> - <field name="type">form</field> - <field name="inherit_id" ref="base.view_users_form"/> - <field name="arch" type="xml"> - <field name="active" position="before"> - <field name="partner_id"/> - </field> - </field> - </record> - - </data> -</openerp> diff --git a/addons/portal/security/ir.model.access.csv b/addons/portal/security/ir.model.access.csv index 37302891333..56b3ae5f269 100644 --- a/addons/portal/security/ir.model.access.csv +++ b/addons/portal/security/ir.model.access.csv @@ -6,7 +6,7 @@ access_widget_manager,access.portal.widget.manager,model_res_portal_widget,group access_mail_message,mail.message,mail.model_mail_message,group_portal_member,1,0,1,1 access_mail_message_all,mail.message.all,mail.model_mail_message,group_portal_member,1,0,0,0 access_mail_thread,mail.thread,mail.model_mail_thread,group_portal_member,1,0,0,0 -access_mail_subscription,mail.subscription,mail.model_mail_subscription,group_portal_member,1,0,1,1 +access_mail_followers,mail.followers,mail.model_mail_followers,group_portal_member,1,0,1,1 access_mail_notification,mail.notification,mail.model_mail_notification,group_portal_member,1,0,1,0 access_mail_group,mail.group,mail.model_mail_group,group_portal_member,1,0,0,0 access_mail_alias,mail.alias,mail.model_mail_alias,group_portal_member,1,0,0,0 diff --git a/addons/portal/wizard/portal_wizard.py b/addons/portal/wizard/portal_wizard.py index 64e24e408dd..0260ce338fc 100644 --- a/addons/portal/wizard/portal_wizard.py +++ b/addons/portal/wizard/portal_wizard.py @@ -26,7 +26,7 @@ from osv import osv, fields from tools.misc import email_re from tools.translate import _ -from base.res.res_users import _lang_get +from base.res.res_partner import _lang_get _logger = logging.getLogger(__name__) @@ -62,9 +62,9 @@ def random_password(): random.shuffle(chars) return ''.join(chars) -def extract_email(user_email): +def extract_email(email): """ extract the email address from a user-friendly email address """ - m = email_re.search(user_email or "") + m = email_re.search(email or "") return m and m.group(0) or "" @@ -102,7 +102,7 @@ class wizard(osv.osv_memory): return{ 'name': address.name, - 'user_email': extract_email(address.email), + 'email': extract_email(address.email), 'lang': lang, 'partner_id': partner_id, } @@ -136,7 +136,7 @@ class wizard(osv.osv_memory): user_obj = self.pool.get('res.users') user = user_obj.browse(cr, ROOT_UID, uid, context0) - if not user.user_email: + if not user.email: raise osv.except_osv(_('Email required'), _('You must have an email address in your User Preferences' ' to send emails.')) @@ -144,7 +144,7 @@ class wizard(osv.osv_memory): portal_obj = self.pool.get('res.portal') for wiz in self.browse(cr, uid, ids, context): # determine existing users - login_cond = [('login', 'in', [u.user_email for u in wiz.user_ids])] + login_cond = [('login', 'in', [u.email for u in wiz.user_ids])] existing_uids = user_obj.search(cr, ROOT_UID, login_cond) existing_users = user_obj.browse(cr, ROOT_UID, existing_uids) existing_logins = [u.login for u in existing_users] @@ -152,15 +152,15 @@ class wizard(osv.osv_memory): # create new users in portal (skip existing logins) new_users_data = [ { 'name': u.name, - 'login': u.user_email, + 'login': u.email, 'password': random_password(), - 'user_email': u.user_email, - 'context_lang': u.lang, + 'email': u.email, + 'lang': u.lang, 'share': True, 'action_id': wiz.portal_id.home_action_id and wiz.portal_id.home_action_id.id or False, 'partner_id': u.partner_id and u.partner_id.id, 'groups_id': [(6, 0, [])], - } for u in wiz.user_ids if u.user_email not in existing_logins ] + } for u in wiz.user_ids if u.email not in existing_logins ] portal_obj.write(cr, ROOT_UID, [wiz.portal_id.id], {'users': [(0, 0, data) for data in new_users_data]}, context0) @@ -175,13 +175,13 @@ class wizard(osv.osv_memory): dest_uids = user_obj.search(cr, ROOT_UID, login_cond) dest_users = user_obj.browse(cr, ROOT_UID, dest_uids) for dest_user in dest_users: - context['lang'] = dest_user.context_lang + context['lang'] = dest_user.lang data['login'] = dest_user.login data['password'] = dest_user.password data['name'] = dest_user.name - email_from = user.user_email - email_to = dest_user.user_email + email_from = user.email + email_to = dest_user.email subject = _(WELCOME_EMAIL_SUBJECT) % data body = _(WELCOME_EMAIL_BODY) % data res = mail_message_obj.schedule_with_attach(cr, uid, email_from , [email_to], subject, body, context=context) @@ -208,7 +208,7 @@ class wizard_user(osv.osv_memory): 'name': fields.char(size=64, required=True, string='User Name', help="The user's real name"), - 'user_email': fields.char(size=64, required=True, + 'email': fields.char(size=64, required=True, string='Email', help="Will be used as user login. " "Also necessary to send the account information to new users"), @@ -222,7 +222,7 @@ class wizard_user(osv.osv_memory): def _check_email(self, cr, uid, ids): """ check syntax of email address """ for wuser in self.browse(cr, uid, ids): - if not email_re.match(wuser.user_email): return False + if not email_re.match(wuser.email): return False return True _constraints = [ diff --git a/addons/portal/wizard/portal_wizard_view.xml b/addons/portal/wizard/portal_wizard_view.xml index 55a8404f54b..f3cd5c98bb4 100644 --- a/addons/portal/wizard/portal_wizard_view.xml +++ b/addons/portal/wizard/portal_wizard_view.xml @@ -14,7 +14,6 @@ <record id="wizard_view" model="ir.ui.view"> <field name="name">Add Portal Access</field> <field name="model">res.portal.wizard</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Add Portal Access" version="7.0"> <group col="4"> @@ -37,13 +36,12 @@ <record id="wizard_user_tree_view" model="ir.ui.view"> <field name="name">Portal Users</field> <field name="model">res.portal.wizard.user</field> - <field name="type">tree</field> <field name="arch" type="xml"> <!-- the attribute 'editable' is set below to make the elements editable in the web client 6.0 --> <tree string="Portal Users" editable="bottom"> <field name="name"/> - <field name="user_email"/> + <field name="email"/> <field name="partner_id"/> </tree> </field> @@ -53,12 +51,11 @@ <record id="wizard_user_form_view" model="ir.ui.view"> <field name="name">Portal User</field> <field name="model">res.portal.wizard.user</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Portal User" version="7.0"> <group colspan="2" col="2"> <field name="name"/> - <field name="user_email"/> + <field name="email"/> <field name="lang"/> <field name="partner_id"/> </group> diff --git a/addons/portal/wizard/share_wizard_view.xml b/addons/portal/wizard/share_wizard_view.xml index cf294285f4f..72ae857eaaf 100644 --- a/addons/portal/wizard/share_wizard_view.xml +++ b/addons/portal/wizard/share_wizard_view.xml @@ -5,7 +5,6 @@ <record id="share_step1_form_portal" model="ir.ui.view"> <field name="name">share.step1.form.portal</field> <field name="model">share.wizard</field> - <field name="type">form</field> <field name="inherit_id" ref="share.share_step1_form"/> <field name="arch" type="xml"> <xpath expr="//field[@name='user_type']" position="attributes"> @@ -34,7 +33,6 @@ <record id="share_step2_form_portal" model="ir.ui.view"> <field name="name">share.step2.form.portal</field> <field name="model">share.wizard</field> - <field name="type">form</field> <field name="inherit_id" ref="share.share_step2_form"/> <field name="arch" type="xml"> <xpath expr="//field[@name='result_line_ids']//field[@name='login']" position="after"> diff --git a/addons/portal_crm/wizard/contact.py b/addons/portal_crm/wizard/contact.py index 505bb62bb16..036993e1720 100644 --- a/addons/portal_crm/wizard/contact.py +++ b/addons/portal_crm/wizard/contact.py @@ -50,7 +50,7 @@ class crm_contact_us(osv.TransientModel): user = self.pool.get('res.users').browse(cr, uid, uid, context=context) if (user.login != 'anonymous'): - return user.user_email + return user.email else: return None diff --git a/addons/portal_crm/wizard/contact_view.xml b/addons/portal_crm/wizard/contact_view.xml index 918d29fcd02..1776632d7ab 100644 --- a/addons/portal_crm/wizard/contact_view.xml +++ b/addons/portal_crm/wizard/contact_view.xml @@ -6,7 +6,6 @@ <record id="wizard_contact_form_view" model="ir.ui.view"> <field name="name">Wizard form view</field> <field name="model">portal_crm.crm_contact_us</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Contact wizard view" version="7.0"> <div class="oe_portal_crm_contact"> @@ -80,7 +79,6 @@ <record id="wizard_contact_form_view_thanks" model="ir.ui.view"> <field name="name">Wizard thanks message</field> <field name="model">portal_crm.crm_contact_us</field> - <field name="type">form</field> <!-- give it a low priority to ensure this won't be the default view --> <field name="priority">99</field> <field name="arch" type="xml"> diff --git a/addons/portal_event/event_view.xml b/addons/portal_event/event_view.xml index 6966add58e8..1dd9fee7181 100644 --- a/addons/portal_event/event_view.xml +++ b/addons/portal_event/event_view.xml @@ -6,7 +6,6 @@ <record id="view_employee_form" model="ir.ui.view"> <field name="name">portal.event.form</field> <field name="model">event.event</field> - <field name="type">form</field> <field name="inherit_id" ref="event.view_event_form"/> <field name="arch" type="xml"> <xpath expr="//page[last()]" position="after"> diff --git a/addons/portal_hr_employees/hr_employee_view.xml b/addons/portal_hr_employees/hr_employee_view.xml index 849157ad44a..f36e2a4d2d8 100644 --- a/addons/portal_hr_employees/hr_employee_view.xml +++ b/addons/portal_hr_employees/hr_employee_view.xml @@ -6,7 +6,6 @@ <record id="view_employee_form" model="ir.ui.view"> <field name="name">portal_hr_employees.employee.form</field> <field name="model">hr.employee</field> - <field name="type">form</field> <field name="inherit_id" ref="hr.view_employee_form"/> <field name="arch" type="xml"> <xpath expr="//page[last()]" position="after"> @@ -23,7 +22,6 @@ <record id="wizard_contact_form_view_employees_list" model="ir.ui.view"> <field name="name">portal_hr_employees.employees_list</field> <field name="model">portal_crm.crm_contact_us</field> - <field name="type">form</field> <field name="inherit_id" ref="portal_crm.wizard_contact_form_view"/> <field name="arch" type="xml"> <xpath expr="//div[@class='oe_portal_crm_team']" position="inside"> diff --git a/addons/portal_project_issue/portal_project_issue_view.xml b/addons/portal_project_issue/portal_project_issue_view.xml index 268de4f0792..14e944ab32e 100644 --- a/addons/portal_project_issue/portal_project_issue_view.xml +++ b/addons/portal_project_issue/portal_project_issue_view.xml @@ -5,7 +5,6 @@ <record id="portal_project_issue_kanban_view" model="ir.ui.view"> <field name="name">Project Issue Kanban</field> <field name="model">project.issue</field> - <field name="type">kanban</field> <field name="arch" type="xml"> <kanban version="7.0" class="oe_portal_project_issue"> <field name="priority"/> diff --git a/addons/process/process_view.xml b/addons/process/process_view.xml index 66dcb87289a..7e0f9c25f47 100644 --- a/addons/process/process_view.xml +++ b/addons/process/process_view.xml @@ -11,7 +11,6 @@ <record model="ir.ui.view" id="view_process_form"> <field name="name">process.process.form</field> <field name="model">process.process</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Process" version="7.0"> <sheet> @@ -97,7 +96,6 @@ <record model="ir.ui.view" id="view_process_tree"> <field name="name">process.process.tree</field> <field name="model">process.process</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Process"> <field name="name"/> @@ -110,7 +108,6 @@ <record id="view_process_filter" model="ir.ui.view"> <field name="name">process.process.filter</field> <field name="model">process.process</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Search Process"> <field name="name" string="Process"/> @@ -138,7 +135,6 @@ <record model="ir.ui.view" id="view_process_node_tree"> <field name="name">process.node.tree</field> <field name="model">process.node</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Process Nodes"> <field name="name"/> @@ -153,7 +149,6 @@ <record model="ir.ui.view" id="view_process_node_form"> <field name="name">process.node.form</field> <field name="model">process.node</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Process Node" version="7.0"> <sheet layout="auto"> @@ -210,7 +205,6 @@ <record id="view_process_node_filter" model="ir.ui.view"> <field name="name">process.node.filter</field> <field name="model">process.node</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Search ProcessNode"> <field name="name" string="Process Node"/> @@ -242,7 +236,6 @@ <record model="ir.ui.view" id="view_process_transition_tree"> <field name="name">process.transition.tree</field> <field name="model">process.transition</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Process Transition"> <field name="name"/> @@ -255,7 +248,6 @@ <record model="ir.ui.view" id="view_process_transition_form"> <field name="name">process.transition.form</field> <field name="model">process.transition</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Process Transition" version="7.0"> <sheet > @@ -299,7 +291,6 @@ <record id="view_process_transition_filter" model="ir.ui.view"> <field name="name">process.transition.filter</field> <field name="model">process.transition</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Search Process Transition"> <field name="name" string="Process Transition"/> diff --git a/addons/procurement/board_mrp_procurement_view.xml b/addons/procurement/board_mrp_procurement_view.xml index 7381bdffd99..a01ec168efa 100644 --- a/addons/procurement/board_mrp_procurement_view.xml +++ b/addons/procurement/board_mrp_procurement_view.xml @@ -14,7 +14,6 @@ <field name="name">board.mrp.procurement.form</field> <field name="model">board.board</field> <field name="inherit_id" ref="stock.board_warehouse_form"/> - <field name="type">form</field> <field name="arch" type="xml"> <xpath expr="/form/board/column/action[@string='Incoming Shipments']" position="before"> <action name="%(procurement_action_board)d" string="Procurements in Exception"/> diff --git a/addons/procurement/company_view.xml b/addons/procurement/company_view.xml index c2c99fa5d52..dadd24a0860 100644 --- a/addons/procurement/company_view.xml +++ b/addons/procurement/company_view.xml @@ -5,7 +5,6 @@ <record id="mrp_company" model="ir.ui.view"> <field name="name">res.company.mrp.config</field> <field name="model">res.company</field> - <field name="type">form</field> <field name="priority">17</field> <field name="inherit_id" ref="base.view_company_form"/> <field name="arch" type="xml"> diff --git a/addons/procurement/procurement_view.xml b/addons/procurement/procurement_view.xml index 485792fdd8f..dbdc65c6763 100644 --- a/addons/procurement/procurement_view.xml +++ b/addons/procurement/procurement_view.xml @@ -9,7 +9,6 @@ <record id="procurement_tree_view" model="ir.ui.view"> <field name="name">procurement.order.tree</field> <field name="model">procurement.order</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Procurement Lines" colors="red:date_planned<current_date and state == 'exception';black:state=='running';darkgreen:state=='confirmed';gray:state in ['done','cancel'];blue:state == 'ready'"> <field name="date_planned" widget="date"/> @@ -27,7 +26,6 @@ <record id="procurement_tree_view_board" model="ir.ui.view"> <field name="name">procurement.order.tree.board</field> <field name="model">procurement.order</field> - <field name="type">tree</field> <field eval="20" name="priority"/> <field name="arch" type="xml"> <tree string="Procurement Lines" colors="red:date_planned<current_date and state == 'exception';black:state=='running';darkgreen:state=='confirmed';gray:state in ['done','cancel'];blue:state == 'ready'"> @@ -44,7 +42,6 @@ <record id="procurement_form_view" model="ir.ui.view"> <field name="name">procurement.order.form</field> <field name="model">procurement.order</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Procurement" version="7.0"> <header> @@ -107,6 +104,7 @@ </sheet> <div class="oe_chatter"> <field name="message_ids" widget="mail_thread"/> + <field name="message_follower_ids" widget="mail_followers"/> </div> </form> </field> @@ -114,7 +112,6 @@ <record id="view_procurement_filter" model="ir.ui.view"> <field name="name">procurement.order.select</field> <field name="model">procurement.order</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Search Procurement"> <field name="origin" string="Procurement"/> @@ -185,7 +182,6 @@ <record id="view_warehouse_orderpoint_tree" model="ir.ui.view"> <field name="name">stock.warehouse.orderpoint.tree</field> <field name="model">stock.warehouse.orderpoint</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Reordering Rules"> <field name="name"/> @@ -202,7 +198,6 @@ <record model="ir.ui.view" id="warehouse_orderpoint_search"> <field name="name">stock.warehouse.orderpoint.search</field> <field name="model">stock.warehouse.orderpoint</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Reordering Rules Search"> <field name="name" string="Reordering Rules"/> @@ -221,7 +216,6 @@ <record id="view_warehouse_orderpoint_form" model="ir.ui.view"> <field name="name">stock.warehouse.orderpoint.form</field> <field name="model">stock.warehouse.orderpoint</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Reordering Rules" version="7.0"> <sheet> @@ -292,7 +286,6 @@ <record id="product_normal_form_view" model="ir.ui.view"> <field name="name">product.normal.form.orderpoint.inherit</field> <field name="model">product.product</field> - <field name="type">form</field> <field name="inherit_id" ref="product.product_normal_form_view"/> <field name="arch" type="xml"> <page string="Procurement & Locations" position="inside"> diff --git a/addons/procurement/schedulers.py b/addons/procurement/schedulers.py index 1ad1046efce..7a87697f5c8 100644 --- a/addons/procurement/schedulers.py +++ b/addons/procurement/schedulers.py @@ -131,7 +131,7 @@ class procurement_order(osv.osv): Exceptions:\n""") % (start_date, end_date, report_total, report_except, report_later) summary += '\n'.join(report) - self.pool.get('res.users').message_append_note(cr, uid, [uid], body=summary, context=context) + procurement_obj.message_append_note(cr, uid, ids, body=summary, context=context) if use_new_cursor: cr.commit() @@ -234,7 +234,6 @@ class procurement_order(osv.osv): location_obj = self.pool.get('stock.location') procurement_obj = self.pool.get('procurement.order') wf_service = netsvc.LocalService("workflow") - report = [] offset = 0 ids = [1] if automatic: @@ -288,9 +287,6 @@ class procurement_order(osv.osv): offset += len(ids) if use_new_cursor: cr.commit() - if user_id and report: - # Chatter: old res.request is now a chatter on res.users, id=uid - self.pool.get('res.users').message_append_note(cr, uid, [user_id], body='\n'.join(report), subject=_('Orderpoint report'), context=context) if use_new_cursor: cr.commit() cr.close() diff --git a/addons/procurement/wizard/make_procurement_view.xml b/addons/procurement/wizard/make_procurement_view.xml index 5f2fc6ab40c..4d2e7553371 100644 --- a/addons/procurement/wizard/make_procurement_view.xml +++ b/addons/procurement/wizard/make_procurement_view.xml @@ -7,7 +7,6 @@ <record id="view_make_procurment_wizard" model="ir.ui.view"> <field name="name">Procurement Request</field> <field name="model">make.procurement</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Procurement Request" version="7.0"> <group col="4" string="This wizard will plan the procurement for this product. This procurement may generate task, production orders or purchase orders."/> diff --git a/addons/procurement/wizard/mrp_procurement_view.xml b/addons/procurement/wizard/mrp_procurement_view.xml index ab98e598a3d..89ba76d291b 100644 --- a/addons/procurement/wizard/mrp_procurement_view.xml +++ b/addons/procurement/wizard/mrp_procurement_view.xml @@ -7,7 +7,6 @@ <record id="view_compute_procurment_wizard" model="ir.ui.view"> <field name="name">Compute Procurements</field> <field name="model">procurement.order.compute</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Parameters" version="7.0"> <group> diff --git a/addons/procurement/wizard/orderpoint_procurement_view.xml b/addons/procurement/wizard/orderpoint_procurement_view.xml index 5a29959949e..227b79b3234 100644 --- a/addons/procurement/wizard/orderpoint_procurement_view.xml +++ b/addons/procurement/wizard/orderpoint_procurement_view.xml @@ -7,7 +7,6 @@ <record id="view_procurement_compute_wizard" model="ir.ui.view"> <field name="name">Compute Stock Minimum Rules Only</field> <field name="model">procurement.orderpoint.compute</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Parameters" version="7.0"> <group> diff --git a/addons/procurement/wizard/schedulers_all_view.xml b/addons/procurement/wizard/schedulers_all_view.xml index ee2a5d33e25..2e72dfdbadc 100644 --- a/addons/procurement/wizard/schedulers_all_view.xml +++ b/addons/procurement/wizard/schedulers_all_view.xml @@ -7,7 +7,6 @@ <record id="view_compute_schedulers_wizard" model="ir.ui.view"> <field name="name">Compute Schedulers</field> <field name="model">procurement.order.compute.all</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Scheduler Parameters" version="7.0"> <group> diff --git a/addons/product/partner_view.xml b/addons/product/partner_view.xml index 4aa53511460..acb087533ac 100644 --- a/addons/product/partner_view.xml +++ b/addons/product/partner_view.xml @@ -4,7 +4,6 @@ <record id="view_partner_property_form" model="ir.ui.view"> <field name="name">res.partner.product.property.form.inherit</field> <field name="model">res.partner</field> - <field name="type">form</field> <field name="inherit_id" ref="base.view_partner_form"/> <field name="arch" type="xml"> <page string="Sales & Purchases" position="inside"> diff --git a/addons/product/pricelist.py b/addons/product/pricelist.py index 806d9683e68..c333000621a 100644 --- a/addons/product/pricelist.py +++ b/addons/product/pricelist.py @@ -407,18 +407,18 @@ class product_pricelist_item(osv.osv): 'base_pricelist_id': fields.many2one('product.pricelist', 'If Other Pricelist'), 'price_surcharge': fields.float('Price Surcharge', - digits_compute= dp.get_precision('Sale Price')), + digits_compute= dp.get_precision('Product Price')), 'price_discount': fields.float('Price Discount', digits=(16,4)), 'price_round': fields.float('Price Rounding', - digits_compute= dp.get_precision('Sale Price'), + digits_compute= dp.get_precision('Product Price'), help="Sets the price so that it is a multiple of this value.\n" \ "Rounding is applied after the discount and before the surcharge.\n" \ "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('Sale Price')), + digits_compute= dp.get_precision('Product Price')), 'price_max_margin': fields.float('Max. Price Margin', - digits_compute= dp.get_precision('Sale Price')), + digits_compute= dp.get_precision('Product Price')), 'company_id': fields.related('price_version_id','company_id',type='many2one', readonly=True, relation='res.company', string='Company', store=True) } diff --git a/addons/product/pricelist_view.xml b/addons/product/pricelist_view.xml index 57e200fb878..adefd9e5d3c 100644 --- a/addons/product/pricelist_view.xml +++ b/addons/product/pricelist_view.xml @@ -10,7 +10,6 @@ <record id="product_pricelist_version_form_view" model="ir.ui.view"> <field name="name">product.pricelist.version.form</field> <field name="model">product.pricelist.version</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Pricelist Version" version="7.0"> <group col="4"> @@ -28,7 +27,6 @@ <record id="product_pricelist_version_tree_view" model="ir.ui.view"> <field name="name">product.pricelist.version.tree</field> <field name="model">product.pricelist.version</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Pricelist Version"> <field name="name"/> @@ -63,7 +61,6 @@ <record id="product_pricelist_item_tree_view" model="ir.ui.view"> <field name="name">product.pricelist.item.tree</field> <field name="model">product.pricelist.item</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Products Listprices Items"> <field name="sequence"/> @@ -80,7 +77,6 @@ <record id="product_pricelist_item_form_view" model="ir.ui.view"> <field name="name">product.pricelist.item.form</field> <field name="model">product.pricelist.item</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Products Listprices Items" version="7.0"> <label for="name" class="oe_edit_only"/> @@ -118,7 +114,6 @@ <record model="ir.ui.view" id="product_pricelist_view_search"> <field name="name">product.pricelist.search</field> <field name="model">product.pricelist</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Products Price Search"> <field name="name" string="Products Price"/> @@ -133,7 +128,6 @@ <record id="product_pricelist_view_tree" model="ir.ui.view"> <field name="name">product.pricelist.tree</field> <field name="model">product.pricelist</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Products Price List"> <field name="name"/> @@ -146,7 +140,6 @@ <record id="product_pricelist_view" model="ir.ui.view"> <field name="name">product.pricelist.form</field> <field name="model">product.pricelist</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Products Price List" version="7.0"> <label for="name" class="oe_edit_only"/> @@ -231,7 +224,6 @@ <record id="product_price_type_view" model="ir.ui.view"> <field name="name">product.price.type.form</field> <field name="model">product.price.type</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Products Price Type" version="7.0"> <group col="4"> diff --git a/addons/product/product.py b/addons/product/product.py index 2a62d9c2531..ae99711a5ec 100644 --- a/addons/product/product.py +++ b/addons/product/product.py @@ -272,8 +272,8 @@ class product_template(osv.osv): 'procure_method': fields.selection([('make_to_stock','Make to Stock'),('make_to_order','Make to Order')], 'Procurement Method', required=True, help="'Make to Stock': When needed, take from the stock or wait until re-supplying. 'Make to Order': When needed, purchase or produce for the procurement request."), 'rental': fields.boolean('Can be Rent'), 'categ_id': fields.many2one('product.category','Category', required=True, change_default=True, domain="[('type','=','normal')]" ,help="Select category for the current product"), - 'list_price': fields.float('Sale Price', digits_compute=dp.get_precision('Sale Price'), help="Base price for computing the customer price. Sometimes called the catalog price."), - 'standard_price': fields.float('Cost Price', required=True, digits_compute=dp.get_precision('Purchase Price'), help="Product's cost for accounting stock valuation. It is the base price for the supplier price.", groups="base.group_user"), + 'list_price': fields.float('Sale Price', digits_compute=dp.get_precision('Product Price'), help="Base price for computing the customer price. Sometimes called the catalog price."), + 'standard_price': fields.float('Cost Price', required=True, digits_compute=dp.get_precision('Product Price'), help="Product's cost for accounting stock valuation. It is the base price for the supplier price.", groups="base.group_user"), 'volume': fields.float('Volume', help="The volume in m3."), 'weight': fields.float('Gross Weight', digits_compute=dp.get_precision('Stock Weight'), help="The gross weight in Kg."), 'weight_net': fields.float('Net Weight', digits_compute=dp.get_precision('Stock Weight'), help="The net weight in Kg."), @@ -518,8 +518,8 @@ class product_product(osv.osv): 'virtual_available': fields.function(_product_virtual_available, type='float', string='Quantity Available'), 'incoming_qty': fields.function(_product_incoming_qty, type='float', string='Incoming'), 'outgoing_qty': fields.function(_product_outgoing_qty, type='float', string='Outgoing'), - 'price': fields.function(_product_price, type='float', string='Pricelist', digits_compute=dp.get_precision('Sale Price')), - 'lst_price' : fields.function(_product_lst_price, type='float', string='Public Price', digits_compute=dp.get_precision('Sale Price')), + 'price': fields.function(_product_price, type='float', string='Pricelist', digits_compute=dp.get_precision('Product Price')), + 'lst_price' : fields.function(_product_lst_price, type='float', string='Public Price', digits_compute=dp.get_precision('Product Price')), 'code': fields.function(_product_code, type='char', string='Reference'), 'partner_ref' : fields.function(_product_partner_ref, type='char', string='Customer ref'), 'default_code' : fields.char('Reference', size=64, select=True), @@ -528,8 +528,8 @@ class product_product(osv.osv): 'product_tmpl_id': fields.many2one('product.template', 'Product Template', required=True, ondelete="cascade"), 'ean13': fields.char('EAN13', size=13, help="The numbers encoded in EAN-13 bar codes are product identification numbers."), 'packaging' : fields.one2many('product.packaging', 'product_id', 'Logistical Units', help="Gives the different ways to package the same product. This has no impact on the picking order and is mainly used if you use the EDI module."), - 'price_extra': fields.float('Variant Price Extra', digits_compute=dp.get_precision('Sale Price')), - 'price_margin': fields.float('Variant Price Margin', digits_compute=dp.get_precision('Sale Price')), + 'price_extra': fields.float('Variant Price Extra', digits_compute=dp.get_precision('Product Price')), + 'price_margin': fields.float('Variant Price Margin', digits_compute=dp.get_precision('Product Price')), 'pricelist_id': fields.dummy(string='Pricelist', relation='product.pricelist', type='many2one'), 'name_template': fields.related('product_tmpl_id', 'name', string="Name", type='char', size=128, store=True, select=True), 'color': fields.integer('Color Index'), @@ -878,7 +878,7 @@ class pricelist_partnerinfo(osv.osv): 'name': fields.char('Description', size=64), 'suppinfo_id': fields.many2one('product.supplierinfo', 'Partner Information', required=True, ondelete='cascade'), 'min_quantity': fields.float('Quantity', required=True, help="The minimal quantity to trigger this rule, expressed in the supplier Unit of Measure if any or in the default Unit of Measure of the product otherrwise."), - 'price': fields.float('Unit Price', required=True, digits_compute=dp.get_precision('Purchase Price'), help="This price will be considered as a price for the supplier Unit of Measure if any or the default Unit of Measure of the product otherwise"), + 'price': fields.float('Unit Price', required=True, digits_compute=dp.get_precision('Product Price'), help="This price will be considered as a price for the supplier Unit of Measure if any or the default Unit of Measure of the product otherwise"), } _order = 'min_quantity asc' pricelist_partnerinfo() diff --git a/addons/product/product_data.xml b/addons/product/product_data.xml index 94a262f4dc6..80dbfac564d 100644 --- a/addons/product/product_data.xml +++ b/addons/product/product_data.xml @@ -157,12 +157,12 @@ parameter) will see those record just disappear. <field eval="'product.pricelist,'+str(ref('list0'))" name="value"/> </record> - <record forcecreate="True" id="decimal_sale" model="decimal.precision"> - <field name="name">Sale Price</field> + <record forcecreate="True" id="decimal_price" model="decimal.precision"> + <field name="name">Product Price</field> <field name="digits">2</field> </record> - <record forcecreate="True" id="decimal_purchase" model="decimal.precision"> - <field name="name">Purchase Price</field> + <record forcecreate="True" id="decimal_discount" model="decimal.precision"> + <field name="name">Discount</field> <field name="digits">2</field> </record> <record forcecreate="True" id="decimal_account" model="decimal.precision"> diff --git a/addons/product/product_view.xml b/addons/product/product_view.xml index 5fdb968c239..70651a0a795 100644 --- a/addons/product/product_view.xml +++ b/addons/product/product_view.xml @@ -6,7 +6,6 @@ <record id="product_search_form_view" model="ir.ui.view"> <field name="name">product.search.form</field> <field name="model">product.product</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Product"> <field name="name" string="Product" filter_domain="['|',('name','ilike',self),('default_code','ilike',self)]"/> @@ -36,7 +35,6 @@ <record id="product_product_tree_view" model="ir.ui.view"> <field name="name">product.product.tree</field> <field name="model">product.product</field> - <field name="type">tree</field> <field eval="7" name="priority"/> <field name="arch" type="xml"> <tree colors="red:virtual_available<0;blue:virtual_available>=0 and state in ('draft', 'end', 'obsolete');black:virtual_available>=0 and state not in ('draft', 'end', 'obsolete')" string="Products"> @@ -59,7 +57,6 @@ <record id="product_normal_form_view" model="ir.ui.view"> <field name="name">product.normal.form</field> <field name="model">product.product</field> - <field name="type">form</field> <field eval="7" name="priority"/> <field name="arch" type="xml"> <form string="Product" version="7.0"> @@ -179,6 +176,7 @@ </sheet> <div class="oe_chatter"> <field name="message_ids" widget="mail_thread"/> + <field name="message_follower_ids" widget="mail_followers"/> </div> </form> </field> @@ -188,7 +186,6 @@ <record model="ir.ui.view" id="product_kanban_view"> <field name="name">Product Kanban</field> <field name="model">product.product</field> - <field name="type">kanban</field> <field name="arch" type="xml"> <kanban> <field name="color"/> @@ -322,7 +319,6 @@ <record id="product_category_search_view" model="ir.ui.view"> <field name="name">product.category.search</field> <field name="model">product.category</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Product Categories"> <field name="name" string="Product Categories"/> @@ -333,7 +329,6 @@ <record id="product_category_form_view" model="ir.ui.view"> <field name="name">product.category.form</field> <field name="model">product.category</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Product Categories" version="7.0"> <sheet> @@ -362,7 +357,6 @@ <record id="product_category_list_view" model="ir.ui.view"> <field name="name">product.category.list</field> <field name="model">product.category</field> - <field name="type">tree</field> <field name="priority">1</field> <field name="arch" type="xml"> <tree string="Product Categories"> @@ -373,7 +367,6 @@ <record id="product_category_tree_view" model="ir.ui.view"> <field name="name">product.category.tree</field> <field name="model">product.category</field> - <field name="type">tree</field> <field name="field_parent">child_id</field> <field name="arch" type="xml"> <tree toolbar="True" string="Product Categories"> @@ -436,7 +429,6 @@ <record id="product_uom_tree_view" model="ir.ui.view"> <field name="name">product.uom.tree</field> <field name="model">product.uom</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Units of Measure"> <field name="name"/> @@ -449,7 +441,6 @@ <record id="product_uom_form_view" model="ir.ui.view"> <field name="name">product.uom.form</field> <field name="model">product.uom</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Units of Measure" version="7.0"> <group> @@ -491,7 +482,6 @@ <record id="product_uom_categ_form_view" model="ir.ui.view"> <field name="name">product.uom.categ.form</field> <field name="model">product.uom.categ</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Units of Measure categories" version="7.0"> <group> @@ -522,7 +512,6 @@ <record id="product_ul_form_view" model="ir.ui.view"> <field name="name">product.ul.form.view</field> <field name="model">product.ul</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Packaging" version="7.0"> <group> @@ -535,7 +524,6 @@ <record id="product_ul_tree" model="ir.ui.view"> <field name="name">product.ul.tree</field> <field name="model">product.ul</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Packaging"> <field name="name"/> @@ -565,7 +553,6 @@ <record id="product_packaging_tree_view" model="ir.ui.view"> <field name="name">product.packaging.tree.view</field> <field name="model">product.packaging</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Packaging"> <field name="sequence" invisible="1"/> @@ -579,7 +566,6 @@ <record id="product_packaging_form_view" model="ir.ui.view"> <field name="name">product.packaging.form.view</field> <field name="model">product.packaging</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Packaging" version="7.0"> <group col="4"> @@ -609,7 +595,6 @@ <record id="product_supplierinfo_form_view" model="ir.ui.view"> <field name="name">product.supplierinfo.form.view</field> <field name="model">product.supplierinfo</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Supplier Information" version="7.0"> <group col="4"> @@ -640,7 +625,6 @@ <record id="product_supplierinfo_tree_view" model="ir.ui.view"> <field name="name">product.supplierinfo.tree.view</field> <field name="model">product.supplierinfo</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Supplier Information"> <field name="sequence" string="Seq"/> @@ -655,7 +639,6 @@ <record id="product_variant_form_view" model="ir.ui.view"> <field name="name">product.variant.form</field> <field name="model">product.product</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Product Variant" version="7.0"> <group col="4"> @@ -673,7 +656,6 @@ <record id="product_variant_tree_view" model="ir.ui.view"> <field name="name">product.variant.tree</field> <field name="model">product.product</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Product Variant"> <field name="product_tmpl_id"/> @@ -689,7 +671,6 @@ <record id="product_template_tree_view" model="ir.ui.view"> <field name="name">product.template.product.tree</field> <field name="model">product.template</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Product Template"> <field name="name"/> @@ -703,7 +684,6 @@ <record id="product_template_form_view" model="ir.ui.view"> <field name="name">product.template.product.form</field> <field name="model">product.template</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Product Template" version="7.0"> <label for="name" class="oe_edit_only"/> diff --git a/addons/product/report/product_pricelist.py b/addons/product/report/product_pricelist.py index 7e9748c2523..c19c12c06d7 100644 --- a/addons/product/report/product_pricelist.py +++ b/addons/product/report/product_pricelist.py @@ -112,7 +112,7 @@ class product_pricelist(report_sxw.rml_parse): return res def _get_price(self,pricelist_id, product_id,qty): - sale_price_digits = self.get_digits(dp='Sale Price') + sale_price_digits = self.get_digits(dp='Product Price') pool = pooler.get_pool(self.cr.dbname) price_dict = pool.get('product.pricelist').price_get(self.cr, self.uid, [pricelist_id], product_id, qty, context=self.localcontext) if price_dict[pricelist_id]: diff --git a/addons/product/wizard/product_price_view.xml b/addons/product/wizard/product_price_view.xml index dbc57c4f6e7..2de5859bd78 100644 --- a/addons/product/wizard/product_price_view.xml +++ b/addons/product/wizard/product_price_view.xml @@ -7,7 +7,6 @@ <record id="view_product_price_list" model="ir.ui.view"> <field name="name">Price per unit</field> <field name="model">product.price_list</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Price List" version="7.0"> <group string="Calculate Product Price per Unit Based on Pricelist Version."> diff --git a/addons/product_expiry/product_expiry_demo.xml b/addons/product_expiry/product_expiry_demo.xml index 12d88ef6862..1d52e5b5272 100644 --- a/addons/product_expiry/product_expiry_demo.xml +++ b/addons/product_expiry/product_expiry_demo.xml @@ -17,7 +17,7 @@ <field name="default_code">JKB</field> <field name="ean13">3307630302014</field> <field name="categ_id" search="[]" model="product.category"/> - <field name="product_image">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</field> + <field name="image">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</field> </record> <record id="product_package_jambon" model="product.packaging"> <field name="name">box of 10</field> @@ -47,7 +47,7 @@ <field name="default_code">FKS</field> <field name="ean13">3307631101876</field> <field name="categ_id" search="[]" model="product.category"/> - <field name="product_image">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</field> + <field name="image">/9j/4AAQSkZJRgABAQEASABIAAD/2wBDAA0JCgsKCA0LCgsODg0PEyAVExISEyccHhcgLikxMC4pLSwzOko+MzZGNywtQFdBRkxOUlNSMj5aYVpQYEpRUk//2wBDAQ4ODhMREyYVFSZPNS01T09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0//wAARCAB9AH0DASIAAhEBAxEB/8QAHAABAAMBAQEBAQAAAAAAAAAAAAQFBgMHAQII/8QANxAAAgEDAwEFBgQGAgMAAAAAAQIDAAQRBRIhMQZBUWFxEyIygZGhFCNC0RVSscHw8WLhBzNy/8QAGQEBAAMBAQAAAAAAAAAAAAAAAAECAwQF/8QAJhEAAwABAwQCAQUAAAAAAAAAAAECEQMhMQQSE0EiURRSYXGh8P/aAAwDAQACEQMRAD8A9OpSlAKUpQClKUApSlAKUpQClKUApSlAKUpQClKUApSlAKUpQClCcCoc+pWsDFWk3uOqoNxHrjp86htLklJvZEylVf8AFJJOYYVAzwXbn6D96LfXiud8McinpsbBX69ar3ov4b+i0pVYmtW+5luUltSvfMuFPnuGR9cVPhninjEkMqSIejIcg/SrKk+CjlzydKUpUkClKUApSlAKUr8sQOTQFdrOrxaVAGZfaSsfciBwTjqfT9xVRa9qbmSQvNaBYUYq6qcsO8Hw4HUd5qC0b6jdyXdwQxeYKngEUEgDyrtZW5K3cTYDiTcB/wASOv1Brmes29uDvnppU/Lkk6t2jt3Igt5W2/qPw5/6rnbN+JTIICnuFQ5tPimBWdQWHQjqKi7ptMIwS8fn1Fa7Pc105ULCNEIse7kiu6nYCFPrVHb65BM2FPNSxdFjtXrQlw2T53iMJWcAqeGBGeKx2owXWlXLXOhm4jjI3fkgHB64K94q8lmLuN5yAe7pXwyMXwBgn7VncZeUXiElh+yBon/kHcwg1RBIQeZYhggeJX9vpW4sr62v4RNZzpNGe9TnHkfA+tebdpezLTRyX9moRgC0sf8AP/yA8ay1jq17pGorLBNsbAXcrHDDu9RV5v0cWroJPY97pWI7M9u4NQnWy1RRBcMdqSD4XPgfA/Y+Xft8itE8nK5a5FKUqSBVXqt8ULWsQYO6cv8Ayg/3qzYhQSTgDkmsjPdBva3UnJkYtgHoOgFZ6lYWDp6bR8lb+jvp0S/w20dApAkYN5dRX1U/D6grcbJhsb1/Sf6j5ivmgym6024hUqJM7l8ARwPuprpPA9xbo4yNwDA9dpHP1B/pXOllf70dSeKqaPzcRezkLkZHhVTeybwRj3e/irSS+FwohlTbMoySo4YeI8qr5I3mlCqo/atZpM1hPHyKFbKQT/iYUP5Z57gautCAv4WaKVS4JDI3BU1Mkg2wiMd2c1mbqS60q7e6tQQWGGGfiqdye5tbGsi07a5edyCD8IqXFHFFnHJB6mszpXaA3y4bPHBHnVrFckscnOfoKsVc1XLLCRgQxIyuOeM15h2g0prW5mKoVVJW2gjjaeQPlmvUbZfaoTjKgZOPKsz2siTBjYFWlBkGTxnIyPkMfeufWblqkRHa24ZgZlieNHhBVgMOMnr417B2M1w6zoqvOc3MGI5T/MccN868kaJ4LiUYJG3cAPDP7VI07UrzTBKtpfTRrIckRnAq8Xgy1tLuWPZ7rSlK6TziJqoY6bOFODsPNYiaT26yKp4zgDyrW9pJRFpL5bbuIXNYqNljBJPA5HnWN70er0Kxpuv3JPZ26Wz1N4TlY5uQ2eAen3wK0E9w1nI6oQYpD74JxgnqRWUiiaZvZqPecZwPt6Yq3KPdIkbvvz7rseM9xqjWDS9OavLP3cxSvcq0JxIp93I4PkfI1MtGViyunsp14aM9R5jxHnXyxYxXBt5iCyjMbn9Y8/P/AHUm7tIroj2g5HwuDhl9CORU4+jO74RykiLkjiq65sobmNlEsbDHcQa7XWkXkqhTqtysWeFBAZvLIGcVCk7M+x/Ntp5Y5O8hutQ3X0Wjt/UZXUNGu7C5N1Zkvg5ZB1Iq60eeXUdixg89cnpXy7GtWSMSFmjHO1l5+oqtt9ZQyfk5gkz78Xc58j4+XfUzqeqRq5a+U7no0RSGEQJyf1Ed5rM9tNuyxzglrgDHlg5qfpeopcIMODmqHtpdB7tFGSltH7Q4x1J/196rrP44MdKMXky1zOm91UEezyuSOq1xgjYwhxzliOR4f7qNB727qCFNSS+y1iXPvZYkD5YrPGNkXTyss98pSldx4xT9qI/aaSV2kjeOnd3Z+9YsQMPjUgIcBSa9JmjWaJo5ACrAgg1iHRrC8ksLqP2j5/Jcn4lPTPp/asrWHk9Do9bCemxaxeztGYcyycHHd3/tU3TCyzyRyJgE5Ru7PeKii4t3VYVzuV+ST15zxxU4ZmAKy7Np+I4wp/zis87nRfGGSGtUnyrngHIxwQfEVyuF1GBgLaaGZRztlQ59NwOPtX23uAl41heTRGZk3psBG4fPv/ep6omAAOO7FNmYO2nuZ49qY0cxz2V7HIDg7oSa6DtTZbceyu2I7lgOavztDYAAHfmsz2h7XWOm7re023F2ONq9F9TUNNey81Fbdv8AZGv+2NnCMSWF4F8WULWc1C6stRZruCzeHaMsxxhx/Y+dcLnUbvULeT+IXEeJRgIowF58PGo82owRwpbwx5jQjKnq3rWby/5OqFM7rZFjY3RtL5o39+FlLNnjI/7rhf3DXbu0rZMjbnxx6Cqp7tmy+D7x76+CYsdpwF6elQ5p4z6I753x7O9nbgzFZGCxs2zI/wA86XIVpWChQqkqM+ANfLRlPDOyRgEDB+In/MVHlmX2hBJGCR1zUpN0Zu5mT+g6UpXceMDVVrljb39vtaZIZ05jkzypqwuY3lhKRyezY/qxVHLot1klXV/U80xkJtPKMTdXF7pNxi7tVu4Rx7SE4bHp0NQ5tZ7OzIRNHc53Z2MM8/0rcyaPdspV4A6nuzVHqXYoXeWFs6P4isnoy+DqnrNRc7maftBpcSAW9vK5XpuULt9D3fKv3D2rvkUGK+kjx0VkD4+Zrhf9hdTtstHFIy+ak/0qmk0q8tziSFgR4U8MlvzLrlIsbzX9SvwUn1G4ZTztB2j7VSsxVuuc10a2nfI2SMc9OTX7j0+9ZsLbSfTb/WpmUuClazexx/FbRtAz61+TOd2QPrXddM1B+lq2fMgf3qbY9mNVvHAW3K58F3H9qv2Io9avsrfbbmBbFdN27AHz46Vpl7AaiVJZZc+lSF7BXzqodZAveBVXBbzszCSYGYQXI91B4nvq30bszcXkLyzWU8jZ6rKFGPoa1um9kPwYGLVmbzFXSaXfKMLGVHhuqZhIpeq6NPSlKsZClKUApSlAKjz2VrcDE9vE/wD9KKkUoCvTRNMjYstjDk+K5qTHZWsX/rtol9EFd6UByW2gX4YYx6KK6BVX4QB6V9pQClKUApSlAf/Z</field> </record> <record id="product_package_from" model="product.packaging"> <field name="name">Box of 5</field> @@ -77,7 +77,7 @@ <field name="default_code">PKB</field> <field name="ean13">3307631102323</field> <field name="categ_id" search="[]" model="product.category"/> - <field name="product_image">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</field> + <field name="image">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</field> </record> <record id="product_package_pain" model="product.packaging"> <field name="name">Bag of 2</field> @@ -107,7 +107,7 @@ <field name="default_code">LEX</field> <field name="ean13">3307630302045</field> <field name="categ_id" search="[]" model="product.category"/> - <field name="product_image">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</field> + <field name="image">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</field> </record> <record id="product_package_lait" model="product.packaging"> <field name="name">Boxes of 1 liter</field> diff --git a/addons/product_expiry/product_expiry_view.xml b/addons/product_expiry/product_expiry_view.xml index 3e2d6573443..f883ca55fe0 100644 --- a/addons/product_expiry/product_expiry_view.xml +++ b/addons/product_expiry/product_expiry_view.xml @@ -5,7 +5,6 @@ <field name="name">stock.production.lot.form</field> <field name="model">stock.production.lot</field> <field name="inherit_id" ref="stock.view_production_lot_form" /> - <field name="type">form</field> <field name="arch" type="xml"> <field name="date" position="after"> <field name="life_date" /> @@ -21,7 +20,6 @@ <field name="name">product.normal.form</field> <field name="model">product.product</field> <field name="inherit_id" ref="product.product_normal_form_view" /> - <field name="type">form</field> <field name="arch" type="xml"> <notebook position="inside"> <page string="Dates"> diff --git a/addons/product_manufacturer/product_manufacturer_view.xml b/addons/product_manufacturer/product_manufacturer_view.xml index 655dc841d17..5f620747d64 100644 --- a/addons/product_manufacturer/product_manufacturer_view.xml +++ b/addons/product_manufacturer/product_manufacturer_view.xml @@ -6,7 +6,6 @@ <field name="name">product.normal.form</field> <field name="model">product.product</field> <field name="inherit_id" ref="product.product_normal_form_view" /> - <field name="type">form</field> <field name="arch" type="xml"> <notebook position="inside"> <page string="Manufacturer"> @@ -31,7 +30,6 @@ <record model="ir.ui.view" id="product_manufacturer_attribute_tree_view"> <field name="name">product.manufacturer.attribute.tree</field> <field name="model">product.manufacturer.attribute</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Product Attributes" editable="bottom"> <field name="name"/> @@ -42,7 +40,6 @@ <record model="ir.ui.view" id="product_manufacturer_attribute_form_view"> <field name="name">product.manufacturer.attribute.form</field> <field name="model">product.manufacturer.attribute</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Product Template Name" version="7.0"> <group> diff --git a/addons/product_margin/product_margin_view.xml b/addons/product_margin/product_margin_view.xml index c3dc2526e63..3ebdf252e8e 100644 --- a/addons/product_margin/product_margin_view.xml +++ b/addons/product_margin/product_margin_view.xml @@ -4,7 +4,6 @@ <record model="ir.ui.view" id="view_product_margin_graph"> <field name="name">product.margin.graph</field> <field name="model">product.product</field> - <field name="type">graph</field> <field name="priority" eval="50"/> <field name="arch" type="xml"> <graph string="Product Margins" type="bar"> @@ -18,7 +17,6 @@ <record id="view_product_margin_form" model="ir.ui.view"> <field name="name">product.margin.form.inherit</field> <field name="model">product.product</field> - <field name="type">form</field> <field name="priority">50</field> <field name="arch" type="xml"> <form string="Product Margins" version="7.0"> @@ -65,7 +63,6 @@ <record id="view_product_margin_tree" model="ir.ui.view"> <field name="name">product.margin.tree</field> <field name="model">product.product</field> - <field name="type">tree</field> <field name="priority" eval="50"/> <field name="arch" type="xml"> <tree string="Product Margins"> diff --git a/addons/product_margin/wizard/product_margin_view.xml b/addons/product_margin/wizard/product_margin_view.xml index f174c6af445..7c11133ce7d 100644 --- a/addons/product_margin/wizard/product_margin_view.xml +++ b/addons/product_margin/wizard/product_margin_view.xml @@ -4,7 +4,6 @@ <record id="product_margin_form_view" model="ir.ui.view"> <field name="name">product.margin.form</field> <field name="model">product.margin</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Properties categories" version="7.0"> <group col="4" string="General Information"> diff --git a/addons/project/board_project_view.xml b/addons/project/board_project_view.xml index 9e532438a7c..2023ba5a0b9 100644 --- a/addons/project/board_project_view.xml +++ b/addons/project/board_project_view.xml @@ -5,7 +5,6 @@ <record id="view_task_tree" model="ir.ui.view"> <field name="name">project.task.tree</field> <field name="model">project.task</field> - <field name="type">tree</field> <field eval="99" name="priority"/> <field name="arch" type="xml"> <tree colors="red:date_deadline<current_date;blue:date_deadline==current_date;black:date_deadline>current_date" string="My Tasks"> @@ -34,7 +33,6 @@ <record id="board_project_form" model="ir.ui.view"> <field name="name">board.project.form</field> <field name="model">board.board</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="My Board" version="7.0"> <board style="2-1"> diff --git a/addons/project/project.py b/addons/project/project.py index 6f3b23f4746..1a8f8c8bfe5 100644 --- a/addons/project/project.py +++ b/addons/project/project.py @@ -267,6 +267,7 @@ class project(osv.osv): 'type_ids': _get_type_common, 'alias_model': 'project.task', 'privacy_visibility': 'public', + 'alias_domain': False, # always hide alias during creation } # TODO: Why not using a SQL contraints ? @@ -337,11 +338,11 @@ class project(osv.osv): context['active_test'] = False default['state'] = 'open' default['tasks'] = [] - default['alias_id'] = False + default.pop('alias_name', None) + default.pop('alias_id', None) proj = self.browse(cr, uid, id, context=context) if not default.get('name', False): default['name'] = proj.name + _(' (copy)') - default['alias_name'] = default['name'] res = super(project, self).copy(cr, uid, id, default, context) self.map_tasks(cr,uid,id,res,context) return res @@ -513,13 +514,10 @@ def Project(): # OpenChatter methods and notifications # ------------------------------------------------ - def message_get_subscribers(self, cr, uid, ids, context=None): - """ Override to add responsible user. """ - user_ids = super(project, self).message_get_subscribers(cr, uid, ids, context=context) - for obj in self.browse(cr, uid, ids, context=context): - if obj.user_id and not obj.user_id.id in user_ids: - user_ids.append(obj.user_id.id) - return user_ids + def message_get_monitored_follower_fields(self, cr, uid, ids, context=None): + """ Add 'user_id' to the monitored fields """ + res = super(project, self).message_get_monitored_follower_fields(cr, uid, ids, context=context) + return res + ['user_id'] def create(self, cr, uid, vals, context=None): if context is None: context = {} @@ -527,11 +525,13 @@ def Project(): context = dict(context, project_creation_in_progress=True) mail_alias = self.pool.get('mail.alias') if not vals.get('alias_id'): - name = vals.pop('alias_name', None) or vals['name'] - alias_id = mail_alias.create_unique_alias(cr, uid, - {'alias_name': "project_"+short_name(name)}, - model_name=vals.get('alias_model', 'project.task'), - context=context) + vals.pop('alias_name', None) # prevent errors during copy() + alias_id = mail_alias.create_unique_alias(cr, uid, + # Using '+' allows using subaddressing for those who don't + # have a catchall domain setup. + {'alias_name': "project+"+short_name(vals['name'])}, + model_name=vals.get('alias_model', 'project.task'), + context=context) vals['alias_id'] = alias_id project_id = super(project, self).create(cr, uid, vals, context) mail_alias.write(cr, uid, [vals['alias_id']], {'alias_defaults': {'project_id': project_id} }, context) @@ -794,7 +794,7 @@ class task(base_stage, osv.osv): 'company_id': fields.many2one('res.company', 'Company'), 'id': fields.integer('ID', readonly=True), 'color': fields.integer('Color Index'), - 'user_email': fields.related('user_id', 'user_email', type='char', string='User Email', readonly=True), + 'user_email': fields.related('user_id', 'email', type='char', string='User Email', readonly=True), } _defaults = { @@ -1201,15 +1201,10 @@ class task(base_stage, osv.osv): result[obj.id].append(obj.user_id.id) return result - def message_get_subscribers(self, cr, uid, ids, context=None): - """ Override to add responsible user and project manager. """ - user_ids = super(task, self).message_get_subscribers(cr, uid, ids, context=context) - for obj in self.browse(cr, uid, ids, context=context): - if obj.user_id and not obj.user_id.id in user_ids: - user_ids.append(obj.user_id.id) - if obj.manager_id and not obj.manager_id.id in user_ids: - user_ids.append(obj.manager_id.id) - return user_ids + def message_get_monitored_follower_fields(self, cr, uid, ids, context=None): + """ Add 'user_id' and 'manager_id' to the monitored fields """ + res = super(task, self).message_get_monitored_follower_fields(cr, uid, ids, context=context) + return res + ['user_id', 'manager_id'] def stage_set_send_note(self, cr, uid, ids, stage_id, context=None): """ Override of the (void) default notification method. """ diff --git a/addons/project/project_view.xml b/addons/project/project_view.xml index 41e9ae51923..eb17d446816 100644 --- a/addons/project/project_view.xml +++ b/addons/project/project_view.xml @@ -61,7 +61,6 @@ <record id="edit_project" model="ir.ui.view"> <field name="name">project.project.form</field> <field name="model">project.project</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Project" version="7.0"> <header> @@ -82,7 +81,7 @@ <field name="name" string="Project Name"/> </h1> <div attrs="{'invisible': [('alias_domain', '=', False)]}"> - <field name="alias_id" invisible="1"/> + <field name="alias_id" invisible="1" required="0"/> <label for="alias_name" class="oe_edit_only "/> <field name="alias_name" class="oe_inline" attrs="{'required': [('alias_id', '!=', False)]}"/>@<field name="alias_domain" class="oe_inline"/> </div> @@ -149,6 +148,7 @@ </sheet> <div class="oe_chatter"> <field name="message_ids" widget="mail_thread"/> + <field name="message_follower_ids" widget="mail_followers"/> </div> </form> </field> @@ -157,7 +157,6 @@ <record id="view_project_project_filter" model="ir.ui.view"> <field name="name">project.project.select</field> <field name="model">project.project</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Search Project"> <field name="complete_name" string="Project Name"/> @@ -184,7 +183,6 @@ <record id="view_project" model="ir.ui.view"> <field name="name">project.project.tree</field> <field name="model">project.project</field> - <field name="type">tree</field> <field name="field_parent">child_ids</field> <field name="arch" type="xml"> <tree fonts="bold:needaction_pending==True" colors="red:date and (date<current_date) and (state == 'open');blue:state in ('draft','pending');grey: state in ('close','cancelled')" string="Projects"> @@ -216,7 +214,6 @@ <record model="ir.ui.view" id="view_project_kanban"> <field name="name">project.project.kanban</field> <field name="model">project.project</field> - <field name="type">kanban</field> <field name="arch" type="xml"> <kanban> <field name="effective_hours"/> @@ -277,7 +274,6 @@ <record id="view_project_project_gantt" model="ir.ui.view"> <field name="name">project.project.gantt</field> <field name="model">project.project</field> - <field name="type">gantt</field> <field name="arch" type="xml"> <gantt date_delay="planned_hours" date_start="date_start" string="Projects"> </gantt> @@ -321,7 +317,6 @@ <record id="view_task_work_form" model="ir.ui.view"> <field name="name">project.task.work.form</field> <field name="model">project.task.work</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Task Work" version="7.0"> <group col="4"> @@ -338,7 +333,6 @@ <record id="view_task_work_tree" model="ir.ui.view"> <field name="name">project.task.work.tree</field> <field name="model">project.task.work</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree editable="top" string="Task Work"> <field name="date"/> @@ -391,7 +385,6 @@ <record id="view_task_form2" model="ir.ui.view"> <field name="name">project.task.form</field> <field name="model">project.task</field> - <field name="type">form</field> <field eval="2" name="priority"/> <field name="arch" type="xml"> <form string="Project" version="7.0"> @@ -489,6 +482,7 @@ </sheet> <div class="oe_chatter"> <field name="message_ids" widget="mail_thread"/> + <field name="message_follower_ids" widget="mail_followers"/> </div> </form> </field> @@ -498,7 +492,6 @@ <record model="ir.ui.view" id="view_task_kanban"> <field name="name">project.task.kanban</field> <field name="model">project.task</field> - <field name="type">kanban</field> <field name="arch" type="xml"> <kanban default_group_by="stage_id" > <field name="color"/> @@ -576,7 +569,6 @@ <record id="view_task_tree2" model="ir.ui.view"> <field name="name">project.task.tree</field> <field name="model">project.task</field> - <field name="type">tree</field> <field eval="2" name="priority"/> <field name="arch" type="xml"> <tree fonts="bold:needaction_pending==True" colors="grey:state in ('cancelled','done');blue:state == 'pending';red:date_deadline and (date_deadline<current_date) and (state in ('draft','pending','open'))" string="Tasks"> @@ -603,7 +595,6 @@ <record id="view_task_calendar" model="ir.ui.view"> <field name="name">project.task.calendar</field> <field name="model">project.task</field> - <field name="type">calendar</field> <field eval="2" name="priority"/> <field name="arch" type="xml"> <calendar color="user_id" date_start="date_deadline" string="Tasks"> @@ -616,7 +607,6 @@ <record id="view_task_gantt" model="ir.ui.view"> <field name="name">project.task.gantt</field> <field name="model">project.task</field> - <field name="type">gantt</field> <field eval="2" name="priority"/> <field name="arch" type="xml"> <gantt date_start="date_start" date_stop="date_end" string="Tasks" default_group_by="project_id"> @@ -627,7 +617,6 @@ <record id="view_project_task_graph" model="ir.ui.view"> <field name="name">project.task.graph</field> <field name="model">project.task</field> - <field name="type">graph</field> <field name="arch" type="xml"> <graph string="Project Tasks" type="bar"> <field name="project_id"/> @@ -640,7 +629,6 @@ <record id="view_task_search_form" model="ir.ui.view"> <field name="name">project.task.search.form</field> <field name="model">project.task</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Tasks"> <field name="name" string="Tasks"/> @@ -675,7 +663,6 @@ <record id="analytic_account_inherited_form" model="ir.ui.view"> <field name="name">account.analytic.account.form.inherit</field> <field name="model">account.analytic.account</field> - <field name="type">form</field> <field name="inherit_id" ref="analytic.view_account_analytic_account_form"/> <field eval="18" name="priority"/> <field name="arch" type="xml"> @@ -751,7 +738,6 @@ <record id="task_type_search" model="ir.ui.view"> <field name="name">project.task.type.search</field> <field name="model">project.task.type</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Tasks Stages"> <field name="name" string="Tasks Stages"/> @@ -763,7 +749,6 @@ <record id="task_type_edit" model="ir.ui.view"> <field name="name">project.task.type.form</field> <field name="model">project.task.type</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Task Stage" version="7.0"> <group> @@ -785,7 +770,6 @@ <record id="task_type_tree" model="ir.ui.view"> <field name="name">project.task.type.tree</field> <field name="model">project.task.type</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Task Stage"> <field name="sequence"/> @@ -824,7 +808,6 @@ <record id="task_company" model="ir.ui.view"> <field name="name">res.company.task.config</field> <field name="model">res.company</field> - <field name="type">form</field> <field name="inherit_id" ref="base.view_company_form"/> <field name="arch" type="xml"> <xpath expr="//group[@name='account_grp']" position="after"> diff --git a/addons/project/report/project_cumulative.xml b/addons/project/report/project_cumulative.xml index ae87b3f2fe2..8fd9c3ee1b6 100644 --- a/addons/project/report/project_cumulative.xml +++ b/addons/project/report/project_cumulative.xml @@ -5,7 +5,6 @@ <record id="view_task_history_tree" model="ir.ui.view"> <field name="name">project.task.history.cumulative.tree</field> <field name="model">project.task.history.cumulative</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Tasks's Cumulative Flow"> <field name="date"/> @@ -22,7 +21,6 @@ <record id="view_task_history_graph" model="ir.ui.view"> <field name="name">project.task.history.cumulative.graph</field> <field name="model">project.task.history.cumulative</field> - <field name="type">graph</field> <field name="arch" type="xml"> <graph string="Project Tasks" type="bar"> <field name="date"/> @@ -37,7 +35,6 @@ <!--<record id="view_task_history_burndown_graph" model="ir.ui.view">--> <!-- <field name="name">project.task.history.burndown.graph</field>--> <!-- <field name="model">project.task.history.burndown</field>--> - <!-- <field name="type">graph</field>--> <!-- <field name="arch" type="xml">--> <!-- <graph string="Burndown Chart of Tasks" type="bar">--> <!-- <field name="date"/>--> @@ -51,7 +48,6 @@ <record id="view_task_history_search" model="ir.ui.view"> <field name="name">project.task.history.cumulative.search</field> <field name="model">project.task.history.cumulative</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Task's Analysis"> <field name="date"/> diff --git a/addons/project/report/project_report_view.xml b/addons/project/report/project_report_view.xml index 9383a588e3a..5d6132b1b8f 100644 --- a/addons/project/report/project_report_view.xml +++ b/addons/project/report/project_report_view.xml @@ -9,7 +9,6 @@ <record id="view_task_project_user_tree" model="ir.ui.view"> <field name="name">report.project.task.user.tree</field> <field name="model">report.project.task.user</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Tasks Analysis"> <field name="name" invisible="1"/> @@ -42,7 +41,6 @@ <record id="view_task_project_user_graph" model="ir.ui.view"> <field name="name">report.project.task.user.graph</field> <field name="model">report.project.task.user</field> - <field name="type">graph</field> <field name="arch" type="xml"> <graph string="Tasks Analysis" type="bar"> <field name="name"/> @@ -55,7 +53,6 @@ <record id="view_task_project_user_search" model="ir.ui.view"> <field name="name">report.project.task.user.search</field> <field name="model">report.project.task.user</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Tasks Analysis"> <field name="date_start"/> diff --git a/addons/project/res_config_view.xml b/addons/project/res_config_view.xml index a3783bc7e3b..821d7a58fd4 100644 --- a/addons/project/res_config_view.xml +++ b/addons/project/res_config_view.xml @@ -17,7 +17,6 @@ <record id="view_config_settings" model="ir.ui.view"> <field name="name">project settings</field> <field name="model">project.config.settings</field> - <field name="type">form</field> <field name="priority" eval="20"/> <field name="arch" type="xml"> <form string="Configure Project" version="7.0" class="oe_form_configuration"> diff --git a/addons/project/res_partner_view.xml b/addons/project/res_partner_view.xml index e16c18d1582..d668e3c7092 100644 --- a/addons/project/res_partner_view.xml +++ b/addons/project/res_partner_view.xml @@ -6,7 +6,6 @@ <record id="view_task_partner_info_form" model="ir.ui.view"> <field name="name">res.partner.task.info.inherit</field> <field name="model">res.partner</field> - <field name="type">form</field> <field name="inherit_id" ref="base.view_partner_form"/> <field name="arch" type="xml"> <xpath expr="//page[@name='page_history']" position="attributes"> diff --git a/addons/project/wizard/project_task_delegate_view.xml b/addons/project/wizard/project_task_delegate_view.xml index 4bd7e4b5b1d..700740d12f3 100644 --- a/addons/project/wizard/project_task_delegate_view.xml +++ b/addons/project/wizard/project_task_delegate_view.xml @@ -5,7 +5,6 @@ <record id="view_project_task_delegate" model="ir.ui.view"> <field name="name">Project Task Delegate</field> <field name="model">project.task.delegate</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Project Task Delegate" version="7.0"> <group> diff --git a/addons/project/wizard/project_task_reevaluate_view.xml b/addons/project/wizard/project_task_reevaluate_view.xml index 84436c045a6..6dfe58e8cfd 100644 --- a/addons/project/wizard/project_task_reevaluate_view.xml +++ b/addons/project/wizard/project_task_reevaluate_view.xml @@ -5,7 +5,6 @@ <record id="view_project_task_reevaluate" model="ir.ui.view"> <field name="name">Re-evaluate Task</field> <field name="model">project.task.reevaluate</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Reevaluate Task" version="7.0"> <separator string="Reevaluation Task"/> diff --git a/addons/project_gtd/project_gtd_view.xml b/addons/project_gtd/project_gtd_view.xml index a76b90e2f08..fdb8ae8495c 100644 --- a/addons/project_gtd/project_gtd_view.xml +++ b/addons/project_gtd/project_gtd_view.xml @@ -4,7 +4,6 @@ <record model="ir.ui.view" id="view_gtd_context_tree"> <field name="name">project.gtd.context.tree</field> <field name="model">project.gtd.context</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Context"> <field name="sequence" invisible="1"/> @@ -16,7 +15,6 @@ <record model="ir.ui.view" id="view_gtd_context_form"> <field name="name">project.gtd.context.form</field> <field name="model">project.gtd.context</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Context" version="7.0"> <group col="4"> @@ -39,7 +37,6 @@ <record model="ir.ui.view" id="view_gtd_timebox_tree"> <field name="name">project.gtd.timebox.tree</field> <field name="model">project.gtd.timebox</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Timebox"> <field name="sequence" invisible="1"/> @@ -52,7 +49,6 @@ <record model="ir.ui.view" id="view_gtd_timebox_form"> <field name="name">project.gtd.timebox.form</field> <field name="model">project.gtd.timebox</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Timeboxes" version="7.0"> <group col="4" string="Timebox Definition"> @@ -78,7 +74,6 @@ <record model="ir.ui.view" id="project_task_tree"> <field name="name">project.task.tree.timebox</field> <field name="model">project.task</field> - <field name="type">tree</field> <field name="inherit_id" ref="project.view_task_tree2" /> <field name="arch" type="xml"> <field name="remaining_hours" position="after"> @@ -94,7 +89,6 @@ <record model="ir.ui.view" id="project_task"> <field name="name">project.task.form.timebox</field> <field name="model">project.task</field> - <field name="type">form</field> <field name="inherit_id" ref="project.view_task_form2" /> <field name="arch" type="xml"> <field name="progress" position="after"> @@ -107,7 +101,6 @@ <record id="view_task_gtd_search" model="ir.ui.view"> <field name="name">project.task.gtd.search</field> <field name="model">project.task</field> - <field name="type">search</field> <field name="priority">50</field> <field name="arch" type="xml"> <search string="My Tasks"> diff --git a/addons/project_gtd/wizard/project_gtd_empty_view.xml b/addons/project_gtd/wizard/project_gtd_empty_view.xml index e166d997226..053c0013e73 100644 --- a/addons/project_gtd/wizard/project_gtd_empty_view.xml +++ b/addons/project_gtd/wizard/project_gtd_empty_view.xml @@ -5,7 +5,6 @@ <record id="view_project_gtd_empty" model="ir.ui.view"> <field name="name">Empty Timebox</field> <field name="model">project.timebox.empty</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Empty Timebox" version="7.0"> <label string="Timebox Empty Process Completed Successfully." /> diff --git a/addons/project_gtd/wizard/project_gtd_fill_view.xml b/addons/project_gtd/wizard/project_gtd_fill_view.xml index 7b01dc519c3..8807c00a76b 100644 --- a/addons/project_gtd/wizard/project_gtd_fill_view.xml +++ b/addons/project_gtd/wizard/project_gtd_fill_view.xml @@ -5,7 +5,6 @@ <record id="view_project_gtd_fill" model="ir.ui.view"> <field name="name">Plannify Timebox</field> <field name="model">project.timebox.fill.plan</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Plannify Timebox" version="7.0"> <group col="4"> diff --git a/addons/project_issue/board_project_issue_view.xml b/addons/project_issue/board_project_issue_view.xml index 8bc34177d7d..3b4fa57fc58 100644 --- a/addons/project_issue/board_project_issue_view.xml +++ b/addons/project_issue/board_project_issue_view.xml @@ -5,7 +5,6 @@ <record model="ir.ui.view" id="project_issue_board_tree_view"> <field name="name">Project Issue Board Tree</field> <field name="model">project.issue</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Issue Tracker Tree" colors="black:state=='open';blue:state=='pending';grey:state in ('cancel', 'done')"> <field name="id"/> @@ -36,7 +35,6 @@ <record id="board_my_project_issue_form" model="ir.ui.view"> <field name="name">board.my.project.issue.form.inherit</field> <field name="model">board.board</field> - <field name="type">form</field> <field name="inherit_id" ref="project.board_project_form"/> <field name="arch" type="xml"> <xpath expr="/form/board/column/action[@string='My Tasks']" position="after"> diff --git a/addons/project_issue/project_issue.py b/addons/project_issue/project_issue.py index 7b2afbeacf2..5c440976b5c 100644 --- a/addons/project_issue/project_issue.py +++ b/addons/project_issue/project_issue.py @@ -256,7 +256,7 @@ class project_issue(base_stage, osv.osv): 'inactivity_days': fields.function(_compute_day, string='Days since last action', \ multi='compute_day', type="integer", help="Difference in days between last action and current date"), 'color': fields.integer('Color Index'), - 'user_email': fields.related('user_id', 'user_email', type='char', string='User Email', readonly=True), + 'user_email': fields.related('user_id', 'email', type='char', string='User Email', readonly=True), 'date_action_last': fields.datetime('Last Action', readonly=1), 'date_action_next': fields.datetime('Next Action', readonly=1), 'progress': fields.function(_hours_get, string='Progress (%)', multi='hours', group_operator="avg", help="Computed as: Time Spent / Total Time.", @@ -267,9 +267,6 @@ class project_issue(base_stage, osv.osv): }), } - def on_change_project(self, cr, uid, ids, project_id, context=None): - return {} - _defaults = { 'active': 1, 'partner_id': lambda s, cr, uid, c: s._get_default_partner(cr, uid, c), @@ -496,19 +493,16 @@ class project_issue(base_stage, osv.osv): key = maps.get(res.group(1).lower()) update_vals[key] = res.group(2).lower() - return super(project_issue, self).message_update(cr, uid, ids, update_vals=update_vals, context=context) + return super(project_issue, self).message_update(cr, uid, ids, msg, update_vals=update_vals, context=context) # ------------------------------------------------------- # OpenChatter methods and notifications # ------------------------------------------------------- - def message_get_subscribers(self, cr, uid, ids, context=None): - """ Override to add responsible user. """ - user_ids = super(project_issue, self).message_get_subscribers(cr, uid, ids, context=context) - for obj in self.browse(cr, uid, ids, context=context): - if obj.user_id and not obj.user_id.id in user_ids: - user_ids.append(obj.user_id.id) - return user_ids + def message_get_monitored_follower_fields(self, cr, uid, ids, context=None): + """ Add 'user_id' to the monitored fields """ + res = super(project_issue, self).message_get_monitored_follower_fields(cr, uid, ids, context=context) + return res + ['user_id'] def stage_set_send_note(self, cr, uid, ids, stage_id, context=None): """ Override of the (void) default notification method. """ diff --git a/addons/project_issue/project_issue_view.xml b/addons/project_issue/project_issue_view.xml index 0322a9d8f26..bb15f8c2f94 100644 --- a/addons/project_issue/project_issue_view.xml +++ b/addons/project_issue/project_issue_view.xml @@ -44,7 +44,6 @@ <record model="ir.ui.view" id="project_issue_version_search_view"> <field name="name">Issue Version</field> <field name="model">project.issue.version</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Issue Version"> <field name="name" string="Issue Version"/> @@ -55,7 +54,6 @@ <record model="ir.ui.view" id="project_issue_version_form_view"> <field name="name">Issue Version</field> <field name="model">project.issue.version</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Issue Version" version="7.0"> <group col="2"> @@ -94,9 +92,8 @@ <record model="ir.ui.view" id="project_issue_form_view"> <field name="name">Project Issue Tracker Form</field> <field name="model">project.issue</field> - <field name="type">form</field> <field name="arch" type="xml"> - <form version="7.0"> + <form string="Issue" version="7.0"> <header> <span groups="base.group_user"> <button name="case_close" string="Done" type="object" @@ -163,6 +160,7 @@ </sheet> <div class="oe_chatter"> <field name="message_ids" widget="mail_thread"/> + <field name="message_follower_ids" widget="mail_followers"/> </div> </form> </field> @@ -171,7 +169,6 @@ <record model="ir.ui.view" id="project_issue_tree_view"> <field name="name">Project Issue Tracker Tree</field> <field name="model">project.issue</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Issue Tracker Tree" fonts="bold:needaction_pending==True" colors="black:state=='open';blue:state=='pending';grey:state in ('cancel', 'done')"> <field name="needaction_pending" invisible="1"/> @@ -195,7 +192,6 @@ <record id="view_project_issue_filter" model="ir.ui.view"> <field name="name">Project Issue Tracker Search</field> <field name="model">project.issue</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Issue Tracker Search"> <field name="name" string="Issue" filter_domain="['|', '|',('partner_id','ilike',self),('email_from','ilike',self),('name','ilike',self)]"/> @@ -226,7 +222,6 @@ <record model="ir.ui.view" id="project_issue_calendar_view"> <field name="name">Project Issue Tracker Calendar</field> <field name="model">project.issue</field> - <field name="type">calendar</field> <field name="priority" eval="2"/> <field name="arch" type="xml"> <calendar string="Issues" date_start="date" color="user_id" date_delay="duration"> @@ -242,7 +237,6 @@ <record model="ir.ui.view" id="project_issue_kanban_view"> <field name="name">Project Issue Kanban</field> <field name="model">project.issue</field> - <field name="type">kanban</field> <field name="arch" type="xml"> <kanban default_group_by="stage_id"> <field name="color"/> @@ -315,7 +309,6 @@ <record model="ir.ui.view" id="project_feature_tree_view"> <field name="name">Project Issue- Feature Tracker Tree</field> <field name="model">project.issue</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Feature Tracker Tree" fonts="bold:needaction_pending==True" colors="red:state=='open';black:state in ('draft', 'cancel','done','pending')"> <field name="id"/> @@ -334,7 +327,6 @@ <record id="view_project_feature_filter" model="ir.ui.view"> <field name="name">Project Issue - Feature Tracker Search</field> <field name="model">project.issue</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Feature Tracker Search"> <field name="name" string="Feature description"/> @@ -360,7 +352,6 @@ <record id="view_project_form_inherited" model="ir.ui.view"> <field name="name">project.project.form.inherited</field> <field name="model">project.project</field> - <field name="type">form</field> <field name="inherit_id" ref="project.edit_project"/> <field name="arch" type="xml"> <xpath expr='//tr[@name="use_tasks_row"]' position='after'> @@ -381,7 +372,6 @@ <record id="view_project_kanban_inherited" model="ir.ui.view"> <field name="name">project.project.kanban.inherited</field> <field name="model">project.project</field> - <field name="type">kanban</field> <field name="inherit_id" ref="project.view_project_kanban"/> <field name="arch" type="xml"> <field name="use_tasks" position="after"> @@ -399,7 +389,6 @@ <record id="analytic_account_inherited_issue_form" model="ir.ui.view"> <field name="name">account.analytic.account.issue.form.inherit</field> <field name="model">account.analytic.account</field> - <field name="type">form</field> <field name="inherit_id" ref="project.analytic_account_inherited_form"/> <field eval="18" name="priority"/> <field name="arch" type="xml"> diff --git a/addons/project_issue/report/project_issue_report_view.xml b/addons/project_issue/report/project_issue_report_view.xml index 076e542b827..625e6e64374 100644 --- a/addons/project_issue/report/project_issue_report_view.xml +++ b/addons/project_issue/report/project_issue_report_view.xml @@ -5,7 +5,6 @@ <record id="view_project_issue_report_tree" model="ir.ui.view"> <field name="name">project.issue.report.tree</field> <field name="model">project.issue.report</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Issues Analysis"> <field name="name" invisible="1"/> @@ -35,7 +34,6 @@ <record id="view_project_issue_report_graph" model="ir.ui.view"> <field name="name">project.issue.report.graph</field> <field name="model">project.issue.report</field> - <field name="type">graph</field> <field name="arch" type="xml"> <graph orientation="horizontal" string="Project Issue" type="bar"> <field name="state"/> @@ -48,7 +46,6 @@ <record id="view_project_issue_report_filter" model="ir.ui.view"> <field name="name">project.issue.report.select</field> <field name="model">project.issue.report</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Search"> <field name="creation_date"/> diff --git a/addons/project_issue/res_config_view.xml b/addons/project_issue/res_config_view.xml index 956106b6d6b..a37b2ba0c3d 100644 --- a/addons/project_issue/res_config_view.xml +++ b/addons/project_issue/res_config_view.xml @@ -12,7 +12,6 @@ <record id="view_config_settings" model="ir.ui.view"> <field name="name">Project Application</field> <field name="model">project.config.settings</field> - <field name="type">form</field> <field name="inherit_id" ref="project.view_config_settings"/> <field name="arch" type="xml"> <div name="module_project_issue_sheet" position="after"> diff --git a/addons/project_issue_sheet/project_issue_sheet_view.xml b/addons/project_issue_sheet/project_issue_sheet_view.xml index cb2d1f70c96..4fc12ab0747 100644 --- a/addons/project_issue_sheet/project_issue_sheet_view.xml +++ b/addons/project_issue_sheet/project_issue_sheet_view.xml @@ -5,7 +5,6 @@ <field name="name">Project Issue Tracker Form</field> <field name="model">project.issue</field> <field name="inherit_id" ref="project_issue.project_issue_form_view" /> - <field name="type">form</field> <field name="arch" type="xml"> <field name="project_id" position="attributes"> <attribute name="on_change">on_change_project(project_id)</attribute> diff --git a/addons/project_long_term/project_long_term_view.xml b/addons/project_long_term/project_long_term_view.xml index 3b814cbab6e..b4b98e8fe4a 100644 --- a/addons/project_long_term/project_long_term_view.xml +++ b/addons/project_long_term/project_long_term_view.xml @@ -8,7 +8,6 @@ <record id="view_project_user_allocation_gantt" model="ir.ui.view"> <field name="name">project.user.allocation.gantt</field> <field name="model">project.user.allocation</field> - <field name="type">gantt</field> <field name="arch" type="xml"> <gantt date_start="date_start" date_stop="date_end" default_group_by="user_id"> </gantt> @@ -18,7 +17,6 @@ <record id="view_project_user_allocation_calendar" model="ir.ui.view"> <field name="name">project.user.allocation.calendar</field> <field name="model">project.user.allocation</field> - <field name="type">calendar</field> <field eval="2" name="priority"/> <field name="arch" type="xml"> <calendar color="user_id" date_start="date_start" date_stop="date_end" day_length="12" string="Users"> @@ -32,7 +30,6 @@ <record id="view_project_user_allocation_form" model="ir.ui.view"> <field name="name">project.user.allocation.form</field> <field name="model">project.user.allocation</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Project User Allocation" version="7.0"> <group col="4"> @@ -49,7 +46,6 @@ <record id="view_project_user_allocation_list" model="ir.ui.view"> <field name="name">project.user.allocation.list</field> <field name="model">project.user.allocation</field> - <field name="type">tree</field> <field name="priority" eval="5"/> <field name="arch" type="xml"> <tree editable="bottom" string="Project User Allocation"> @@ -63,7 +59,6 @@ <record id="view_project_user_allocation_search" model="ir.ui.view"> <field name="name">project.user.allocation.search</field> <field name="model">project.user.allocation</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Planning of Users"> <field name="user_id"/> @@ -99,7 +94,6 @@ <record id="project_phase_form" model="ir.ui.view"> <field name="name">Inherit project form : Phase</field> <field name="model">project.project</field> - <field name="type">form</field> <field name="inherit_id" ref="project.edit_project"/> <field name="arch" type="xml"> <xpath expr='//tr[@name="use_tasks_row"]' position='after'> @@ -114,7 +108,6 @@ <record id="view_project_kanban_phase" model="ir.ui.view"> <field name="name">project.project.kanban.inherited</field> <field name="model">project.project</field> - <field name="type">kanban</field> <field name="inherit_id" ref="project.view_project_kanban"/> <field name="arch" type="xml"> <field name="use_tasks" position="after"> @@ -131,7 +124,6 @@ <record id="view_project_phase_form" model="ir.ui.view"> <field name="name">project.phase.form</field> <field name="model">project.phase</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Project Phase" version="7.0"> <header> @@ -220,7 +212,6 @@ <record id="view_project_phase_list" model="ir.ui.view"> <field name="name">project.phase.list</field> <field name="model">project.phase</field> - <field name="type">tree</field> <field name="priority" eval="5"/> <field name="arch" type="xml"> <tree colors="grey:state in ('cancelled','done');blue:state == 'pending'" string="Project Phases"> @@ -237,7 +228,6 @@ <record id="view_project_phase_calendar" model="ir.ui.view"> <field name="name">project.phase.calendar</field> <field name="model">project.phase</field> - <field name="type">calendar</field> <field eval="2" name="priority"/> <field name="arch" type="xml"> <calendar color="project_id" date_start="date_start" date_stop="date_end" day_length="12"> @@ -249,7 +239,6 @@ <record id="view_project_phase_gantt" model="ir.ui.view"> <field name="name">project.phase.gantt</field> <field name="model">project.phase</field> - <field name="type">gantt</field> <field eval="2" name="priority"/> <field name="arch" type="xml"> <gantt date_stop="date_end" date_start="date_start" default_group_by="project_id"> @@ -260,7 +249,6 @@ <record id="view_project_phase_search" model="ir.ui.view"> <field name="name">project.phase.search</field> <field name="model">project.phase</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Project Phases"> <field name="name" string="Project Phases"/> @@ -305,7 +293,6 @@ <record id="view_phase_task_form2" model="ir.ui.view"> <field name="name">phase.task.form2</field> <field name="model">project.task</field> - <field name="type">form</field> <field name="inherit_id" ref="project.view_task_form2"/> <field name="arch" type="xml"> <xpath expr="//field[@name='user_id']" position="after"> @@ -316,7 +303,6 @@ <record id="view_phase_task_search_form" model="ir.ui.view"> <field name="name">phase.task.search.form</field> <field name="model">project.task</field> - <field name="type">search</field> <field name="inherit_id" ref="project.view_task_search_form"/> <field name="arch" type="xml"> <field name="user_id" position="before"> @@ -328,7 +314,6 @@ <record id="view_phase_task_search_form_group" model="ir.ui.view"> <field name="name">phase.task.search.form.group</field> <field name="model">project.task</field> - <field name="type">search</field> <field name="inherit_id" ref="project.view_task_search_form"/> <field name="arch" type="xml"> <filter string="Project" name="group_project_id" icon="terp-folder-violet" domain="[]" context="{'group_by':'project_id'}" position="after"> @@ -340,7 +325,6 @@ <record id="view_phase_task_search_form_tree" model="ir.ui.view"> <field name="name">phase.task.search.form.tree</field> <field name="model">project.task</field> - <field name="type">tree</field> <field name="inherit_id" ref="project.view_task_tree2"/> <field name="arch" type="xml"> <field name="project_id" position="after"> @@ -360,7 +344,6 @@ <record id="analytic_account_inherited_phase_form" model="ir.ui.view"> <field name="name">account.analytic.account.phase.form.inherit</field> <field name="model">account.analytic.account</field> - <field name="type">form</field> <field name="inherit_id" ref="analytic.view_account_analytic_account_form"/> <field eval="18" name="priority"/> <field name="arch" type="xml"> diff --git a/addons/project_long_term/wizard/project_compute_phases_view.xml b/addons/project_long_term/wizard/project_compute_phases_view.xml index 0d5c81984ba..c9fcf5aca70 100644 --- a/addons/project_long_term/wizard/project_compute_phases_view.xml +++ b/addons/project_long_term/wizard/project_compute_phases_view.xml @@ -5,7 +5,6 @@ <record id="view_project_compute_phases_select" model="ir.ui.view"> <field name="name">Schedule Phases</field> <field name="model">project.compute.phases</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Schedule Phases" version="7.0"> <group> diff --git a/addons/project_long_term/wizard/project_compute_tasks_view.xml b/addons/project_long_term/wizard/project_compute_tasks_view.xml index 8eb9db762dd..8b807806cde 100644 --- a/addons/project_long_term/wizard/project_compute_tasks_view.xml +++ b/addons/project_long_term/wizard/project_compute_tasks_view.xml @@ -5,7 +5,6 @@ <record id="view_project_compute_tasks" model="ir.ui.view"> <field name="name">Schedule Tasks</field> <field name="model">project.compute.tasks</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Schedule Tasks" version="7.0"> <group> diff --git a/addons/project_mailgate/project_mailgate.py b/addons/project_mailgate/project_mailgate.py index 0ca2687b7f0..ba3cd702760 100644 --- a/addons/project_mailgate/project_mailgate.py +++ b/addons/project_mailgate/project_mailgate.py @@ -73,7 +73,7 @@ class project_tasks(osv.osv): followers = super(project_tasks,self).message_thread_followers(cr, uid, ids, context=context) for task in self.browse(cr, uid, followers.keys(), context=context): task_followers = set(followers[task.id]) - task_followers.add(task.user_id.user_email) + task_followers.add(task.user_id.email) followers[task.id] = filter(None, task_followers) return followers diff --git a/addons/project_mrp/project_mrp_view.xml b/addons/project_mrp/project_mrp_view.xml index 93417cf2ac8..ffceb33a611 100644 --- a/addons/project_mrp/project_mrp_view.xml +++ b/addons/project_mrp/project_mrp_view.xml @@ -4,7 +4,6 @@ <record id="view_procurement_task_form" model="ir.ui.view"> <field name="name">procurement.procurement.form.view.inherit</field> <field name="model">procurement.order</field> - <field name="type">form</field> <field name="inherit_id" ref="procurement.procurement_form_view"/> <field name="arch" type="xml"> <field name="close_move" position="after"> @@ -15,7 +14,6 @@ <record id="view_product_task_form" model="ir.ui.view"> <field name="name">product.form.view.inherit</field> <field name="model">product.product</field> - <field name="type">form</field> <field name="inherit_id" ref="product.product_normal_form_view"/> <field name="arch" type="xml"> <field name="active" position="after"> @@ -26,7 +24,6 @@ <record id="view_project_mrp_inherit_form2" model="ir.ui.view"> <field name="name">project.mrp.form.view.inherit</field> <field name="model">project.task</field> - <field name="type">form</field> <field name="inherit_id" ref="project.view_task_form2"/> <field name="arch" type="xml"> <field name="state" position="after"> diff --git a/addons/project_timesheet/project_timesheet_view.xml b/addons/project_timesheet/project_timesheet_view.xml index 1c6ba1a05f4..c47c411f6c9 100644 --- a/addons/project_timesheet/project_timesheet_view.xml +++ b/addons/project_timesheet/project_timesheet_view.xml @@ -5,7 +5,6 @@ <record id="view_project_kanban_inherited" model="ir.ui.view"> <field name="name">project.project.kanban.inherited</field> <field name="model">project.project</field> - <field name="type">kanban</field> <field name="inherit_id" ref="project.view_project_kanban"/> <field name="arch" type="xml"> <field name="use_tasks" position="after"> @@ -32,7 +31,6 @@ <record id="project_invoice_form_cutomer" model="ir.ui.view"> <field name="name">Inherit project form : Customer</field> <field name="model">project.project</field> - <field name="type">form</field> <field name="inherit_id" ref="analytic_contract_project.project_invoice_form"/> <field name="arch" type="xml"> <field name="partner_id" position="replace"> @@ -44,7 +42,6 @@ <record id="project_invoice_search" model="ir.ui.view"> <field name="name">Inherit project search view : Invoicing Data</field> <field name="model">project.project</field> - <field name="type">search</field> <field name="inherit_id" ref="project.view_project_project_filter"/> <field name="arch" type="xml"> <xpath expr='//filter[@string="Project(s) Manager"]' position='after'> @@ -56,7 +53,6 @@ <record id="view_account_analytic_line_search_account_inherit" model="ir.ui.view"> <field name="name">account.analytic.line.search.account_id</field> <field name="model">account.analytic.line</field> - <field name="type">search</field> <field name="inherit_id" ref="account.view_account_analytic_line_filter"/> <field name="arch" type="xml"> <field name="account_id" position="replace"> @@ -67,7 +63,6 @@ <record id="view_account_analytic_line_form_inherit_account_id" model="ir.ui.view"> <field name="name">account.analytic.line.form.account_id</field> <field name="model">account.analytic.line</field> - <field name="type">form</field> <field name="inherit_id" ref="account.view_account_analytic_line_form"/> <field name="arch" type="xml"> <field name="account_id" position="replace"> @@ -78,7 +73,6 @@ <record id="view_account_analytic_line_tree_inherit_account_id" model="ir.ui.view"> <field name="name">account.analytic.line.tree.account_id</field> <field name="model">account.analytic.line</field> - <field name="type">tree</field> <field name="inherit_id" ref="account.view_account_analytic_line_tree"/> <field name="arch" type="xml"> <field name="account_id" position="replace"> diff --git a/addons/project_timesheet/report/task_report_view.xml b/addons/project_timesheet/report/task_report_view.xml index 32f8719e9a3..2c8a34c656e 100644 --- a/addons/project_timesheet/report/task_report_view.xml +++ b/addons/project_timesheet/report/task_report_view.xml @@ -12,7 +12,6 @@ <record id="view_report_timesheet_task_user_tree" model="ir.ui.view"> <field name="name">report.timesheet.task.user.tree</field> <field name="model">report.timesheet.task.user</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Timesheet/Task hours Report Per Month" > <field name="name"/> @@ -27,7 +26,6 @@ <record id="view_report_timesheet_task_user_search" model="ir.ui.view"> <field name="name">report.timesheet.task.user.search</field> <field name="model">report.timesheet.task.user</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Tasks by User"> <field name="name" string="Date"/> @@ -44,7 +42,6 @@ <record id="view_task_hour_per_month_graph" model="ir.ui.view"> <field name="name">report.timesheet.task.user.graph</field> <field name="model">report.timesheet.task.user</field> - <field name="type">graph</field> <field name="arch" type="xml"> <graph string="Task Hours Per Month" type="bar"> <field name="user_id"/> diff --git a/addons/project_timesheet/test/worktask_entry_to_timesheetline_entry.yml b/addons/project_timesheet/test/worktask_entry_to_timesheetline_entry.yml index 1e9c22f34d8..497ec9e3597 100644 --- a/addons/project_timesheet/test/worktask_entry_to_timesheetline_entry.yml +++ b/addons/project_timesheet/test/worktask_entry_to_timesheetline_entry.yml @@ -3,9 +3,8 @@ - !record {model: res.users, id: res_users_hrmanager0}: company_id: base.main_company - context_lang: en_US - login: hr name: HR Manager + login: hr password: hr groups_id: - base.group_hr_manager diff --git a/addons/purchase/board_purchase_view.xml b/addons/purchase/board_purchase_view.xml index c76defe468f..67c3981f383 100644 --- a/addons/purchase/board_purchase_view.xml +++ b/addons/purchase/board_purchase_view.xml @@ -15,7 +15,6 @@ <record model="ir.ui.view" id="view_purchase_order_monthly_categ_tree"> <field name="name">purchase.order.monthly.categ.tree</field> <field name="model">purchase.report</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Monthly Purchase by Category"> <field name="month"/> @@ -38,7 +37,6 @@ <record model="ir.ui.view" id="view_purchase_order_monthly_categ_graph"> <field name="name">purchase.order.monthly.categ.graph</field> <field name="model">purchase.report</field> - <field name="type">graph</field> <field name="arch" type="xml"> <graph string="Monthly Purchase by Category" type="bar"> <field name="month"/> @@ -60,7 +58,6 @@ <record id="board_purchase_form" model="ir.ui.view"> <field name="name">board.purchase.form</field> <field name="model">board.board</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Purchase Dashboard" version="7.0"> <board style="2-1"> diff --git a/addons/purchase/company_view.xml b/addons/purchase/company_view.xml index 30c6bfa1abf..e35bf1c24b5 100644 --- a/addons/purchase/company_view.xml +++ b/addons/purchase/company_view.xml @@ -5,7 +5,6 @@ <record id="mrp_company" model="ir.ui.view"> <field name="name">res.company.mrp.config</field> <field name="model">res.company</field> - <field name="type">form</field> <field name="priority">19</field> <field name="inherit_id" ref="base.view_company_form"/> <field name="arch" type="xml"> diff --git a/addons/purchase/edi/purchase_order_action_data.xml b/addons/purchase/edi/purchase_order_action_data.xml index 70d402de598..b97da91fa1d 100644 --- a/addons/purchase/edi/purchase_order_action_data.xml +++ b/addons/purchase/edi/purchase_order_action_data.xml @@ -38,7 +38,7 @@ <!--Email template --> <record id="email_template_edi_purchase" model="email.template"> <field name="name">Automated Purchase Order Notification Mail</field> - <field name="email_from">${object.validator.user_email or ''}</field> + <field name="email_from">${object.validator.email or ''}</field> <field name="subject">${object.company_id.name} Order (Ref ${object.name or 'n/a' })</field> <field name="email_to">${object.partner_id.email}</field> <field name="model_id" ref="purchase.model_purchase_order"/> @@ -61,7 +61,7 @@ % if object.partner_ref: Your reference: ${object.partner_ref}<br /> % endif - Your contact: <a href="mailto:${object.validator.user_email or ''}?subject=Order%20${object.name}">${object.validator.name}</a> + Your contact: <a href="mailto:${object.validator.email or ''}?subject=Order%20${object.name}">${object.validator.name}</a> </p> <p> @@ -121,7 +121,7 @@ Here is a ${object.state in ('draft', 'sent') and 'request for quotation' or 'pu % if object.partner_ref: | Your reference: ${object.partner_ref}<br /> % endif - | Your contact: ${object.validator.name} ${object.validator.user_email and '<%s>'%(object.validator.user_email) or ''} + | Your contact: ${object.validator.name} ${object.validator.email and '<%s>'%(object.validator.email) or ''} You can view the ${object.state in ('draft', 'sent') and 'request for quotation' or 'order confirmation'} and download it using the following link: ${ctx.get('edi_web_url_view') or 'n/a'} @@ -132,7 +132,7 @@ Thank you! -- -${object.validator.name} ${object.validator.user_email and '<%s>'%(object.validator.user_email) or ''} +${object.validator.name} ${object.validator.email and '<%s>'%(object.validator.email) or ''} ${object.company_id.name} % if object.company_id.street: ${object.company_id.street or ''} diff --git a/addons/purchase/partner_view.xml b/addons/purchase/partner_view.xml index 7cd0a790e17..da1f841ba9e 100644 --- a/addons/purchase/partner_view.xml +++ b/addons/purchase/partner_view.xml @@ -4,7 +4,6 @@ <record id="view_partner_property_form" model="ir.ui.view"> <field name="name">res.partner.purchase.property.form.inherit</field> <field name="model">res.partner</field> - <field name="type">form</field> <field name="inherit_id" ref="base.view_partner_form"/> <field name="priority">36</field> <field name="arch" type="xml"> @@ -34,7 +33,6 @@ <record model="ir.ui.view" id="purchase_partner_kanban_view"> <field name="name">res.partner.kanban.purchaseorder.inherit</field> <field name="model">res.partner</field> - <field name="type">kanban</field> <field name="inherit_id" ref="base.res_partner_kanban_view"/> <field name="arch" type="xml"> <field name="mobile" position="after"> @@ -67,7 +65,6 @@ <record id="res_partner_view_purchase_buttons" model="ir.ui.view"> <field name="name">res.partner.view.purchase.buttons</field> <field name="model">res.partner</field> - <field name="type">form</field> <field name="inherit_id" ref="base.view_partner_form" /> <field name="priority" eval="20"/> <field name="arch" type="xml"> diff --git a/addons/purchase/purchase.py b/addons/purchase/purchase.py index b02e959301f..756016d39e2 100644 --- a/addons/purchase/purchase.py +++ b/addons/purchase/purchase.py @@ -143,7 +143,6 @@ class purchase_order(osv.osv): STATE_SELECTION = [ ('draft', 'Draft PO'), - ('wait', 'Waiting'), ('sent', 'RFQ Sent'), ('confirmed', 'Waiting Approval'), ('approved', 'Purchase Order'), @@ -190,15 +189,15 @@ class purchase_order(osv.osv): 'purchase.order.line': (_get_order, ['date_planned'], 10), } ), - 'amount_untaxed': fields.function(_amount_all, digits_compute= dp.get_precision('Purchase Price'), string='Untaxed Amount', + 'amount_untaxed': fields.function(_amount_all, digits_compute= dp.get_precision('Account'), string='Untaxed Amount', store={ 'purchase.order.line': (_get_order, None, 10), }, multi="sums", help="The amount without tax"), - 'amount_tax': fields.function(_amount_all, digits_compute= dp.get_precision('Purchase Price'), string='Taxes', + 'amount_tax': fields.function(_amount_all, digits_compute= dp.get_precision('Account'), string='Taxes', store={ 'purchase.order.line': (_get_order, None, 10), }, multi="sums", help="The tax amount"), - 'amount_total': fields.function(_amount_all, digits_compute= dp.get_precision('Purchase Price'), string='Total', + 'amount_total': fields.function(_amount_all, digits_compute= dp.get_precision('Account'), string='Total', store={ 'purchase.order.line': (_get_order, None, 10), }, multi="sums",help="The total amount"), @@ -739,12 +738,16 @@ class purchase_order(osv.osv): result[obj.id].append(obj.validator.id) return result + def message_get_monitored_follower_fields(self, cr, uid, ids, context=None): + """ Add 'validator' to the monitored fields """ + res = super(purchase_order, self).message_get_monitored_follower_fields(cr, uid, ids, context=context) + return res + ['validator'] + def create_send_note(self, cr, uid, ids, context=None): return self.message_append_note(cr, uid, ids, body=_("Request for quotation <b>created</b>."), context=context) def confirm_send_note(self, cr, uid, ids, context=None): for obj in self.browse(cr, uid, ids, context=context): - self.message_subscribe(cr, uid, [obj.id], [obj.validator.id], context=context) self.message_append_note(cr, uid, [obj.id], body=_("Quotation for <em>%s</em> <b>converted</b> to a Purchase Order of %s %s.") % (obj.partner_id.name, obj.amount_total, obj.pricelist_id.currency_id.symbol), context=context) def shipment_send_note(self, cr, uid, ids, picking_id, context=None): @@ -804,8 +807,8 @@ class purchase_order_line(osv.osv): 'product_id': fields.many2one('product.product', 'Product', domain=[('purchase_ok','=',True)], change_default=True), 'move_ids': fields.one2many('stock.move', 'purchase_line_id', 'Reservation', readonly=True, ondelete='set null'), 'move_dest_id': fields.many2one('stock.move', 'Reservation Destination', ondelete='set null'), - 'price_unit': fields.float('Unit Price', required=True, digits_compute= dp.get_precision('Purchase Price')), - 'price_subtotal': fields.function(_amount_line, string='Subtotal', digits_compute= dp.get_precision('Purchase Price')), + 'price_unit': fields.float('Unit Price', required=True, digits_compute= dp.get_precision('Product Price')), + 'price_subtotal': fields.function(_amount_line, string='Subtotal', digits_compute= dp.get_precision('Account')), 'order_id': fields.many2one('purchase.order', 'Order Reference', select=True, required=True, ondelete='cascade'), 'account_analytic_id':fields.many2one('account.analytic.account', 'Analytic Account',), 'company_id': fields.related('order_id','company_id',type='many2one',relation='res.company',string='Company', store=True, readonly=True), diff --git a/addons/purchase/purchase_view.xml b/addons/purchase/purchase_view.xml index 47216a11cac..d2fbba68866 100644 --- a/addons/purchase/purchase_view.xml +++ b/addons/purchase/purchase_view.xml @@ -151,7 +151,6 @@ <record model="ir.ui.view" id="purchase_order_calendar"> <field name="name">purchase.order.calendar</field> <field name="model">purchase.order</field> - <field name="type">calendar</field> <field name="priority" eval="2"/> <field name="arch" type="xml"> <calendar string="Calendar View" date_start="minimum_planned_date" color="partner_id"> @@ -164,7 +163,6 @@ <record model="ir.ui.view" id="purchase_order_graph"> <field name="name">purchase.order.graph</field> <field name="model">purchase.order</field> - <field name="type">graph</field> <field name="arch" type="xml"> <graph string="Purchase Order" type="bar"> <field name="partner_id"/> @@ -176,23 +174,21 @@ <record id="purchase_order_form" model="ir.ui.view"> <field name="name">purchase.order.form</field> <field name="model">purchase.order</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Purchase Order" version="7.0"> <header> <button name="purchase_confirm" states="draft,sent" string="Confirm Quotation" class="oe_highlight"/> <button name="wkf_send_rfq" states="draft" string="Send RFQ" type="object" context="{'send_rfq':True}"/> <button name="wkf_send_rfq" states="confirmed" string="Resend Purchase Order" type="object" class="oe_highlight"/> - <button name="action_cancel" states="except_picking,except_invoice,wait" string="Cancel" type="object" /> + <button name="action_cancel" states="except_picking,except_invoice" string="Cancel" type="object" /> <button name="picking_ok" states="except_picking" string="Manually Corrected"/> <button name="invoice_ok" states="except_invoice" string="Manually Corrected"/> - <button name="purchase_appbuyer" states="wait_auth" string="Approve Purchase" class="oe_highlight"/> <button name="purchase_approve" states="confirmed" string="Approve Order" class="oe_highlight"/> <button name="view_invoice" string="Receive Invoice" type="object" attrs="{'invisible': ['|', ('invoice_method','=','picking'), '|', ('state','!=', 'approved'), ('invoiced','=',True) ]}" class="oe_highlight"/> <button name="view_picking" string="Receive Products" type="object" attrs="{'invisible': ['|', ('shipped','=',True), ('state','!=', 'approved')]}" class="oe_highlight"/> <button name="action_cancel_draft" states="cancel,sent,confirmed" string="Set to Draft" type="object" /> - <button name="purchase_cancel" states="draft,confirmed,wait_auth,sent" string="Cancel"/> - <field name="state" widget="statusbar" statusbar_visible="draft,approved,done" statusbar_colors='{"except_picking":"red","except_invoice":"red","confirmed":"blue","wait":"blue"}' readonly="1"/> + <button name="purchase_cancel" states="draft,confirmed,sent" string="Cancel"/> + <field name="state" widget="statusbar" statusbar_visible="draft,approved,done" statusbar_colors='{"except_picking":"red","except_invoice":"red","confirmed":"blue"}' readonly="1"/> </header> <sheet> <div class="oe_title"> @@ -265,6 +261,7 @@ </sheet> <div class="oe_chatter"> <field name="message_ids" widget="mail_thread"/> + <field name="message_follower_ids" widget="mail_followers"/> </div> </form> </field> @@ -273,7 +270,6 @@ <record id="view_request_for_quotation_filter" model="ir.ui.view"> <field name="name">request.quotation.select</field> <field name="model">purchase.order</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Search Purchase Order"> <field name="name" string="Reference"/> @@ -299,7 +295,6 @@ <record id="view_purchase_order_filter" model="ir.ui.view"> <field name="name">purchase.order.list.select</field> <field name="model">purchase.order</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Search Purchase Order"> <field name="name" string="Reference"/> @@ -327,9 +322,8 @@ <record id="purchase_order_tree" model="ir.ui.view"> <field name="name">purchase.order.tree</field> <field name="model">purchase.order</field> - <field name="type">tree</field> <field name="arch" type="xml"> - <tree fonts="bold:needaction_pending==True" colors="grey:state=='cancel';blue:state in ('wait','confirmed');red:state in ('except_invoice','except_picking')" string="Purchase Order"> + <tree fonts="bold:needaction_pending==True" colors="grey:state=='cancel';blue:state in (confirmed');red:state in ('except_invoice','except_picking')" string="Purchase Order"> <field name="needaction_pending" invisible="1"/> <field name="name" string="Reference"/> <field name="date_order" /> @@ -391,7 +385,6 @@ <record id="purchase_order_line_form" model="ir.ui.view"> <field name="name">purchase.order.line.form</field> <field name="model">purchase.order.line</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Purchase Order Line" version="7.0"> <sheet> @@ -428,7 +421,6 @@ <record id="purchase_order_line_tree" model="ir.ui.view"> <field name="name">purchase.order.line.tree</field> <field name="model">purchase.order.line</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Purchase Order Lines"> <field name="order_id"/> @@ -448,7 +440,6 @@ <record id="purchase_order_line_form2" model="ir.ui.view"> <field name="name">purchase.order.line.form2</field> <field name="model">purchase.order.line</field> - <field name="type">form</field> <field name="priority" eval="20"/> <field name="arch" type="xml"> <form string="Purchase Order Line" version="7.0"> @@ -492,7 +483,6 @@ <record id="purchase_order_line_search" model="ir.ui.view"> <field name="name">purchase.order.line.search</field> <field name="model">purchase.order.line</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Search Purchase Order"> <field name="order_id"/> @@ -558,7 +548,6 @@ <field name="name">procurement.order.form.inherit</field> <field name="model">procurement.order</field> <field name="inherit_id" ref="procurement.procurement_form_view"/> - <field name="type">form</field> <field name="arch" type="xml"> <xpath expr="//field[@name='close_move']" position="before"> <field name="purchase_id"/> diff --git a/addons/purchase/report/order.rml b/addons/purchase/report/order.rml index f92dbd8a48a..dedee77e8a1 100644 --- a/addons/purchase/report/order.rml +++ b/addons/purchase/report/order.rml @@ -274,10 +274,10 @@ <para style="terp_default_Right_9">[[ formatLang(line.product_qty ) ]] [[ line.product_uom.name ]] </para> </td> <td> - <para style="terp_default_Right_9">[[ formatLang(line.price_unit, digits=get_digits(dp='Purchase Price') ) ]]</para> + <para style="terp_default_Right_9">[[ formatLang(line.price_unit, digits=get_digits(dp='Product Price') ) ]]</para> </td> <td> - <para style="terp_default_Right_9">[[ formatLang(line.price_subtotal, digits=get_digits(dp='Purchase Price'), currency_obj=o.pricelist_id.currency_id ) ]]</para> + <para style="terp_default_Right_9">[[ formatLang(line.price_subtotal, digits=get_digits(dp='Account'), currency_obj=o.pricelist_id.currency_id ) ]]</para> </td> </tr> </blockTable> @@ -293,7 +293,7 @@ <para style="terp_default_9">Net Total :</para> </td> <td> - <para style="terp_default_Right_9">[[ formatLang(o.amount_untaxed, digits=get_digits(dp='Purchase Price'), currency_obj=o.pricelist_id.currency_id ) ]]</para> + <para style="terp_default_Right_9">[[ formatLang(o.amount_untaxed, digits=get_digits(dp='Account'), currency_obj=o.pricelist_id.currency_id ) ]]</para> </td> </tr> <tr> @@ -306,7 +306,7 @@ <para style="terp_default_9">Taxes :</para> </td> <td> - <para style="terp_default_Right_9">[[ formatLang(o.amount_tax, dp='Purchase Price', currency_obj=o.pricelist_id.currency_id) ]]</para> + <para style="terp_default_Right_9">[[ formatLang(o.amount_tax, dp='Account', currency_obj=o.pricelist_id.currency_id) ]]</para> </td> </tr> <tr> @@ -319,7 +319,7 @@ <para style="terp_default_Bold_9">Total :</para> </td> <td> - <para style="terp_default_Bold_9_Right">[[ formatLang(o.amount_total, digits=get_digits(dp='Purchase Price') , currency_obj=o.pricelist_id.currency_id) ]]</para> + <para style="terp_default_Bold_9_Right">[[ formatLang(o.amount_total, digits=get_digits(dp='Account') , currency_obj=o.pricelist_id.currency_id) ]]</para> </td> </tr> </blockTable> diff --git a/addons/purchase/report/purchase_report.py b/addons/purchase/report/purchase_report.py index f7d73bfb739..4ab6251c7a2 100644 --- a/addons/purchase/report/purchase_report.py +++ b/addons/purchase/report/purchase_report.py @@ -35,7 +35,6 @@ class purchase_report(osv.osv): 'name': fields.char('Year',size=64,required=False, readonly=True), 'day': fields.char('Day', size=128, readonly=True), 'state': fields.selection([('draft', 'Request for Quotation'), - ('wait', 'Waiting'), ('confirmed', 'Waiting Supplier Ack'), ('approved', 'Approved'), ('except_picking', 'Shipping Exception'), diff --git a/addons/purchase/report/purchase_report_view.xml b/addons/purchase/report/purchase_report_view.xml index aa915c620f5..842de65b68e 100644 --- a/addons/purchase/report/purchase_report_view.xml +++ b/addons/purchase/report/purchase_report_view.xml @@ -4,7 +4,6 @@ <record model="ir.ui.view" id="view_purchase_order_graph"> <field name="name">product.month.graph</field> <field name="model">purchase.report</field> - <field name="type">graph</field> <field name="arch" type="xml"> <graph string="Purchase Orders Statistics" type="bar"> <field name="product_id"/> @@ -16,7 +15,6 @@ <record id="view_purchase_order_tree" model="ir.ui.view"> <field name="name">purchase.order.tree</field> <field name="model">purchase.report</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Purchase Orders Statistics"> <field name="date" invisible="1"/> @@ -50,7 +48,6 @@ <record id="view_purchase_order_search" model="ir.ui.view"> <field name="name">report.purchase.order.search</field> <field name="model">purchase.report</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Purchase Orders"> <filter icon="terp-document-new" string="Quotations" name="quotes" domain="[('state','=','draft')]"/> @@ -92,7 +89,6 @@ <record model="ir.ui.view" id="view_purchase_order_qty_amount_graph"> <field name="name">purchase.order.qty.amount.graph</field> <field name="model">purchase.report</field> - <field name="type">graph</field> <field name="arch" type="xml"> <graph string="Total Qty and Amount by month" type="bar"> <field name="month"/> @@ -105,7 +101,6 @@ <record model="ir.ui.view" id="view_purchase_order_by_user_graph"> <field name="name">purchase.order.by.user.graph</field> <field name="model">purchase.report</field> - <field name="type">graph</field> <field name="arch" type="xml"> <graph string="Total Orders Lines by User per month" orientation="vertical" type="bar"> <field name="month" /> diff --git a/addons/purchase/res_config.py b/addons/purchase/res_config.py index 4acbfaa49c4..6beac5a4cd0 100644 --- a/addons/purchase/res_config.py +++ b/addons/purchase/res_config.py @@ -59,21 +59,12 @@ class purchase_config_settings(osv.osv_memory): help="""Purchase Requisitions are used when you want to request quotations from several suppliers for a given set of products. You can configure per product if you directly do a Request for Quotation to one supplier or if you want a purchase requisition to negotiate with several suppliers."""), - 'decimal_precision': fields.integer('specify decimal precision on price',help="As an example, a decimal precision of 2 will allow prices like: 9.99 EUR, whereas a decimal precision of 4 will allow prices like: 0.0231 EUR per unit."), } _defaults = { 'default_invoice_method': 'manual', } - def get_default_dp(self, cr, uid, fields, context=None): - dp = self.pool.get('ir.model.data').get_object(cr,uid, 'product','decimal_purchase') - return {'decimal_precision': dp.digits} - - def set_default_dp(self, cr, uid, ids, context=None): - config = self.browse(cr, uid, ids[0], context) - dp = self.pool.get('ir.model.data').get_object(cr,uid, 'product','decimal_purchase') - dp.write({'digits': config.decimal_precision}) diff --git a/addons/purchase/res_config_view.xml b/addons/purchase/res_config_view.xml index 3682c9eefee..23d89f1a7f1 100644 --- a/addons/purchase/res_config_view.xml +++ b/addons/purchase/res_config_view.xml @@ -17,7 +17,6 @@ <record id="view_purchase_configuration" model="ir.ui.view"> <field name="name">purchase settings</field> <field name="model">purchase.config.settings</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Configure Purchases" class="oe_form_configuration" version="7.0"> <header> @@ -33,10 +32,6 @@ <label for="default_invoice_method"/> <field name="default_invoice_method" class="oe_inline"/> </div> - <div> - <label for="decimal_precision"/> - <field name="decimal_precision" class="oe_inline"/> - </div> </div> </group> <separator string="Purchase Order"/> @@ -96,7 +91,6 @@ <record id="view_account_config" model="ir.ui.view"> <field name="name">account settings</field> <field name="model">account.config.settings</field> - <field name="type">form</field> <field name="inherit_id" ref="account.view_account_config_settings"/> <field name="priority" eval="18"/> <field name="arch" type="xml"> diff --git a/addons/purchase/stock_view.xml b/addons/purchase/stock_view.xml index ffb09b669ae..ad1c26a84c1 100644 --- a/addons/purchase/stock_view.xml +++ b/addons/purchase/stock_view.xml @@ -4,7 +4,6 @@ <record id="stock_move_purchase" model="ir.ui.view"> <field name="name">stock.move.form</field> <field name="model">stock.move</field> - <field name="type">form</field> <field name="inherit_id" ref="stock.view_move_form"/> <field name="arch" type="xml"> <xpath expr="//group[@name='destination_grp']" position="inside"> @@ -15,7 +14,6 @@ <record id="stock_picking_inherit_purchase" model="ir.ui.view"> <field name="name">Picking list</field> <field name="model">stock.picking</field> - <field name="type">form</field> <field name="inherit_id" ref="stock.view_picking_form"/> <field name="arch" type="xml"> <field name="auto_picking" position="after"> @@ -27,7 +25,6 @@ <record id="stock_picking_in_inherit_purchase" model="ir.ui.view"> <field name="name">Incoming Picking Inherited</field> <field name="model">stock.picking.in</field> - <field name="type">form</field> <field name="inherit_id" ref="stock.view_picking_form"/> <field name="arch" type="xml"> <xpath expr="//field[@name='date']" position="before"> @@ -43,7 +40,6 @@ <record id="view_picking_in_search_picking_to_invoice" model="ir.ui.view"> <field name="name">stock.picking.in.search</field> <field name="model">stock.picking.in</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Picking to Invoice"> <field name="name" string="Picking to Invoice" filter_domain="['|',('name','ilike',self),('origin','ilike',self)]"/> @@ -100,7 +96,6 @@ <record id="purchase_order_2_stock_picking" model="ir.ui.view"> <field name="name">Purchase Picking Inherited</field> <field name="model">purchase.order</field> - <field name="type">form</field> <field name="inherit_id" ref="purchase.purchase_order_form"/> <field name="arch" type="xml"> <xpath expr="//div[contains(@class, 'oe_title')]" position="before"> diff --git a/addons/purchase/wizard/purchase_line_invoice_view.xml b/addons/purchase/wizard/purchase_line_invoice_view.xml index c15c8e4fe09..3093ec5a95a 100644 --- a/addons/purchase/wizard/purchase_line_invoice_view.xml +++ b/addons/purchase/wizard/purchase_line_invoice_view.xml @@ -7,7 +7,6 @@ <record id="view_purchase_line_invoice" model="ir.ui.view"> <field name="name">Create invoices</field> <field name="model">purchase.order.line_invoice</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Select an Open Sale Order" version="7.0"> <group> diff --git a/addons/purchase/wizard/purchase_order_group_view.xml b/addons/purchase/wizard/purchase_order_group_view.xml index 17b1f7eea5f..46aecf76244 100644 --- a/addons/purchase/wizard/purchase_order_group_view.xml +++ b/addons/purchase/wizard/purchase_order_group_view.xml @@ -4,7 +4,6 @@ <record id="view_purchase_order_group" model="ir.ui.view"> <field name="name">Merger Purchase Orders</field> <field name="model">purchase.order.group</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Merge orders" version="7.0"> <group> diff --git a/addons/purchase_analytic_plans/purchase_analytic_plans_view.xml b/addons/purchase_analytic_plans/purchase_analytic_plans_view.xml index 498ceb2bd0a..d224b9800f7 100644 --- a/addons/purchase_analytic_plans/purchase_analytic_plans_view.xml +++ b/addons/purchase_analytic_plans/purchase_analytic_plans_view.xml @@ -5,7 +5,6 @@ <record model="ir.ui.view" id="purchase_order_line_form_inherit"> <field name="name">purchase.order.line.form.inherit</field> <field name="model">purchase.order.line</field> - <field name="type">form</field> <field name="inherit_id" ref="purchase.purchase_order_line_form"/> <field name="arch" type="xml"> <field name="account_analytic_id" position="replace"> diff --git a/addons/purchase_double_validation/board_purchase_view.xml b/addons/purchase_double_validation/board_purchase_view.xml index d093dcc6937..0557963fcb1 100644 --- a/addons/purchase_double_validation/board_purchase_view.xml +++ b/addons/purchase_double_validation/board_purchase_view.xml @@ -14,7 +14,6 @@ <record id="board_purchase_form2" model="ir.ui.view"> <field name="name">board.purchase.form</field> <field name="model">board.board</field> - <field name="type">form</field> <field name="inherit_id" ref="purchase.board_purchase_form"/> <field name="arch" type="xml"> <xpath expr="/form/board/column/action[@string='Request for Quotations']" position="after"> diff --git a/addons/purchase_double_validation/purchase_double_validation_installer.xml b/addons/purchase_double_validation/purchase_double_validation_installer.xml index efba6bf9d76..5ad03705035 100644 --- a/addons/purchase_double_validation/purchase_double_validation_installer.xml +++ b/addons/purchase_double_validation/purchase_double_validation_installer.xml @@ -5,7 +5,6 @@ <record id="view_double_purchase_configuration" model="ir.ui.view"> <field name="name">Purchase Application</field> <field name="model">purchase.config.settings</field> - <field name="type">form</field> <field name="inherit_id" ref="purchase.view_purchase_configuration"/> <field name="arch" type="xml"> <div name="module_purchase_double_validation" position="inside"> diff --git a/addons/purchase_double_validation/purchase_double_validation_view.xml b/addons/purchase_double_validation/purchase_double_validation_view.xml index e6b255e3245..8a22c3be868 100644 --- a/addons/purchase_double_validation/purchase_double_validation_view.xml +++ b/addons/purchase_double_validation/purchase_double_validation_view.xml @@ -3,7 +3,6 @@ <data> <record model="ir.ui.view" id="purchase_order_search_inherit"> <field name="name">purchase.order.list.select.inherit</field> - <field name="type">form</field> <field name="model">purchase.order</field> <field name="inherit_id" ref="purchase.view_purchase_order_filter"/> <field name="arch" type="xml"> diff --git a/addons/purchase_requisition/purchase_requisition.py b/addons/purchase_requisition/purchase_requisition.py index 9d9350e3257..cf0294730a7 100644 --- a/addons/purchase_requisition/purchase_requisition.py +++ b/addons/purchase_requisition/purchase_requisition.py @@ -69,7 +69,7 @@ class purchase_requisition(osv.osv): purchase_order_obj = self.pool.get('purchase.order') for purchase in self.browse(cr, uid, ids, context=context): for purchase_id in purchase.purchase_ids: - if str(purchase_id.state) in('draft','wait'): + if str(purchase_id.state) in('draft'): purchase_order_obj.action_cancel(cr,uid,[purchase_id.id]) self.write(cr, uid, ids, {'state': 'cancel'}) self.cancel_send_note(cr, uid, ids, context=context) diff --git a/addons/purchase_requisition/purchase_requisition_view.xml b/addons/purchase_requisition/purchase_requisition_view.xml index 797494e9442..188f81b6cbe 100644 --- a/addons/purchase_requisition/purchase_requisition_view.xml +++ b/addons/purchase_requisition/purchase_requisition_view.xml @@ -4,7 +4,6 @@ <record model="ir.ui.view" id="purchase_order_form_inherit"> <field name="name">purchase.order.form.inherit</field> - <field name="type">form</field> <field name="model">purchase.order</field> <field name="inherit_id" ref="purchase.purchase_order_form"/> <field name="arch" type="xml"> @@ -16,7 +15,6 @@ <record model="ir.ui.view" id="purchase_order_search_inherit"> <field name="name">purchase.order.list.select.inherit</field> - <field name="type">form</field> <field name="model">purchase.order</field> <field name="inherit_id" ref="purchase.view_purchase_order_filter"/> <field name="arch" type="xml"> @@ -28,7 +26,6 @@ <record model="ir.ui.view" id="view_purchase_requisition_form"> <field name="name">purchase.requisition.form</field> - <field name="type">form</field> <field name="model">purchase.requisition</field> <field name="arch" type="xml"> <form string="Purchase Requisition" version="7.0"> @@ -106,13 +103,13 @@ </sheet> <div class="oe_chatter"> <field name="message_ids" widget="mail_thread"/> + <field name="message_follower_ids" widget="mail_followers"/> </div> </form> </field> </record> <record model="ir.ui.view" id="view_purchase_requisition_tree"> <field name="name">purchase.requisition.tree</field> - <field name="type">tree</field> <field name="model">purchase.requisition</field> <field name="arch" type="xml"> <tree fonts="bold:needaction_pending==True" colors="grey:state == 'cancel';red:date_end and date_end<current_date;black:date_end>current_date;" string="Purchase Requisition"> @@ -131,7 +128,6 @@ <record id="view_purchase_requisition_filter" model="ir.ui.view"> <field name="name">purchase.requisition.list.select</field> <field name="model">purchase.requisition</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Search Purchase Requisition"> <field name="name" string="Purchase Requisition"/> @@ -183,7 +179,6 @@ <record model="ir.ui.view" id="product_normal_form_view_inherit"> <field name="name">product.form.inherit</field> - <field name="type">form</field> <field name="model">product.product</field> <field name="inherit_id" ref="product.product_normal_form_view"/> <field name="arch" type="xml"> @@ -197,7 +192,6 @@ <record model="ir.ui.view" id="procurement_normal_form_view_inherit"> <field name="name">procurement.form.inherit</field> - <field name="type">form</field> <field name="model">procurement.order</field> <field name="inherit_id" ref="procurement.procurement_form_view"/> <field name="arch" type="xml"> diff --git a/addons/purchase_requisition/wizard/purchase_requisition_partner_view.xml b/addons/purchase_requisition/wizard/purchase_requisition_partner_view.xml index aab257827c2..9e8c0893d30 100644 --- a/addons/purchase_requisition/wizard/purchase_requisition_partner_view.xml +++ b/addons/purchase_requisition/wizard/purchase_requisition_partner_view.xml @@ -4,7 +4,6 @@ <record id="view_purchase_requisition_partner" model="ir.ui.view"> <field name="name">Purchase Requisition</field> <field name="model">purchase.requisition.partner</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Purchase Requisition" version="7.0"> <group> diff --git a/addons/report_intrastat/report_intrastat_view.xml b/addons/report_intrastat/report_intrastat_view.xml index 73cf99bec34..4f02c8f8c75 100644 --- a/addons/report_intrastat/report_intrastat_view.xml +++ b/addons/report_intrastat/report_intrastat_view.xml @@ -40,7 +40,6 @@ <record id="view_report_intrastat_code_tree" model="ir.ui.view"> <field name="name">report.intrastat.code.tree</field> <field name="model">report.intrastat.code</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Intrastat code"> <field name="name"/> @@ -51,7 +50,6 @@ <record id="view_report_intrastat_code_form" model="ir.ui.view"> <field name="name">report.intrastat.code.form</field> <field name="model">report.intrastat.code</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Intrastat Code" version="7.0"> <group> @@ -76,7 +74,6 @@ <record id="view_report_intrastat_tree" model="ir.ui.view"> <field name="name">report.intrastat.view</field> <field name="model">report.intrastat</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Intrastat Data"> <field name="name" /> @@ -96,7 +93,6 @@ <record id="view_report_intrastat_search" model="ir.ui.view"> <field name="name">report.intrastat.search</field> <field name="model">report.intrastat</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Intrastat Data"> <field name="name" filter_domain="['|', ('name','ilike',self), ('code','ilike',self)]" string="Intrastat Data"/> diff --git a/addons/report_webkit/company_view.xml b/addons/report_webkit/company_view.xml index 04c21037e8e..bfbf2b2d79b 100644 --- a/addons/report_webkit/company_view.xml +++ b/addons/report_webkit/company_view.xml @@ -4,7 +4,6 @@ <field name="name">res.company.form.inherit</field> <field name="model">res.company</field> <field name="inherit_id" ref="base.view_company_form"/> - <field name="type">form</field> <field name="arch" type="xml"> <notebook position="inside"> <page string="Webkit"> diff --git a/addons/report_webkit/header_view.xml b/addons/report_webkit/header_view.xml index 0a052b8de20..30407f89385 100644 --- a/addons/report_webkit/header_view.xml +++ b/addons/report_webkit/header_view.xml @@ -3,9 +3,8 @@ <record model="ir.ui.view" id="header_img"> <field name="name">res.company.header.img</field> <field name="model">ir.header_img</field> - <field name="type">form</field> <field name="arch" type="xml"> - <form version="7.0"> + <form string="Header Image" version="7.0"> <group> <field name="name"/> <field name="type"/> @@ -19,9 +18,8 @@ <record model="ir.ui.view" id="header_webkit"> <field name="name">res.company.header.html</field> <field name="model">ir.header_webkit</field> - <field name="type">form</field> <field name="arch" type="xml"> - <form version="7.0"> + <form string="HTML Header" version="7.0"> <group> <group> <field name="name"/> diff --git a/addons/report_webkit/ir_report_view.xml b/addons/report_webkit/ir_report_view.xml index fed94c92d70..e9f9ebd2234 100644 --- a/addons/report_webkit/ir_report_view.xml +++ b/addons/report_webkit/ir_report_view.xml @@ -4,7 +4,6 @@ <field name="name">ir.actions.report.xml.inherit</field> <field name="model">ir.actions.report.xml</field> <field name="inherit_id" ref="base.act_report_xml_view"/> - <field name="type">form</field> <field name="arch" type="xml"> <xpath expr="//page[@string='Security']" position="before" > <page string="Webkit" attrs="{'invisible':[('report_type','!=','webkit')]}"> diff --git a/addons/report_webkit/wizard/report_webkit_actions_view.xml b/addons/report_webkit/wizard/report_webkit_actions_view.xml index 3d4b5bce6bb..f4ae735916e 100644 --- a/addons/report_webkit/wizard/report_webkit_actions_view.xml +++ b/addons/report_webkit/wizard/report_webkit_actions_view.xml @@ -5,7 +5,6 @@ <record model="ir.ui.view" id="view_report_webkit_actions"> <field name="name">Report Webkit actions wizard</field> <field name="model">report.webkit.actions</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Add Print Buttons" col="4" version="7.0"> <group> diff --git a/addons/resource/resource_view.xml b/addons/resource/resource_view.xml index 5b388469f3c..58f7789dc07 100644 --- a/addons/resource/resource_view.xml +++ b/addons/resource/resource_view.xml @@ -7,7 +7,6 @@ <record id="view_resource_resource_search" model="ir.ui.view"> <field name="name">resource.resource.search</field> <field name="model">resource.resource</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Search Resource"> <field name="name" string="Resource"/> @@ -28,7 +27,6 @@ <record id="view_resource_calendar_search" model="ir.ui.view"> <field name="name">resource.calendar.search</field> <field name="model">resource.calendar</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Search Working Time"> <field name="name" string="Working Time"/> @@ -41,7 +39,6 @@ <record id="view_resource_calendar_leaves_search" model="ir.ui.view"> <field name="name">resource.calendar.leaves.search</field> <field name="model">resource.calendar.leaves</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Search Working Period Leaves"> <field name="name" string="Reason"/> @@ -60,7 +57,6 @@ <record id="resource_calendar_form" model="ir.ui.view"> <field name="name">resource.calendar.form</field> <field name="model">resource.calendar</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Working Time" version="7.0"> <sheet> @@ -78,7 +74,6 @@ <record id="view_resource_calendar_tree" model="ir.ui.view"> <field name="name">resource.calendar.tree</field> <field name="model">resource.calendar</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Working Time"> <field name="name"/> @@ -101,7 +96,6 @@ <record id="view_resource_calendar_attendance_tree" model="ir.ui.view"> <field name="name">resource.calendar.attendance.tree</field> <field name="model">resource.calendar.attendance</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Working Time" editable="top"> <field name="name"/> @@ -116,7 +110,6 @@ <record id="view_resource_calendar_attendance_form" model="ir.ui.view"> <field name="name">resource.calendar.attendance.form</field> <field name="model">resource.calendar.attendance</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Working Time" version="7.0"> <group> @@ -135,7 +128,6 @@ <record id="view_resource_calendar" model="ir.ui.view"> <field name="name">resource.calendar.leaves.calendar</field> <field name="model">resource.calendar.leaves</field> - <field name="type">calendar</field> <field name="arch" type="xml"> <calendar color="resource_id" date_start="date_from" date_stop="date_to" string="Resource"> <field name="name"/> @@ -164,7 +156,6 @@ <record id="resource_resource_form" model="ir.ui.view"> <field name="name">resource.resource.form</field> <field name="model">resource.resource</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Resource" version="7.0"> <group> @@ -187,7 +178,6 @@ <record id="resource_resource_tree" model="ir.ui.view"> <field name="name">resource.resource.tree</field> <field name="model">resource.resource</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Resources"> <field name="name" /> @@ -212,7 +202,6 @@ <record id="resource_calendar_leave_form" model="ir.ui.view"> <field name="name">resource.calendar.leaves.form</field> <field name="model">resource.calendar.leaves</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Leave Detail" version="7.0"> <group> @@ -241,7 +230,6 @@ <record id="resource_calendar_leave_tree" model="ir.ui.view"> <field name="name">resource.calendar.leaves.tree</field> <field name="model">resource.calendar.leaves</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Leave Detail"> <field name="name" string="Reason"/> diff --git a/addons/sale/board_sale_view.xml b/addons/sale/board_sale_view.xml index c989beba2d4..702bc0c61cc 100644 --- a/addons/sale/board_sale_view.xml +++ b/addons/sale/board_sale_view.xml @@ -14,7 +14,6 @@ <record id="view_turnover_by_month_tree" model="ir.ui.view"> <field name="name">turnover.by.month.tree</field> <field name="model">account.invoice.report</field> - <field name="type">tree</field> <field name="priority" eval="32"/> <field name="arch" type="xml"> <tree string="Monthly Turnover"> @@ -27,7 +26,6 @@ <field name="name">turnover.by.month.graph</field> <field name="model">account.invoice.report</field> <field name="priority" eval="32"/> - <field name="type">graph</field> <field name="arch" type="xml"> <graph string="Monthly Turnover" type="bar"> <field name="month"/> @@ -49,7 +47,6 @@ <record id="board_sales_form" model="ir.ui.view"> <field name="name">board.sales.form</field> <field name="model">board.board</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Sales Dashboard" version="7.0"> <board style="2-1"> diff --git a/addons/sale/company_view.xml b/addons/sale/company_view.xml index fd4289a5bf6..032c264ebd6 100644 --- a/addons/sale/company_view.xml +++ b/addons/sale/company_view.xml @@ -4,7 +4,6 @@ <record id="mrp_company" model="ir.ui.view"> <field name="name">res.company.mrp.config</field> <field name="model">res.company</field> - <field name="type">form</field> <field name="priority">24</field> <field name="inherit_id" ref="base.view_company_form"/> <field name="arch" type="xml"> diff --git a/addons/sale/edi/sale_order_action_data.xml b/addons/sale/edi/sale_order_action_data.xml index 2fe0a8cbfd3..181bd8183d7 100644 --- a/addons/sale/edi/sale_order_action_data.xml +++ b/addons/sale/edi/sale_order_action_data.xml @@ -37,7 +37,7 @@ <!--Email template --> <record id="email_template_edi_sale" model="email.template"> <field name="name">Automated Sale Order Notification Mail</field> - <field name="email_from">${object.user_id.user_email or ''}</field> + <field name="email_from">${object.user_id.email or ''}</field> <field name="subject">${object.company_id.name} Order (Ref ${object.name or 'n/a' })</field> <field name="email_to">${object.partner_invoice_id.email}</field> <field name="model_id" ref="sale.model_sale_order"/> @@ -60,7 +60,7 @@ % if object.client_order_ref: Your reference: ${object.client_order_ref}<br /> % endif - Your contact: <a href="mailto:${object.user_id.user_email or ''}?subject=Order%20${object.name}">${object.user_id.name}</a> + Your contact: <a href="mailto:${object.user_id.email or ''}?subject=Order%20${object.name}">${object.user_id.name}</a> </p> <p> @@ -139,7 +139,7 @@ Here is your ${object.state in ('draft', 'sent') and 'quotation' or 'order confi % if object.client_order_ref: | Your reference: ${object.client_order_ref}<br /> % endif - | Your contact: ${object.user_id.name} ${object.user_id.user_email and '<%s>'%(object.user_id.user_email) or ''} + | Your contact: ${object.user_id.name} ${object.user_id.email and '<%s>'%(object.user_id.email) or ''} You can view the ${object.state in ('draft', 'sent') and 'quotation' or 'order confirmation'}, download it and even pay online using the following link: ${ctx.get('edi_web_url_view') or 'n/a'} @@ -166,7 +166,7 @@ Thank you for choosing ${object.company_id.name}! -- -${object.user_id.name} ${object.user_id.user_email and '<%s>'%(object.user_id.user_email) or ''} +${object.user_id.name} ${object.user_id.email and '<%s>'%(object.user_id.email) or ''} ${object.company_id.name} % if object.company_id.street: ${object.company_id.street or ''} diff --git a/addons/sale/report/sale_order.rml b/addons/sale/report/sale_order.rml index 8fecc17e62c..9f7ba06db95 100644 --- a/addons/sale/report/sale_order.rml +++ b/addons/sale/report/sale_order.rml @@ -266,13 +266,13 @@ <para style="terp_default_Right_9">[[ formatLang(line.product_uos and line.product_uos_qty or line.product_uom_qty) ]] [[ line.product_uos and line.product_uos.name or line.product_uom.name ]]</para> </td> <td> - <para style="terp_default_Right_9">[[ formatLang(line.price_unit ) ]]</para> + <para style="terp_default_Right_9">[[ formatLang(line.price_unit , digits=get_digits(dp='Product Price'))]]</para> </td> <td> - <para style="terp_default_Centre_9">[[ formatLang(line.discount) ]]</para> + <para style="terp_default_Centre_9">[[ formatLang(line.discount, digits=get_digits(dp='Discount'))]]</para> </td> <td> - <para style="terp_default_Right_9">[[ formatLang(line.price_subtotal, digits=get_digits(dp='Sale Price'), currency_obj=o.pricelist_id.currency_id) ]] </para> + <para style="terp_default_Right_9">[[ formatLang(line.price_subtotal, digits=get_digits(dp='Account'), currency_obj=o.pricelist_id.currency_id) ]] </para> </td> </tr> </blockTable> @@ -288,7 +288,7 @@ <para style="terp_default_9">Net Total :</para> </td> <td> - <para style="terp_default_Right_9">[[ formatLang(o.amount_untaxed, dp='Sale Price', currency_obj=o.pricelist_id.currency_id) ]]</para> + <para style="terp_default_Right_9">[[ formatLang(o.amount_untaxed, dp='Account', currency_obj=o.pricelist_id.currency_id) ]]</para> </td> </tr> <tr> @@ -301,7 +301,7 @@ <para style="terp_default_9">Taxes :</para> </td> <td> - <para style="terp_default_Right_9">[[ formatLang(o.amount_tax, dp='Sale Price', currency_obj=o.pricelist_id.currency_id) ]]</para> + <para style="terp_default_Right_9">[[ formatLang(o.amount_tax, dp='Account', currency_obj=o.pricelist_id.currency_id) ]]</para> </td> </tr> <tr> @@ -314,7 +314,7 @@ <para style="terp_default_Bold_9">Total :</para> </td> <td> - <para style="terp_default_Right_9_Bold">[[ formatLang(o.amount_total, dp='Sale Price', currency_obj=o.pricelist_id.currency_id) ]]</para> + <para style="terp_default_Right_9_Bold">[[ formatLang(o.amount_total, dp='Account', currency_obj=o.pricelist_id.currency_id) ]]</para> </td> </tr> </blockTable> diff --git a/addons/sale/report/sale_report_view.xml b/addons/sale/report/sale_report_view.xml index 1ac6d425530..2a60a9157dd 100644 --- a/addons/sale/report/sale_report_view.xml +++ b/addons/sale/report/sale_report_view.xml @@ -6,7 +6,6 @@ <field eval="1" name="priority"/> <field name="name">sale.report.tree</field> <field name="model">sale.report</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Sales Analysis"> <field name="date" invisible="1"/> @@ -34,7 +33,6 @@ <record id="view_order_product_graph" model="ir.ui.view"> <field name="name">sale.report.graph</field> <field name="model">sale.report</field> - <field name="type">graph</field> <field name="arch" type="xml"> <graph string="Sales Analysis" type="bar"> <field name="product_id"/> @@ -47,7 +45,6 @@ <record id="view_order_product_search" model="ir.ui.view"> <field name="name">sale.report.search</field> <field name="model">sale.report</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Sales Analysis"> <field name="date"/> diff --git a/addons/sale/res_config.py b/addons/sale/res_config.py index 50c8a32cfa6..0a2e3a49f62 100644 --- a/addons/sale/res_config.py +++ b/addons/sale/res_config.py @@ -98,17 +98,7 @@ class sale_configuration(osv.osv_memory): 'module_project_timesheet': fields.boolean("Project Timesheet"), 'module_project_mrp': fields.boolean("Project MRP"), 'module_project': fields.boolean("Project"), - 'decimal_precision': fields.integer("Decimal precision on prices:",help="As an example, a decimal precision of 2 will allow prices like: 9.99 EUR, whereas a decimal precision of 4 will allow prices like: 0.0231 EUR per unit."), } - def _check_decimal(self, cr, uid, ids, context=None): - for decimal in self.browse(cr, uid, ids, context=context): - if decimal.decimal_precision > 20: - return False - return True - - _constraints = [ - (_check_decimal, 'Digits must be between 0 to 20 ', ['decimal_precision']), - ] def default_get(self, cr, uid, fields, context=None): ir_model_data = self.pool.get('ir.model.data') @@ -139,14 +129,6 @@ class sale_configuration(osv.osv_memory): 'time_unit': _get_default_time_unit, } - def get_default_dp(self, cr, uid, fields, context=None): - dp = self.pool.get('ir.model.data').get_object(cr, uid, 'product','decimal_sale') - return {'decimal_precision': dp.digits} - - def set_default_dp(self, cr, uid, ids, context=None): - config = self.browse(cr, uid, ids[0], context) - dp = self.pool.get('ir.model.data').get_object(cr, uid, 'product','decimal_sale') - dp.write({'digits': config.decimal_precision}) def set_sale_defaults(self, cr, uid, ids, context=None): ir_values = self.pool.get('ir.values') diff --git a/addons/sale/res_config_view.xml b/addons/sale/res_config_view.xml index 37dcd47b7fd..e07fcccedb2 100644 --- a/addons/sale/res_config_view.xml +++ b/addons/sale/res_config_view.xml @@ -5,7 +5,6 @@ <record id="view_sales_config" model="ir.ui.view"> <field name="name">sale settings</field> <field name="model">sale.config.settings</field> - <field name="type">form</field> <field name="inherit_id" ref="base_setup.view_sale_config_settings"/> <field name="arch" type="xml"> <div name="customer feature" position="before"> @@ -96,10 +95,6 @@ <field name="group_discount_per_so_line" class="oe_inline"/> <label for="group_discount_per_so_line"/> </div> - <div> - <label for="decimal_precision"/> - <field name="decimal_precision" class="oe_inline"/> - </div> </div> </group> </group> @@ -143,7 +138,6 @@ <record id="view_account_config" model="ir.ui.view"> <field name="name">account settings</field> <field name="model">account.config.settings</field> - <field name="type">form</field> <field name="inherit_id" ref="account.view_account_config_settings"/> <field name="priority" eval="16"/> <field name="arch" type="xml"> diff --git a/addons/sale/res_partner_view.xml b/addons/sale/res_partner_view.xml index d5062441d3f..f076bfda67c 100644 --- a/addons/sale/res_partner_view.xml +++ b/addons/sale/res_partner_view.xml @@ -27,7 +27,6 @@ <record model="ir.ui.view" id="crm_lead_partner_kanban_view"> <field name="name">res.partner.kanban.saleorder.inherit</field> <field name="model">res.partner</field> - <field name="type">kanban</field> <field name="inherit_id" ref="base.res_partner_kanban_view"/> <field name="priority" eval="20"/> <field name="arch" type="xml"> @@ -45,7 +44,6 @@ <record id="res_partner_view_buttons" model="ir.ui.view"> <field name="name">res.partner.view.buttons</field> <field name="model">res.partner</field> - <field name="type">form</field> <field name="inherit_id" ref="base.view_partner_form" /> <field name="priority" eval="20"/> <field name="arch" type="xml"> diff --git a/addons/sale/sale.py b/addons/sale/sale.py index 722b22ba602..c525ba04df1 100644 --- a/addons/sale/sale.py +++ b/addons/sale/sale.py @@ -247,19 +247,19 @@ class sale_order(osv.osv): fnct_search=_invoiced_search, type='boolean', help="It indicates that an invoice has been paid."), 'note': fields.text('Terms and conditions'), - 'amount_untaxed': fields.function(_amount_all, digits_compute= dp.get_precision('Sale Price'), string='Untaxed Amount', + 'amount_untaxed': fields.function(_amount_all, digits_compute= dp.get_precision('Account'), string='Untaxed Amount', store = { 'sale.order': (lambda self, cr, uid, ids, c={}: ids, ['order_line'], 10), 'sale.order.line': (_get_order, ['price_unit', 'tax_id', 'discount', 'product_uom_qty'], 10), }, multi='sums', help="The amount without tax."), - 'amount_tax': fields.function(_amount_all, digits_compute= dp.get_precision('Sale Price'), string='Taxes', + 'amount_tax': fields.function(_amount_all, digits_compute= dp.get_precision('Account'), string='Taxes', store = { 'sale.order': (lambda self, cr, uid, ids, c={}: ids, ['order_line'], 10), 'sale.order.line': (_get_order, ['price_unit', 'tax_id', 'discount', 'product_uom_qty'], 10), }, multi='sums', help="The tax amount."), - 'amount_total': fields.function(_amount_all, digits_compute= dp.get_precision('Sale Price'), string='Total', + 'amount_total': fields.function(_amount_all, digits_compute= dp.get_precision('Account'), string='Total', store = { 'sale.order': (lambda self, cr, uid, ids, c={}: ids, ['order_line'], 10), 'sale.order.line': (_get_order, ['price_unit', 'tax_id', 'discount', 'product_uom_qty'], 10), @@ -1031,7 +1031,6 @@ class sale_order(osv.osv): def create_send_note(self, cr, uid, ids, context=None): for obj in self.browse(cr, uid, ids, context=context): - self.message_subscribe(cr, uid, [obj.id], [obj.user_id.id], context=context) self.message_append_note(cr, uid, [obj.id], body=_("Quotation for <em>%s</em> has been <b>created</b>.") % (obj.partner_id.name), context=context) def confirm_send_note(self, cr, uid, ids, context=None): @@ -1114,8 +1113,8 @@ class sale_order_line(osv.osv): '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), 'procurement_id': fields.many2one('procurement.order', 'Procurement'), - 'price_unit': fields.float('Unit Price', required=True, digits_compute= dp.get_precision('Sale Price'), readonly=True, states={'draft': [('readonly', False)]}), - 'price_subtotal': fields.function(_amount_line, string='Subtotal', digits_compute= dp.get_precision('Sale Price')), + 'price_unit': fields.float('Unit Price', required=True, digits_compute= dp.get_precision('Product Price'), readonly=True, states={'draft': [('readonly', False)]}), + 'price_subtotal': fields.function(_amount_line, string='Subtotal', digits_compute= dp.get_precision('Account')), 'tax_id': fields.many2many('account.tax', 'sale_order_tax', 'order_line_id', 'tax_id', 'Taxes', readonly=True, states={'draft': [('readonly', False)]}), 'type': fields.selection([('make_to_stock', 'from stock'), ('make_to_order', 'on order')], 'Procurement Method', required=True, readonly=True, states={'draft': [('readonly', False)]}, help="If 'on order', it triggers a procurement when the sale order is confirmed to create a task, purchase order or manufacturing order linked to this sale order line."), @@ -1127,7 +1126,7 @@ class sale_order_line(osv.osv): 'product_uos': fields.many2one('product.uom', 'Product UoS'), 'product_packaging': fields.many2one('product.packaging', 'Packaging'), 'move_ids': fields.one2many('stock.move', 'sale_line_id', 'Inventory Moves', readonly=True), - 'discount': fields.float('Discount', digits=(16, 2), readonly=True, states={'draft': [('readonly', False)]}), + 'discount': fields.float('Discount (%)', digits_compute= dp.get_precision('Discount'), readonly=True, states={'draft': [('readonly', False)]}), 'number_packages': fields.function(_number_packages, type='integer', string='Number Packages'), 'th_weight': fields.float('Weight', readonly=True, states={'draft': [('readonly', False)]}), 'state': fields.selection([('cancel', 'Cancelled'),('draft', 'Draft'),('confirmed', 'Confirmed'),('exception', 'Exception'),('done', 'Done')], 'Status', required=True, readonly=True, @@ -1205,7 +1204,7 @@ class sale_order_line(osv.osv): pu = 0.0 if uosqty: pu = round(line.price_unit * line.product_uom_qty / uosqty, - self.pool.get('decimal.precision').precision_get(cr, uid, 'Sale Price')) + self.pool.get('decimal.precision').precision_get(cr, uid, 'Product Price')) fpos = line.order_id.fiscal_position or False account_id = self.pool.get('account.fiscal.position').map_account(cr, uid, fpos, account_id) if not account_id: diff --git a/addons/sale/sale_view.xml b/addons/sale/sale_view.xml index 2257240dd10..c4edc162f08 100644 --- a/addons/sale/sale_view.xml +++ b/addons/sale/sale_view.xml @@ -17,7 +17,6 @@ <record id="view_shop_form" model="ir.ui.view"> <field name="name">sale.shop</field> <field name="model">sale.shop</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Sales Shop" version="7.0"> <label for="name" class="oe_edit_only"/> @@ -40,7 +39,6 @@ <record id="view_shop_tree" model="ir.ui.view"> <field name="name">sale.shop</field> <field name="model">sale.shop</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Sales Shop"> <field name="name"/> @@ -112,7 +110,6 @@ <record id="view_sale_order_calendar" model="ir.ui.view"> <field name="name">sale.order.calendar</field> <field name="model">sale.order</field> - <field name="type">calendar</field> <field name="arch" type="xml"> <calendar string="Sales Orders" color="state" date_start="date_order"> <field name="partner_id"/> @@ -123,7 +120,6 @@ <record model="ir.ui.view" id="view_sale_order_graph"> <field name="name">sale.order.graph</field> <field name="model">sale.order</field> - <field name="type">graph</field> <field name="arch" type="xml"> <graph string="Sales Orders" type="bar"> <field name="partner_id"/> @@ -135,7 +131,6 @@ <record id="view_order_tree" model="ir.ui.view"> <field name="name">sale.order.tree</field> <field name="model">sale.order</field> - <field name="type">tree</field> <field name="priority">2</field> <field name="arch" type="xml"> <tree string="Sales Orders" fonts="bold:needaction_pending==True" colors="grey:state=='cancel';blue:state in ('waiting_date','manual');red:state in ('invoice_except','shipping_except')"> @@ -153,7 +148,6 @@ <record id="view_order_form" model="ir.ui.view"> <field name="name">sale.order.form</field> <field name="model">sale.order</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Sales Order" version="7.0"> <header> @@ -357,6 +351,7 @@ </sheet> <div class="oe_chatter"> <field name="message_ids" widget="mail_thread"/> + <field name="message_follower_ids" widget="mail_followers"/> </div> </form> </field> @@ -365,7 +360,6 @@ <record id="view_sales_order_filter" model="ir.ui.view"> <field name="name">sale.order.list.select</field> <field name="model">sale.order</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Search Sales Order"> <field name="name" string="Sales Order" filter_domain="['|',('name','ilike',self),('client_order_ref','ilike',self)]"/> @@ -472,7 +466,6 @@ <record id="view_order_line_graph" model="ir.ui.view"> <field name="name">sale.order.line.graph</field> <field name="model">sale.order.line</field> - <field name="type">graph</field> <field name="arch" type="xml"> <graph string="Sales Order Lines"> <field name="product_id"/> @@ -484,7 +477,6 @@ <record id="view_order_line_tree" model="ir.ui.view"> <field name="name">sale.order.line.tree</field> <field name="model">sale.order.line</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Sales Order Lines"> <field name="order_id"/> @@ -502,7 +494,6 @@ <record id="view_order_line_form2" model="ir.ui.view"> <field name="name">sale.order.line.form2</field> <field name="model">sale.order.line</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Sales Order Lines" version="7.0"> <header> @@ -521,7 +512,7 @@ <group> <group> <field name="product_id" readonly="1"/> - <label name="product_uom_qty"/> + <label for="product_uom_qty"/> <div> <field name="product_uom_qty" readonly="1" class="oe_inline"/> <field name="product_uom" groups="product.group_uom" class="oe_inline"/> @@ -545,7 +536,6 @@ <record id="view_sales_order_line_filter" model="ir.ui.view"> <field name="name">sale.order.line.select</field> <field name="model">sale.order.line</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Search Sales Order"> <filter icon="terp-dolar_ok!" string="To Invoice" domain="[('invoiced','<>', 1),('state','=','done')]" help="Sale Order Lines ready to be invoiced"/> @@ -568,7 +558,6 @@ <record id="view_sales_order_uninvoiced_line_filter" model="ir.ui.view"> <field name="name">sale.order.uninvoiced.line</field> <field name="model">sale.order.line</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Search Uninvoiced Lines"> <filter icon="terp-gtk-go-back-rtl" string="To Do" domain="[('state','=','confirmed')]" name="sale order" help="Confirmed sale order lines, not yet delivered"/> diff --git a/addons/sale/stock_view.xml b/addons/sale/stock_view.xml index 40de6872be0..eb0f1e415f5 100644 --- a/addons/sale/stock_view.xml +++ b/addons/sale/stock_view.xml @@ -4,7 +4,6 @@ <record id="stock_picking_inherit_sale" model="ir.ui.view"> <field name="name">stock.picking.form</field> <field name="model">stock.picking</field> - <field name="type">form</field> <field name="inherit_id" ref="stock.view_picking_form"/> <field name="arch" type="xml"> <field name="move_type" position="before"> @@ -19,7 +18,6 @@ <record id="stock_move_sale" model="ir.ui.view"> <field name="name">stock.move.form</field> <field name="model">stock.move</field> - <field name="type">form</field> <field name="inherit_id" ref="stock.view_move_form"/> <field name="arch" type="xml"> <xpath expr="//group[@name='origin_grp']" position="inside"> @@ -57,7 +55,6 @@ <record id="stock_picking_out_inherit_sale" model="ir.ui.view"> <field name="name">Outgoing picking Inherited</field> <field name="model">stock.picking</field> - <field name="type">form</field> <field name="inherit_id" ref="stock.view_picking_out_form"/> <field name="arch" type="xml"> <field name="move_type" position="after"> diff --git a/addons/sale/wizard/sale_line_invoice.xml b/addons/sale/wizard/sale_line_invoice.xml index 0da5b8825d0..2eb5d1ae47f 100644 --- a/addons/sale/wizard/sale_line_invoice.xml +++ b/addons/sale/wizard/sale_line_invoice.xml @@ -4,7 +4,6 @@ <record id="view_sale_order_line_make_invoice" model="ir.ui.view"> <field name="name">Sales OrderLine Make Invoice</field> <field name="model">sale.order.line.make.invoice</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Create invoices" version="7.0"> <header> diff --git a/addons/sale/wizard/sale_make_invoice.xml b/addons/sale/wizard/sale_make_invoice.xml index 826249aa3bb..ced64a0f79d 100644 --- a/addons/sale/wizard/sale_make_invoice.xml +++ b/addons/sale/wizard/sale_make_invoice.xml @@ -4,7 +4,6 @@ <record id="view_sale_order_make_invoice" model="ir.ui.view"> <field name="name">Create invoices</field> <field name="model">sale.make.invoice</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Create invoices" version="7.0"> <header> diff --git a/addons/sale/wizard/sale_make_invoice_advance.py b/addons/sale/wizard/sale_make_invoice_advance.py index 0952d820ebe..a672c6b680a 100644 --- a/addons/sale/wizard/sale_make_invoice_advance.py +++ b/addons/sale/wizard/sale_make_invoice_advance.py @@ -39,7 +39,7 @@ class sale_advance_payment_inv(osv.osv_memory): 'product_id': fields.many2one('product.product', 'Advance Product', help="""Select a product of type service which is called 'Advance Product'. You may have to create it and set it as a default value on this field."""), - 'amount': fields.float('Advance Amount', digits_compute= dp.get_precision('Sale Price'), + 'amount': fields.float('Advance Amount', digits_compute= dp.get_precision('Account'), help="The amount to be invoiced in advance."), } diff --git a/addons/sale/wizard/sale_make_invoice_advance.xml b/addons/sale/wizard/sale_make_invoice_advance.xml index 28f5dc093cd..5bb7d231e94 100644 --- a/addons/sale/wizard/sale_make_invoice_advance.xml +++ b/addons/sale/wizard/sale_make_invoice_advance.xml @@ -4,7 +4,6 @@ <record id="view_sale_advance_payment_inv" model="ir.ui.view"> <field name="name">Advance Invoice</field> <field name="model">sale.advance.payment.inv</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Advance Invoice" version="7.0"> <group> diff --git a/addons/sale_analytic_plans/sale_analytic_plans_view.xml b/addons/sale_analytic_plans/sale_analytic_plans_view.xml index ca4b71653ff..6701ede5ae5 100644 --- a/addons/sale_analytic_plans/sale_analytic_plans_view.xml +++ b/addons/sale_analytic_plans/sale_analytic_plans_view.xml @@ -5,7 +5,6 @@ <record model="ir.ui.view" id="view_order_form_inherit"> <field name="name">sale.order.form.inherit</field> <field name="model">sale.order</field> - <field name="type">form</field> <field name="inherit_id" ref="sale.view_order_form"/> <field name="arch" type="xml"> <field name="project_id" position="replace"/> @@ -15,7 +14,6 @@ <record model="ir.ui.view" id="view_order_form_inherit2"> <field name="name">sale.order.form.inherit2</field> <field name="model">sale.order</field> - <field name="type">form</field> <field name="inherit_id" ref="sale.view_order_form"/> <field name="arch" type="xml"> <xpath expr="//field[@name='order_line']/form//field[@name='tax_id']" position="after"> @@ -27,7 +25,6 @@ <record model="ir.ui.view" id="view_order_line_form2_inherit"> <field name="name">sale.order.line.form2.inherit</field> <field name="model">sale.order.line</field> - <field name="type">form</field> <field name="inherit_id" ref="sale.view_order_line_form2"/> <field name="arch" type="xml"> <field name="product_id" position="after"> diff --git a/addons/sale_crm/sale_crm_view.xml b/addons/sale_crm/sale_crm_view.xml index 977e82c4b69..be871b87796 100644 --- a/addons/sale_crm/sale_crm_view.xml +++ b/addons/sale_crm/sale_crm_view.xml @@ -5,7 +5,6 @@ <record model="ir.ui.view" id="crm_case_form_view_oppor"> <field name="name">CRM - Opportunities - Quote Inherit</field> <field name="model">crm.lead</field> - <field name="type">form</field> <field name="inherit_id" ref="crm.crm_case_form_view_oppor"/> <field name="arch" type="xml"> <data> @@ -20,7 +19,6 @@ <record model="ir.ui.view" id="sale_view_inherit123"> <field name="name">sale.order.inherit</field> <field name="model">sale.order</field> - <field name="type">form</field> <field name="inherit_id" ref="sale.view_order_form"/> <field name="arch" type="xml"> <field name="user_id" position="after"> @@ -33,7 +31,6 @@ <record id="view_sales_order_filter_inherit" model="ir.ui.view"> <field name="name">sale.order.list.select</field> <field name="model">sale.order</field> - <field name="type">search</field> <field name="inherit_id" ref="sale.view_sales_order_filter"/> <field name="arch" type="xml"> <xpath expr="//filter[@name='my_sale_orders_filter']" position="after"> diff --git a/addons/sale_crm/wizard/crm_make_sale_view.xml b/addons/sale_crm/wizard/crm_make_sale_view.xml index fe645b3e1a4..2207cf536e2 100644 --- a/addons/sale_crm/wizard/crm_make_sale_view.xml +++ b/addons/sale_crm/wizard/crm_make_sale_view.xml @@ -6,7 +6,6 @@ <record id="view_crm_make_sale" model="ir.ui.view"> <field name="name">crm.make.sale.form</field> <field name="model">crm.make.sale</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Convert to Quotation" version="7.0"> <group col="4"> diff --git a/addons/sale_journal/sale_journal_view.xml b/addons/sale_journal/sale_journal_view.xml index 90b1959aff7..98f2933d6f3 100644 --- a/addons/sale_journal/sale_journal_view.xml +++ b/addons/sale_journal/sale_journal_view.xml @@ -5,7 +5,6 @@ <record model="ir.ui.view" id="view_sale_journal_invoice_type_form"> <field name="name">sale_journal.invoice.type.form</field> <field name="model">sale_journal.invoice.type</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Invoice Type" version="7.0"> <group col="4"> @@ -24,7 +23,6 @@ <record model="ir.ui.view" id="view_sale_journal_invoice_type_tree"> <field name="name">sale_journal.invoice.type.tree</field> <field name="model">sale_journal.invoice.type</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Invoice Type"> <field name="name"/> @@ -50,7 +48,6 @@ <record model="ir.ui.view" id="sale_journal_sale_order"> <field name="name">sale.order.journal.view.form</field> - <field name="type">form</field> <field name="model">sale.order</field> <field name="inherit_id" ref="sale.view_order_form" /> <field name="arch" type="xml"> @@ -64,7 +61,6 @@ <record model="ir.ui.view" id="sale_journal_sale_order_tree"> <field name="name">sale.order.journal.view.tree</field> - <field name="type">tree</field> <field name="model">sale.order</field> <field name="inherit_id" ref="sale.view_order_tree" /> <field name="arch" type="xml"> @@ -78,7 +74,6 @@ <record model="ir.ui.view" id="sale_journal_picking_order"> <field name="name">stock.picking.journal.view.form</field> - <field name="type">form</field> <field name="model">stock.picking</field> <field name="inherit_id" ref="stock.view_picking_form" /> <field name="arch" type="xml"> @@ -92,7 +87,6 @@ <record model="ir.ui.view" id="sale_journal_picking_order_tree"> <field name="name">stock.picking.journal.view.tree</field> - <field name="type">tree</field> <field name="model">stock.picking</field> <field name="inherit_id" ref="stock.vpicktree" /> <field name="arch" type="xml"> @@ -104,7 +98,6 @@ <record model="ir.ui.view" id="sale_journal_picking_order_in"> <field name="name">stock.picking.journal.view.form</field> - <field name="type">form</field> <field name="model">stock.picking</field> <field name="inherit_id" ref="stock.view_picking_in_form" /> <field name="arch" type="xml"> @@ -116,7 +109,6 @@ <record model="ir.ui.view" id="sale_journal_picking_order_tree_in"> <field name="name">stock.picking.journal.view.tree</field> - <field name="type">tree</field> <field name="model">stock.picking</field> <field name="inherit_id" ref="stock.view_picking_in_tree" /> <field name="arch" type="xml"> @@ -128,7 +120,6 @@ <record model="ir.ui.view" id="sale_journal_picking_order_out"> <field name="name">stock.picking.journal.view.form</field> - <field name="type">form</field> <field name="model">stock.picking</field> <field name="inherit_id" ref="stock.view_picking_out_form" /> <field name="arch" type="xml"> @@ -140,7 +131,6 @@ <record model="ir.ui.view" id="sale_journal_picking_order_tree_out"> <field name="name">stock.picking.journal.view.tree</field> - <field name="type">tree</field> <field name="model">stock.picking</field> <field name="inherit_id" ref="stock.view_picking_out_tree" /> <field name="arch" type="xml"> @@ -153,7 +143,6 @@ <record id="view_partner_property_form" model="ir.ui.view"> <field name="name">res.partner.journal.property.form.inherit</field> <field name="model">res.partner</field> - <field name="type">form</field> <field name="inherit_id" ref="base.view_partner_form"/> <field name="arch" type="xml"> <page string="Sales & Purchases" position="inside"> diff --git a/addons/sale_margin/sale_margin_view.xml b/addons/sale_margin/sale_margin_view.xml index 30c2a0dea14..69f49bd48ea 100644 --- a/addons/sale_margin/sale_margin_view.xml +++ b/addons/sale_margin/sale_margin_view.xml @@ -4,7 +4,6 @@ <record model="ir.ui.view" id="sale_margin_sale_order"> <field name="name">sale.order.margin.view.form</field> - <field name="type">form</field> <field name="model">sale.order</field> <field name="inherit_id" ref="sale.view_order_form"/> <field name="arch" type="xml"> @@ -21,7 +20,6 @@ <record model="ir.ui.view" id="sale_margin_sale_order_line"> <field name="name">sale.order.line.margin.view.form</field> - <field name="type">form</field> <field name="model">sale.order</field> <field name="inherit_id" ref="sale.view_order_form"/> <field name="arch" type="xml"> @@ -33,7 +31,6 @@ <record model="ir.ui.view" id="sale_margin_sale_order_line_form"> <field name="name">sale.order.line.tree.margin.view.form</field> - <field name="type">form</field> <field name="model">sale.order</field> <field name="inherit_id" ref="sale.view_order_form"/> <field name="arch" type="xml"> diff --git a/addons/sale_mrp/sale_mrp_view.xml b/addons/sale_mrp/sale_mrp_view.xml index 882663680c5..3c2771f55a5 100644 --- a/addons/sale_mrp/sale_mrp_view.xml +++ b/addons/sale_mrp/sale_mrp_view.xml @@ -6,7 +6,6 @@ <field name="name">mrp.production.form</field> <field name="model">mrp.production</field> <field name="inherit_id" ref="mrp.mrp_production_form_view"/> - <field name="type">form</field> <field name="arch" type="xml"> <xpath expr="//field[@name='company_id']" position="after"> <field name="sale_ref"/> diff --git a/addons/sale_order_dates/sale_order_dates_view.xml b/addons/sale_order_dates/sale_order_dates_view.xml index 672a1cadd0e..b2863f644e0 100644 --- a/addons/sale_order_dates/sale_order_dates_view.xml +++ b/addons/sale_order_dates/sale_order_dates_view.xml @@ -5,7 +5,6 @@ <record id="view_sale_orderfor" model="ir.ui.view"> <field name="name">sale.order.form.inherit5</field> <field name="model">sale.order</field> - <field name="type">form</field> <field name="inherit_id" ref="sale.view_order_form"/> <field name="arch" type="xml"> <group name="sale_pay" position="after"> diff --git a/addons/share/res_users_view.xml b/addons/share/res_users_view.xml index 3af69bb025b..9a657ffdbb6 100644 --- a/addons/share/res_users_view.xml +++ b/addons/share/res_users_view.xml @@ -4,7 +4,6 @@ <record model="ir.ui.view" id="res_users_search_sharing"> <field name="name">res.users.search.share</field> <field name="model">res.users</field> - <field name="type">search</field> <field name="inherit_id" ref="base.view_users_search"/> <field name="arch" type="xml"> <xpath expr="//field[@name='company_ids']" position="after"> @@ -26,7 +25,6 @@ <record model="ir.ui.view" id="res_groups_search_sharing"> <field name="name">res.groups.search.share</field> <field name="model">res.groups</field> - <field name="type">search</field> <field name="priority" eval="8"/> <field name="arch" type="xml"> <search string="Groups"> @@ -45,7 +43,6 @@ <record id="view_groups_form_share" model="ir.ui.view"> <field name="name">res.groups.form</field> <field name="model">res.groups</field> - <field name="type">form</field> <field name="inherit_id" ref="base.view_groups_form"/> <field name="arch" type="xml"> <field name="users" position="attributes"> diff --git a/addons/share/static/src/js/share.js b/addons/share/static/src/js/share.js index 33aa3d1aab9..6cc12a5bfa8 100644 --- a/addons/share/static/src/js/share.js +++ b/addons/share/static/src/js/share.js @@ -35,19 +35,19 @@ openerp.share = function(session) { } function has_share(yes, no) { - if (!session.connection.share_flag) { - session.connection.share_flag = $.Deferred(function() { + if (!session.session.share_flag) { + session.session.share_flag = $.Deferred(function() { var func = new session.web.Model("share.wizard").get_func("has_share"); - func(session.connection.uid).pipe(function(res) { + func(session.session.uid).pipe(function(res) { if(res) { - session.connection.share_flag.resolve(); + session.session.share_flag.resolve(); } else { - session.connection.share_flag.reject(); + session.session.share_flag.reject(); } }); }); } - session.connection.share_flag.done(yes).fail(no); + session.session.share_flag.done(yes).fail(no); } /* Extend the Sidebar to add Share and Embed links in the 'More' menu */ diff --git a/addons/share/wizard/share_wizard.py b/addons/share/wizard/share_wizard.py index b14da39633e..598bb085967 100644 --- a/addons/share/wizard/share_wizard.py +++ b/addons/share/wizard/share_wizard.py @@ -196,7 +196,7 @@ class share_wizard(osv.TransientModel): } def has_email(self, cr, uid, context=None): - return bool(self.pool.get('res.users').browse(cr, uid, uid, context=context).user_email) + return bool(self.pool.get('res.users').browse(cr, uid, uid, context=context).email) def go_step_1(self, cr, uid, ids, context=None): wizard_data = self.browse(cr,uid,ids,context)[0] @@ -241,7 +241,7 @@ class share_wizard(osv.TransientModel): if not wizard_data.invite: existing = user_obj.search(cr, UID_ROOT, [('login', '=', new_user)]) else: - existing = user_obj.search(cr, UID_ROOT, [('user_email', '=', new_user)]) + existing = user_obj.search(cr, UID_ROOT, [('email', '=', new_user)]) existing_ids.extend(existing) if existing: new_line = { 'user_id': existing[0], @@ -253,7 +253,7 @@ class share_wizard(osv.TransientModel): 'login': new_user, 'password': new_pass, 'name': new_user, - 'user_email': new_user, + 'email': new_user, 'groups_id': [(6,0,[group_id])], 'share': True, 'message_email_pref': 'all', @@ -825,12 +825,12 @@ class share_wizard(osv.TransientModel): message_obj = self.pool.get('mail.message') notification_obj = self.pool.get('mail.notification') user = self.pool.get('res.users').browse(cr, UID_ROOT, uid) - if not user.user_email: + if not user.email: raise osv.except_osv(_('Email required'), _('The current user must have an email address configured in User Preferences to be able to send outgoing emails.')) # TODO: also send an HTML version of this mail for result_line in wizard_data.result_line_ids: - email_to = result_line.user_id.user_email + email_to = result_line.user_id.email if not email_to: continue subject = _('Invitation to collaborate about %s') % (wizard_data.record_name) @@ -849,20 +849,20 @@ class share_wizard(osv.TransientModel): body += "--\n" body += _("OpenERP is a powerful and user-friendly suite of Business Applications (CRM, Sales, HR, etc.)\n" "It is open source and can be found on http://www.openerp.com.") - msg_id = message_obj.schedule_with_attach(cr, uid, user.user_email, [email_to], subject, body, model='', context=context) + msg_id = message_obj.schedule_with_attach(cr, uid, user.email, [email_to], subject, body, model='', context=context) notification_obj.create(cr, uid, {'user_id': result_line.user_id.id, 'message_id': msg_id}, context=context) def send_emails(self, cr, uid, wizard_data, context=None): _logger.info('Sending share notifications by email...') mail_message = self.pool.get('mail.message') user = self.pool.get('res.users').browse(cr, UID_ROOT, uid) - if not user.user_email: + if not user.email: raise osv.except_osv(_('Email required'), _('The current user must have an email address configured in User Preferences to be able to send outgoing emails.')) # TODO: also send an HTML version of this mail msg_ids = [] for result_line in wizard_data.result_line_ids: - email_to = result_line.user_id.user_email + email_to = result_line.user_id.email if not email_to: continue subject = wizard_data.name @@ -883,7 +883,7 @@ class share_wizard(osv.TransientModel): body += "--\n" body += _("OpenERP is a powerful and user-friendly suite of Business Applications (CRM, Sales, HR, etc.)\n" "It is open source and can be found on http://www.openerp.com.") - msg_ids.append(mail_message.schedule_with_attach(cr, uid, user.user_email, [email_to], subject, body, model='share.wizard', context=context)) + msg_ids.append(mail_message.schedule_with_attach(cr, uid, user.email, [email_to], subject, body, model='share.wizard', context=context)) # force direct delivery, as users expect instant notification mail_message.send(cr, uid, msg_ids, context=context) _logger.info('%d share notification(s) sent.', len(msg_ids)) diff --git a/addons/share/wizard/share_wizard_view.xml b/addons/share/wizard/share_wizard_view.xml index ad4df1a5193..859245b46a9 100644 --- a/addons/share/wizard/share_wizard_view.xml +++ b/addons/share/wizard/share_wizard_view.xml @@ -5,7 +5,6 @@ <record id="share_step0_form" model="ir.ui.view"> <field name="name">share.step0.form</field> <field name="model">share.wizard</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Sharing: preparation" version="7.0"> <separator @@ -28,9 +27,8 @@ <record id="share_step1_form" model="ir.ui.view"> <field name="name">share.step1.form</field> <field name="model">share.wizard</field> - <field name="type">form</field> <field name="arch" type="xml"> - <form version="7.0"> + <form string="Configuration" version="7.0"> <group> <field name="user_type" invisible="1"/> <field name="invite" invisible="1"/> @@ -67,7 +65,6 @@ <record id="share_step2_form" model="ir.ui.view"> <field name="name">share.step2.form</field> <field name="model">share.wizard</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Access granted!" version="7.0"> <group attrs="{'invisible':[('user_type','=','embedded')]}" diff --git a/addons/stock/board_warehouse_view.xml b/addons/stock/board_warehouse_view.xml index 1c416287e84..4258721dc03 100644 --- a/addons/stock/board_warehouse_view.xml +++ b/addons/stock/board_warehouse_view.xml @@ -5,7 +5,6 @@ <record id="view_stock_graph_board" model="ir.ui.view"> <field name="name">report.stock.move.graph</field> <field name="model">report.stock.move</field> - <field name="type">graph</field> <field name="arch" type="xml"> <graph string="Moves Analysis" type="bar"> <field name="day"/> @@ -56,7 +55,6 @@ <record id="board_warehouse_form" model="ir.ui.view"> <field name="name">board.warehouse.form</field> <field name="model">board.board</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Warehouse board" version="7.0"> <board style="2-1"> diff --git a/addons/stock/partner_view.xml b/addons/stock/partner_view.xml index 1c229121e1c..69d833d0ecd 100644 --- a/addons/stock/partner_view.xml +++ b/addons/stock/partner_view.xml @@ -8,7 +8,6 @@ <record id="view_partner_property_form" model="ir.ui.view"> <field name="name">res.partner.stock.property.form.inherit</field> <field name="model">res.partner</field> - <field name="type">form</field> <field name="inherit_id" ref="product.view_partner_property_form"/> <field name="arch" type="xml"> <group name="pricelists" position="after"> diff --git a/addons/stock/product_view.xml b/addons/stock/product_view.xml index 7dcdae56f40..1efc552bfa6 100644 --- a/addons/stock/product_view.xml +++ b/addons/stock/product_view.xml @@ -5,7 +5,6 @@ <record id="product_search_form_view_stock" model="ir.ui.view"> <field name="name">product.search.stock.form</field> <field name="model">product.product</field> - <field name="type">search</field> <field name="inherit_id" ref="product.product_search_form_view"/> <field name="arch" type="xml"> <field name="pricelist_id" position="before"> @@ -18,7 +17,6 @@ <record id="view_category_property_form" model="ir.ui.view"> <field name="name">product.category.stock.property.form.inherit</field> <field name="model">product.category</field> - <field name="type">form</field> <field name="inherit_id" ref="product.product_category_form_view"/> <field name="arch" type="xml"> <data> @@ -35,7 +33,6 @@ <record id="view_template_property_form" model="ir.ui.view"> <field name="name">product.template.stock.property.form.inherit</field> <field name="model">product.template</field> - <field name="type">form</field> <field name="inherit_id" ref="product.product_template_form_view"/> <field name="arch" type="xml"> <page position="after" string="Information"> @@ -57,7 +54,6 @@ <record id="view_product_standard_price_form" model="ir.ui.view"> <field name="name">product.product.standard.price.form.inherit</field> <field name="model">product.product</field> - <field name="type">form</field> <field name="inherit_id" ref="product.product_normal_form_view"/> <field name="arch" type="xml"> <field name="standard_price" position="replace" version="7.0"> @@ -75,7 +71,6 @@ <record id="view_normal_property_acc_form" model="ir.ui.view"> <field name="name">product.normal.stock.acc.property.form.inherit</field> <field name="model">product.product</field> - <field name="type">form</field> <field name="inherit_id" ref="product.product_normal_form_view"/> <field name="priority">26</field> <field name="arch" type="xml"> @@ -100,7 +95,6 @@ <record id="view_normal_stock_property_form" model="ir.ui.view"> <field name="name">product.normal.stock.form.inherit</field> <field name="model">product.product</field> - <field name="type">form</field> <field name="inherit_id" ref="product.product_normal_form_view"/> <field name="arch" type="xml"> <group name="status" position="before" version="7.0"> @@ -172,7 +166,6 @@ <record model="ir.ui.view" id="product.product_kanban_view"> <field name="name">Product Kanban</field> <field name="model">product.product</field> - <field name="type">kanban</field> <field name="arch" type="xml"> <kanban> <field name="color"/> @@ -220,7 +213,6 @@ <record id="view_normal_property_form" model="ir.ui.view"> <field name="name">product.normal.stock.property.form.inherit</field> <field name="model">product.product</field> - <field name="type">form</field> <field name="inherit_id" ref="product.product_normal_form_view"/> <field name="arch" type="xml"> <group name="store" position="after"> diff --git a/addons/stock/report/report_stock_move_view.xml b/addons/stock/report/report_stock_move_view.xml index 56d17976aad..a0227788d97 100644 --- a/addons/stock/report/report_stock_move_view.xml +++ b/addons/stock/report/report_stock_move_view.xml @@ -11,7 +11,6 @@ <record id="view_stock_tree" model="ir.ui.view"> <field name="name">report.stock.move.tree</field> <field name="model">report.stock.move</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Moves Analysis"> <field name="date" invisible="1"/> @@ -41,7 +40,6 @@ <record id="view_stock_graph" model="ir.ui.view"> <field name="name">report.stock.move.graph</field> <field name="model">report.stock.move</field> - <field name="type">graph</field> <field name="arch" type="xml"> <graph string="Moves Analysis" type="bar"> <field name="product_id"/> @@ -53,7 +51,6 @@ <record id="view_stock_search" model="ir.ui.view"> <field name="name">report.stock.move.search</field> <field name="model">report.stock.move</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Moves Analysis"> <filter string="Done" name="done" icon="terp-dialog-close" domain="[('state','=','done')]" help = "Completed Stock-Moves"/> @@ -106,7 +103,6 @@ <record id="view_stock_inventory_tree" model="ir.ui.view"> <field name="name">report.stock.inventory.tree</field> <field name="model">report.stock.inventory</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Inventory Analysis"> <field name="date" invisible="1"/> @@ -129,7 +125,6 @@ <record id="view_stock_inventory_graph" model="ir.ui.view"> <field name="name">report.stock.inventory.graph</field> <field name="model">report.stock.inventory</field> - <field name="type">graph</field> <field name="arch" type="xml"> <graph string="Inventory Analysis" type="bar"> <field name="product_id"/> @@ -141,7 +136,6 @@ <record id="view_stock_inventory_search" model="ir.ui.view"> <field name="name">report.stock.inventory.search</field> <field name="model">report.stock.inventory</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Inventory Analysis"> <filter string="Real" name="real" icon="terp-check" domain="[('state','=','done')]" diff --git a/addons/stock/report/report_stock_view.xml b/addons/stock/report/report_stock_view.xml index 15dafbfdbc1..f87a212d43b 100644 --- a/addons/stock/report/report_stock_view.xml +++ b/addons/stock/report/report_stock_view.xml @@ -19,7 +19,6 @@ <record model="ir.ui.view" id="report_stock_lines_date_tree"> <field name="name">report.stock.lines.date.tree</field> <field name="model">report.stock.lines.date</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Dates of Inventories"> <field name="product_id"/> @@ -31,7 +30,6 @@ <record model="ir.ui.view" id="report_stock_lines_date_search"> <field name="name">report.stock.lines.date.search</field> <field name="model">report.stock.lines.date</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Dates of Inventories"> <field name="date"/> @@ -47,7 +45,6 @@ <record model="ir.ui.view" id="report_stock_lines_date_form"> <field name="name">report.stock.lines.date.form</field> <field name="model">report.stock.lines.date</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Dates of Inventories" version="7.0"> <group> @@ -72,7 +69,6 @@ <record id="view_location_graph" model="ir.ui.view"> <field name="name">stock.location.graph</field> <field name="model">stock.location</field> - <field name="type">graph</field> <field name="arch" type="xml"> <graph string="Stock Location"> <field name="complete_name"/> diff --git a/addons/stock/res_config_view.xml b/addons/stock/res_config_view.xml index f6668eff316..f3abb9bbc95 100644 --- a/addons/stock/res_config_view.xml +++ b/addons/stock/res_config_view.xml @@ -5,7 +5,6 @@ <record id="view_stock_config_settings" model="ir.ui.view"> <field name="name">stock settings</field> <field name="model">stock.config.settings</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Configure Warehouse" version="7.0" class="oe_form_configuration"> <header> diff --git a/addons/stock/stock_view.xml b/addons/stock/stock_view.xml index ff9a295ff04..6927bf68c25 100644 --- a/addons/stock/stock_view.xml +++ b/addons/stock/stock_view.xml @@ -39,7 +39,6 @@ <record id="stock_inventory_line_tree" model="ir.ui.view"> <field name="name">stock.inventory.line.tree</field> <field name="model">stock.inventory.line</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Stock Inventory Lines"> <field name="product_id"/> @@ -56,7 +55,6 @@ <record id="view_inventory_line_form" model="ir.ui.view"> <field name="name">stock.inventory.line.form</field> <field name="model">stock.inventory.line</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Stock Inventory Lines" version="7.0"> <group col="4"> @@ -76,7 +74,6 @@ <record id="view_inventory_filter" model="ir.ui.view"> <field name="name">stock.inventory.filter</field> <field name="model">stock.inventory</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Search Inventory"> <field name="name" string="Inventory Reference"/> @@ -94,7 +91,6 @@ <record id="view_inventory_tree" model="ir.ui.view"> <field name="name">stock.inventory.tree</field> <field name="model">stock.inventory</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Lot Inventory" colors="grey:state == 'cancel'"> <field name="name"/> @@ -107,7 +103,6 @@ <record id="view_inventory_form" model="ir.ui.view"> <field name="name">stock.inventory.form</field> <field name="model">stock.inventory</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Physical Inventory" version="7.0"> <header> @@ -225,7 +220,6 @@ <record id="view_tracking_form" model="ir.ui.view"> <field name="name">stock.tracking.form</field> <field name="model">stock.tracking</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Packs" version="7.0"> <group> @@ -249,7 +243,6 @@ <record id="view_tracking_tree" model="ir.ui.view"> <field name="name">stock.tracking.tree</field> <field name="model">stock.tracking</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Packs"> <field name="name"/> @@ -283,7 +276,6 @@ <record id="lot_line_tree" model="ir.ui.view"> <field name="name">stock.tracking.tree</field> <field name="model">stock.tracking</field> - <field name="type">tree</field> <field name="field_parent">child_ids</field> <field name="arch" type="xml"> <tree colors="grey:not active" string="Packs"> @@ -297,7 +289,6 @@ <record model="ir.ui.view" id="search_stock_packs"> <field name="name">Pack Search</field> <field name="model">stock.tracking</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Pack Search"> <field name="name" string="Pack" filter_domain="['|',('name','ilike',self),('serial','ilike',self)]"/> @@ -310,7 +301,6 @@ <record id="view_production_lot_revision_form" model="ir.ui.view"> <field name="name">stock.production.lot.revision.form</field> <field name="model">stock.production.lot.revision</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Serial Number Revisions" version="7.0"> <group col="4"> @@ -327,7 +317,6 @@ <record id="view_production_lot_revision_tree" model="ir.ui.view"> <field name="name">stock.production.lot.revision.tree</field> <field name="model">stock.production.lot.revision</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Serial Number Revisions"> <field name="indice"/> @@ -340,7 +329,6 @@ <record id="view_production_lot_form" model="ir.ui.view"> <field name="name">stock.production.lot.form</field> <field name="model">stock.production.lot</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Serial Number" version="7.0"> <div class="oe_button_box oe_right"> @@ -392,7 +380,6 @@ <record id="view_production_lot_tree" model="ir.ui.view"> <field name="name">stock.production.lot.tree</field> <field name="model">stock.production.lot</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Serial Number"> <field name="prefix"/> @@ -408,7 +395,6 @@ <record model="ir.ui.view" id="search_product_lot_filter"> <field name="name">Production Lots Filter</field> <field name="model">stock.production.lot</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Product Lots Filter"> <field name="name" string="Product Lots" filter_domain="['|','|',('name','ilike',self),('prefix','ilike',self),('ref','ilike',self)]"/> @@ -454,7 +440,6 @@ <record id="stock_move_tree" model="ir.ui.view"> <field name="name">Stock Moves</field> <field name="model">stock.move</field> - <field name="type">tree</field> <field name="field_parent">move_history_ids</field> <field name="arch" type="xml"> <tree colors="grey:state == 'cancel'" string="Moves"> @@ -478,7 +463,6 @@ <record id="stock_move_tree2" model="ir.ui.view"> <field name="name">Stock Moves</field> <field name="model">stock.move</field> - <field name="type">tree</field> <field name="field_parent">move_history_ids2</field> <field name="arch" type="xml"> <tree colors="grey:state == 'cancel'" string="Moves"> @@ -534,7 +518,6 @@ <record id="view_location_form" model="ir.ui.view"> <field name="name">stock.location.form</field> <field name="model">stock.location</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Stock Location" version="7.0"> <label for="name" class="oe_edit_only"/> @@ -577,7 +560,6 @@ <record id="view_location_search" model="ir.ui.view"> <field name="name">stock.location.search</field> <field name="model">stock.location</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Stock Locations"> <field name="name" string="Stock Locations"/> @@ -593,7 +575,6 @@ <record id="view_location_tree2" model="ir.ui.view"> <field name="name">stock.location.tree</field> <field name="model">stock.location</field> - <field name="type">tree</field> <field name="priority" eval="2"/> <field name="arch" type="xml"> <tree string="Stock Location" colors="blue:usage=='view';darkred:usage=='internal'"> @@ -638,10 +619,9 @@ <record id="view_location_tree" model="ir.ui.view"> <field name="name">stock.location.tree</field> <field name="model">stock.location</field> - <field name="type">tree</field> <field name="field_parent">child_ids</field> <field name="arch" type="xml"> - <tree toolbar="1"> + <tree toolbar="1" string="Locations" > <field icon="icon" name="name"/> </tree> </field> @@ -673,7 +653,6 @@ <record id="view_warehouse" model="ir.ui.view"> <field name="name">stock.warehouse</field> <field name="model">stock.warehouse</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Warehouse" version="7.0"> <label for="name" class="oe_edit_only"/> @@ -695,7 +674,6 @@ <record id="view_warehouse_tree" model="ir.ui.view"> <field name="name">stock.warehouse.tree</field> <field name="model">stock.warehouse</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Warehouse"> <field name="name"/> @@ -729,7 +707,6 @@ <record model="ir.ui.view" id="stock_picking_calendar"> <field name="name">stock.picking.calendar</field> <field name="model">stock.picking</field> - <field name="type">calendar</field> <field name="priority" eval="2"/> <field name="arch" type="xml"> <calendar string="Calendar View" date_start="min_date" date_stop="max_date" color="partner_id"> @@ -743,7 +720,6 @@ <record id="vpicktree" model="ir.ui.view"> <field name="name">stock.picking.tree</field> <field name="model">stock.picking</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree colors="blue:state == 'draft';grey:state == 'cancel';red:state not in ('cancel', 'done') and date < current_date" string="Picking list"> <field name="name"/> @@ -761,7 +737,6 @@ <record id="view_picking_form" model="ir.ui.view"> <field name="name">stock.picking.form</field> <field name="model">stock.picking</field> - <field name="type">form</field> <field eval="12" name="priority"/> <field name="arch" type="xml"> <form string="Internal Picking List" version="7.0"> @@ -926,7 +901,6 @@ <record id="view_picking_internal_search" model="ir.ui.view"> <field name="name">stock.picking.internal.search</field> <field name="model">stock.picking</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Internal Picking List"> <field name="name" string="Internal Picking List" filter_domain="['|',('name','ilike', self),('origin','ilike',self)]"/> @@ -984,7 +958,6 @@ <record model="ir.ui.view" id="stock_picking_out_calendar"> <field name="name">stock.picking.out.calendar</field> <field name="model">stock.picking.out</field> - <field name="type">calendar</field> <field name="priority" eval="2"/> <field name="arch" type="xml"> <calendar string="Calendar View" date_start="min_date" date_stop="max_date" color="partner_id"> @@ -998,7 +971,6 @@ <record id="view_picking_out_tree" model="ir.ui.view"> <field name="name">stock.picking.out.tree</field> <field name="model">stock.picking</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree colors="blue:state == 'draft';grey:state == 'cancel';red:state not in ('cancel', 'done') and min_date < current_date" string="Delivery Orders"> <field name="name"/> @@ -1017,7 +989,6 @@ <field name="name">stock.picking.out.form</field> <field name="model">stock.picking.out</field> <field name="inherit_id" ref="view_picking_form"/> - <field name="type">form</field> <field name="arch" type="xml"> <data> <xpath expr="/form/header//button[@name='%(act_stock_return_picking)d']" position="replace"> @@ -1040,6 +1011,7 @@ <xpath expr="/form/sheet" position="after"> <div class="oe_chatter"> <field name="message_ids" colspan="4" widget="mail_thread" nolabel="1"/> + <field name="message_follower_ids" widget="mail_followers"/> </div> </xpath> </data> @@ -1049,7 +1021,6 @@ <record id="view_picking_out_search" model="ir.ui.view"> <field name="name">stock.picking.out.search</field> <field name="model">stock.picking</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Picking list"> <field name="name" string="Picking List" filter_domain="['|',('name','ilike', self),('origin','ilike',self)]"/> @@ -1115,7 +1086,6 @@ <record model="ir.ui.view" id="stock_picking_in_calendar"> <field name="name">stock.picking.in.calendar</field> <field name="model">stock.picking.in</field> - <field name="type">calendar</field> <field name="priority" eval="2"/> <field name="arch" type="xml"> <calendar string="Calendar View" date_start="min_date" date_stop="max_date" color="partner_id"> @@ -1129,7 +1099,6 @@ <record id="view_picking_in_tree" model="ir.ui.view"> <field name="name">stock.picking.in.tree</field> <field name="model">stock.picking.in</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree colors="blue:state == 'draft';grey:state == 'done';red:state not in ('cancel', 'done') and date < current_date" string="Picking list"> <field name="name"/> @@ -1148,7 +1117,6 @@ <field name="name">stock.picking.in.form</field> <field name="model">stock.picking.in</field> <field name="inherit_id" ref="view_picking_form"/> - <field name="type">form</field> <field name="arch" type="xml"> <data> <xpath expr="/form/header//button[@name='%(act_stock_return_picking)d']" position="replace"> @@ -1166,6 +1134,7 @@ <xpath expr="/form/sheet" position="after"> <div class="oe_chatter"> <field name="message_ids" colspan="4" widget="mail_thread" nolabel="1"/> + <field name="message_follower_ids" widget="mail_followers"/> </div> </xpath> </data> @@ -1174,7 +1143,6 @@ <record id="view_picking_in_search" model="ir.ui.view"> <field name="name">stock.picking.in.search</field> <field name="model">stock.picking.in</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Incoming Shipments"> <field name="name" string="Incoming Shipments" filter_domain="['|',('name','ilike',self),('origin','ilike',self)]"/> @@ -1242,7 +1210,6 @@ <record id="view_move_tree" model="ir.ui.view"> <field name="name">stock.move.tree</field> <field name="model">stock.move</field> - <field name="type">tree</field> <field eval="6" name="priority"/> <field name="arch" type="xml"> <tree colors="grey:state == 'cancel';red:(state not in ('cancel','done')) and date > current_date" string="Moves" editable="top"> @@ -1285,7 +1252,6 @@ <record id="view_move_form" model="ir.ui.view"> <field name="name">stock.move.form</field> <field name="model">stock.move</field> - <field name="type">form</field> <field eval="4" name="priority"/> <field name="arch" type="xml"> <form string="Stock Moves" version="7.0"> @@ -1364,7 +1330,6 @@ <record id="view_move_search" model="ir.ui.view"> <field name="name">stock.move.search</field> <field name="model">stock.move</field> - <field name="type">search</field> <field eval="3" name="priority"/> <field name="arch" type="xml"> <search string="Stock Moves"> @@ -1421,7 +1386,6 @@ <record id="view_move_tree_reception_picking" model="ir.ui.view"> <field name="name">stock.move.tree2</field> <field name="model">stock.move</field> - <field name="type">tree</field> <field name="priority" eval="6"/> <field name="arch" type="xml"> <tree colors="grey:state == 'cancel'" string="Moves"> @@ -1459,7 +1423,6 @@ <record id="view_move_tree_reception_picking_board" model="ir.ui.view"> <field name="name">stock.move.tree3</field> <field name="model">stock.move</field> - <field name="type">tree</field> <field eval="6" name="priority"/> <field name="arch" type="xml"> <tree string="Moves"> @@ -1475,7 +1438,6 @@ <record id="view_move_search_reception_incoming_picking" model="ir.ui.view"> <field name="name">stock.move.incoming.search2</field> <field name="model">stock.move</field> - <field name="type">search</field> <field eval="6" name="priority"/> <field name="arch" type="xml"> <search string="Stock Moves"> @@ -1500,7 +1462,6 @@ <record id="view_move_search_reception_outcoming_picking" model="ir.ui.view"> <field name="name">stock.move.outgoing.search2</field> <field name="model">stock.move</field> - <field name="type">search</field> <field eval="6" name="priority"/> <field name="arch" type="xml"> <search string="Stock Moves"> @@ -1563,7 +1524,6 @@ <record id="view_incoterms_tree" model="ir.ui.view"> <field name="name">stock.incoterms.tree</field> <field name="model">stock.incoterms</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Incoterms"> <field name="code"/> @@ -1574,7 +1534,6 @@ <record id="stock_incoterms_form" model="ir.ui.view"> <field name="name">stock.incoterms.form</field> <field name="model">stock.incoterms</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Incoterms" version="7.0"> <group> @@ -1701,7 +1660,6 @@ <record id="view_stock_journal_filter" model="ir.ui.view"> <field name="name">stock.journal.filter</field> <field name="model">stock.journal</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Stock Journal"> <field name="name" string="Stock Journal"/> @@ -1712,7 +1670,6 @@ <record model="ir.ui.view" id="view_stock_journal_tree"> <field name="name">Stock Journals</field> <field name="model">stock.journal</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Stock Journal"> <field name="name"/> @@ -1723,7 +1680,6 @@ <record model="ir.ui.view" id="view_stock_journal_form"> <field name="name">Stock Journals</field> <field name="model">stock.journal</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Stock Journal" version="7.0"> <group> diff --git a/addons/stock/wizard/stock_change_product_qty_view.xml b/addons/stock/wizard/stock_change_product_qty_view.xml index 6713194f90b..a533d9f837b 100644 --- a/addons/stock/wizard/stock_change_product_qty_view.xml +++ b/addons/stock/wizard/stock_change_product_qty_view.xml @@ -4,7 +4,6 @@ <record id="view_change_product_quantity" model="ir.ui.view"> <field name="name">Change Product Quantity</field> <field name="model">stock.change.product.qty</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Change Product Quantity" version="7.0"> <group string="Select Quantity"> diff --git a/addons/stock/wizard/stock_change_standard_price_view.xml b/addons/stock/wizard/stock_change_standard_price_view.xml index 6062c946d07..85e1f7f81da 100644 --- a/addons/stock/wizard/stock_change_standard_price_view.xml +++ b/addons/stock/wizard/stock_change_standard_price_view.xml @@ -4,7 +4,6 @@ <record id="view_change_standard_price" model="ir.ui.view"> <field name="name">Change Standard Price</field> <field name="model">stock.change.standard.price</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Change Standard Price" version="7.0"> <separator string="Change Price"/> diff --git a/addons/stock/wizard/stock_fill_inventory_view.xml b/addons/stock/wizard/stock_fill_inventory_view.xml index 75a7b13233b..47e6355bcdc 100644 --- a/addons/stock/wizard/stock_fill_inventory_view.xml +++ b/addons/stock/wizard/stock_fill_inventory_view.xml @@ -4,7 +4,6 @@ <record id="view_stock_fill_inventory" model="ir.ui.view"> <field name="name">Import Inventory</field> <field name="model">stock.fill.inventory</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Import Inventory" version="7.0"> <separator string="Import current product inventory from the following location"/> diff --git a/addons/stock/wizard/stock_inventory_line_split_view.xml b/addons/stock/wizard/stock_inventory_line_split_view.xml index 5072007f210..fdc3aa03a60 100644 --- a/addons/stock/wizard/stock_inventory_line_split_view.xml +++ b/addons/stock/wizard/stock_inventory_line_split_view.xml @@ -4,7 +4,6 @@ <record id="view_split_in_lots_inherit" model="ir.ui.view"> <field name="name">Split Inventory Line</field> <field name="model">stock.inventory.line.split</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Split in Lots" version="7.0"> <group> diff --git a/addons/stock/wizard/stock_inventory_merge_view.xml b/addons/stock/wizard/stock_inventory_merge_view.xml index 0386e429ee6..bf661b426a2 100644 --- a/addons/stock/wizard/stock_inventory_merge_view.xml +++ b/addons/stock/wizard/stock_inventory_merge_view.xml @@ -5,7 +5,6 @@ <record id="name_form" model="ir.ui.view"> <field name="name">stock.inventory.merge.form</field> <field name="model">stock.inventory.merge</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Merge Inventories" version="7.0"> <separator string="Merge Inventories" /> diff --git a/addons/stock/wizard/stock_invoice_onshipping_view.xml b/addons/stock/wizard/stock_invoice_onshipping_view.xml index 20f05f394fd..10d748624fc 100644 --- a/addons/stock/wizard/stock_invoice_onshipping_view.xml +++ b/addons/stock/wizard/stock_invoice_onshipping_view.xml @@ -4,7 +4,6 @@ <record id="view_stock_invoice_onshipping" model="ir.ui.view"> <field name="name">Stock Invoice Onshipping</field> <field name="model">stock.invoice.onshipping</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Create invoice" version="7.0"> <group string="Create Invoice"> diff --git a/addons/stock/wizard/stock_location_product_view.xml b/addons/stock/wizard/stock_location_product_view.xml index 756c3782ea1..d6141752636 100644 --- a/addons/stock/wizard/stock_location_product_view.xml +++ b/addons/stock/wizard/stock_location_product_view.xml @@ -4,7 +4,6 @@ <record id="view_stock_location_product" model="ir.ui.view"> <field name="name">Products by Location</field> <field name="model">stock.location.product</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="View Stock of Products" version="7.0"> <group> diff --git a/addons/stock/wizard/stock_move_view.xml b/addons/stock/wizard/stock_move_view.xml index 5ecfc9a85a1..b3a7fbee885 100644 --- a/addons/stock/wizard/stock_move_view.xml +++ b/addons/stock/wizard/stock_move_view.xml @@ -6,7 +6,6 @@ <record id="view_stock_move_consume_wizard" model="ir.ui.view"> <field name="name">Consume Move</field> <field name="model">stock.move.consume</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Consume Move" version="7.0"> <group string="Consume Products"> @@ -39,7 +38,6 @@ <record id="view_stock_move_scrap_wizard" model="ir.ui.view"> <field name="name">Scrap Move</field> <field name="model">stock.move.scrap</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Scrap Move" version="7.0"> <separator string="Scrap Products"/> @@ -73,7 +71,6 @@ <record id="view_split_in_lots" model="ir.ui.view"> <field name="name">Split in lots</field> <field name="model">stock.move.split</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Split in Lots" version="7.0"> <group> diff --git a/addons/stock/wizard/stock_partial_move_view.xml b/addons/stock/wizard/stock_partial_move_view.xml index 3e0699ec3d8..acfc4b1923c 100644 --- a/addons/stock/wizard/stock_partial_move_view.xml +++ b/addons/stock/wizard/stock_partial_move_view.xml @@ -18,9 +18,8 @@ <record id="stock_partial_move_form" model="ir.ui.view"> <field name="name">stock.partial.move.form</field> <field name="model">stock.partial.move</field> - <field name="type">form</field> <field name="arch" type="xml"> - <form version="7.0"> + <form string="Stock Move" version="7.0"> <separator string="Products"/> <field name="move_ids"/> <footer> @@ -35,7 +34,6 @@ <record id="stock_partial_move_line_list" model="ir.ui.view"> <field name="name">stock.partial.move.line.list</field> <field name="model">stock.partial.move.line</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree editable="bottom" string="Product Moves"> <field name="product_id" /> @@ -54,9 +52,8 @@ <record id="stock_partial_move_line_form" model="ir.ui.view"> <field name="name">stock.partial.move.line.form</field> <field name="model">stock.partial.move.line</field> - <field name="type">form</field> <field name="arch" type="xml"> - <form version="7.0"> + <form string="Stock Partial Move Line" version="7.0"> <group> <field name="product_id" /> <field name="quantity" /> diff --git a/addons/stock/wizard/stock_partial_picking_view.xml b/addons/stock/wizard/stock_partial_picking_view.xml index fdbcabb9ed7..7de85594a26 100644 --- a/addons/stock/wizard/stock_partial_picking_view.xml +++ b/addons/stock/wizard/stock_partial_picking_view.xml @@ -13,9 +13,8 @@ <record id="stock_partial_picking_form" model="ir.ui.view"> <field name="name">stock.partial.picking.form</field> <field name="model">stock.partial.picking</field> - <field name="type">form</field> <field name="arch" type="xml"> - <form version="7.0"> + <form string="Stock partial Picking" version="7.0"> <field name="hide_tracking" invisible="1"/> <separator string="Transfer Products" name="product_separator"/> <field name="move_ids" context="{'hide_tracking': hide_tracking}"> @@ -43,7 +42,6 @@ <record id="stock_partial_picking_line_list" model="ir.ui.view"> <field name="name">stock.partial.picking.line.list</field> <field name="model">stock.partial.picking.line</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree editable="bottom" string="Product Moves"> <field name="product_id" /> @@ -61,9 +59,8 @@ <record id="stock_partial_picking_line_form" model="ir.ui.view"> <field name="name">stock.partial.picking.line.form</field> <field name="model">stock.partial.picking.line</field> - <field name="type">form</field> <field name="arch" type="xml"> - <form version="7.0"> + <form string="Stock Picking Line" version="7.0"> <group col="4"> <field name="product_id" /> <field name="quantity" /> diff --git a/addons/stock/wizard/stock_return_picking_view.xml b/addons/stock/wizard/stock_return_picking_view.xml index 5cdad44f681..0dbfbc1ef54 100644 --- a/addons/stock/wizard/stock_return_picking_view.xml +++ b/addons/stock/wizard/stock_return_picking_view.xml @@ -29,7 +29,6 @@ <record id="stock_return_memory_tree_in" model="ir.ui.view"> <field name="name">stock.return.picking.memory.tree</field> <field name="model">stock.return.picking.memory</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree editable="bottom" string="Product Moves"> <field name="product_id" /> @@ -42,9 +41,8 @@ <record id="stock_return_memory_form_in" model="ir.ui.view"> <field name="name">stock.return.picking.memory.from</field> <field name="model">stock.return.picking.memory</field> - <field name="type">form</field> <field name="arch" type="xml"> - <form version="7.0"> + <form string="Return Picking Memory" version="7.0"> <group col="4"> <field name="product_id" /> <field name="quantity" /> @@ -56,7 +54,6 @@ <record id="view_stock_return_picking_form" model="ir.ui.view"> <field name="name">Return lines</field> <field name="model">stock.return.picking</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Return lines" version="7.0"> <label string="Provide the quantities of the returned products."/> diff --git a/addons/stock/wizard/stock_splitinto_view.xml b/addons/stock/wizard/stock_splitinto_view.xml index 52b182a3f27..541a0fd7200 100644 --- a/addons/stock/wizard/stock_splitinto_view.xml +++ b/addons/stock/wizard/stock_splitinto_view.xml @@ -4,7 +4,6 @@ <record id="view_stock_move_split_wizard" model="ir.ui.view"> <field name="name">Split move</field> <field name="model">stock.split.into</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Split Move" version="7.0"> <separator string="Quantity to Leave in the Current Pack"/> diff --git a/addons/stock_location/stock_location_view.xml b/addons/stock_location/stock_location_view.xml index 6d1314209e3..720c7753df6 100644 --- a/addons/stock_location/stock_location_view.xml +++ b/addons/stock_location/stock_location_view.xml @@ -5,7 +5,6 @@ <record id="stock_location_path_tree" model="ir.ui.view"> <field name="name">stock.location.path.tree</field> <field name="model">stock.location.path</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Location Paths"> <field name="location_from_id"/> @@ -18,7 +17,6 @@ <record id="stock_location_path_form" model="ir.ui.view"> <field name="name">stock.location.path.form</field> <field name="model">stock.location.path</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Location Paths" version="7.0"> <group col="4"> @@ -38,7 +36,6 @@ <record id="product_normal_form_inherit_location" model="ir.ui.view"> <field name="name">product.product.form</field> <field name="model">product.product</field> - <field name="type">form</field> <field name="inherit_id" ref="product.product_normal_form_view"/> <field name="arch" type="xml"> <notebook position="inside"> diff --git a/addons/stock_no_autopicking/stock_no_autopicking_view.xml b/addons/stock_no_autopicking/stock_no_autopicking_view.xml index 94ab02a662d..9fb2b703efe 100644 --- a/addons/stock_no_autopicking/stock_no_autopicking_view.xml +++ b/addons/stock_no_autopicking/stock_no_autopicking_view.xml @@ -6,7 +6,6 @@ <field name="name">product.normal.auto_pick.form</field> <field name="model">product.product</field> <field name="inherit_id" ref="product.product_normal_form_view" /> - <field name="type">form</field> <field name="arch" type="xml"> <field name="product_manager" position="after"> <field name="auto_pick" /> diff --git a/addons/stock_planning/stock_planning_view.xml b/addons/stock_planning/stock_planning_view.xml index 8c1cb0d2c80..56c3b9a1eaa 100644 --- a/addons/stock_planning/stock_planning_view.xml +++ b/addons/stock_planning/stock_planning_view.xml @@ -10,9 +10,8 @@ <record id="view_stock_period_form" model="ir.ui.view"> <field name="name">stock.period.form</field> <field name="model">stock.period</field> - <field name="type">form</field> <field name="arch" type="xml"> - <form version="7.0"> + <form string="Stock Period" version="7.0"> <header> <button name="button_open" string="Open" states="draft" type="object"/> <button name="button_close" string="Close" states="open" type="object"/> @@ -33,7 +32,6 @@ <record id="view_stock_period_tree" model="ir.ui.view"> <field name="name">stock.period.tree</field> <field name="model">stock.period</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Stock and Sales Period" editable="bottom" colors="gray:state == 'close';black:state in ('draft','open')"> <field name="name"/> @@ -47,7 +45,6 @@ <record id="view_stock_period_search" model="ir.ui.view"> <field name="name">stock.period.search</field> <field name="model">stock.period</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Stock Periods"> <field name="name" string="Stock Periods"/> @@ -78,9 +75,8 @@ <record id="view_stock_sale_forecast_form" model="ir.ui.view"> <field name="name">stock.sale.forecast.form</field> <field name="model">stock.sale.forecast</field> - <field name="type">form</field> <field name="arch" type="xml"> - <form version="7.0"> + <form string="Stock and Sale Forecast" version="7.0"> <header> <button name="action_validate" string="Approve" states="draft" type="object" class="oe_highlight"/> <field name="state" widget="statusbar"/> @@ -158,7 +154,6 @@ <record id="view_stock_sale_forecast_tree" model="ir.ui.view"> <field name="name">stock.sale.forecast.tree</field> <field name="model">stock.sale.forecast</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Sales Forecasts" colors="gray:state=='validated';black:state=='draft'"> <field name="period_id"/> @@ -175,7 +170,6 @@ <record id="view_stock_sale_forecast_graph" model="ir.ui.view"> <field name="name">stock.sale.forecast.graph</field> <field name="model">stock.sale.forecast</field> - <field name="type">graph</field> <field name="arch" type="xml"> <graph string="Stock and Sales Forecast" type = "bar"> <field name="period_id"/> @@ -193,7 +187,6 @@ <record id="view_stock_sale_forecast_filter" model="ir.ui.view"> <field name="name">stock.sale.forecast.list.select</field> <field name="model">stock.sale.forecast</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Search Sales Forecast"> <filter icon="terp-camera_test" string="Validated" domain="[('state','=','validated')]" /> @@ -234,7 +227,6 @@ <record id="view_stock_planning_form" model="ir.ui.view"> <field name="name">stock.planning.form</field> <field name="model">stock.planning</field> - <field name="type">form</field> <field name="priority">50</field> <field name="arch" type="xml"> <form string="Stock Planning" version="7.0"> @@ -299,7 +291,6 @@ <record id="view_stock_planning_filter" model="ir.ui.view"> <field name="name">stock.planning.list.select</field> <field name="model">stock.planning</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Search Stock Planning"> <filter icon="terp-purchase" string="No Requisition" domain="[('history','=',False)]" /> @@ -320,7 +311,6 @@ <record id="view_stock_planning_tree" model="ir.ui.view"> <field name="name">stock.planning.tree</field> <field name="model">stock.planning</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Master Procurement Schedule" colors ="blue:line_time=='Past';black:line_time=='Future'"> <field name="period_id"/> diff --git a/addons/stock_planning/wizard/stock_planning_create_periods_view.xml b/addons/stock_planning/wizard/stock_planning_create_periods_view.xml index 72d70ae5203..4db5379c491 100644 --- a/addons/stock_planning/wizard/stock_planning_create_periods_view.xml +++ b/addons/stock_planning/wizard/stock_planning_create_periods_view.xml @@ -6,7 +6,6 @@ <record id="view_stock_period_createlines_form" model="ir.ui.view"> <field name="name">stock.period.createlines.form</field> <field name="model">stock.period.createlines</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Stock Periods" version="7.0"> <group col="4"> diff --git a/addons/stock_planning/wizard/stock_planning_createlines_view.xml b/addons/stock_planning/wizard/stock_planning_createlines_view.xml index be744987a45..2befba6d820 100644 --- a/addons/stock_planning/wizard/stock_planning_createlines_view.xml +++ b/addons/stock_planning/wizard/stock_planning_createlines_view.xml @@ -5,7 +5,6 @@ <record id="view_stock_planning_createlines_form" model="ir.ui.view"> <field name="name">stock.planning.createlines.form</field> <field name="model">stock.planning.createlines</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Create Stock Planning Lines" version="7.0"> <group col="4"> diff --git a/addons/stock_planning/wizard/stock_planning_forecast_view.xml b/addons/stock_planning/wizard/stock_planning_forecast_view.xml index 0f3018350c0..705e0a8cfb7 100644 --- a/addons/stock_planning/wizard/stock_planning_forecast_view.xml +++ b/addons/stock_planning/wizard/stock_planning_forecast_view.xml @@ -6,7 +6,6 @@ <record id="view_stock_sale_forecast_createlines_form" model="ir.ui.view"> <field name="name">stock.sale.forecast.createlines</field> <field name="model">stock.sale.forecast.createlines</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Create Forecasts Lines" version="7.0"> <group col="4"> diff --git a/addons/subscription/subscription_view.xml b/addons/subscription/subscription_view.xml index 8b9be319ea6..dd3e1634420 100644 --- a/addons/subscription/subscription_view.xml +++ b/addons/subscription/subscription_view.xml @@ -7,7 +7,6 @@ <record id="view_subscription_form" model="ir.ui.view"> <field name="name">subscription.subscription.form</field> <field name="model">subscription.subscription</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Subscriptions" version="7.0"> <header> @@ -51,7 +50,6 @@ <record id="view_subscription_tree" model="ir.ui.view"> <field name="name">subscription.subscription.tree</field> <field name="model">subscription.subscription</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Subscriptions"> <field name="name"/> @@ -66,7 +64,6 @@ <record id="view_subscription_filter" model="ir.ui.view"> <field name="name">subscription.subscription.filter</field> <field name="model">subscription.subscription</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Search Subscription"> <field name="name" string="Subscription"/> @@ -99,7 +96,6 @@ <record id="subscription_subscription_history_tree" model="ir.ui.view"> <field name="name">subscription.subscription.history.tree</field> <field name="model">subscription.subscription.history</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Subscription History"> <field name="date"/> @@ -110,7 +106,6 @@ <record id="subscription_subscription_history_form" model="ir.ui.view"> <field name="name">subscription.subscription.history.form</field> <field name="model">subscription.subscription.history</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Subscription History" version="7.0"> <group col="4"> @@ -124,7 +119,6 @@ <record id="document_form" model="ir.ui.view"> <field name="name">subscription.document.form</field> <field name="model">subscription.document</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Subscription Document" version="7.0"> <group col="4"> @@ -140,7 +134,6 @@ <record id="document_tree" model="ir.ui.view"> <field name="name">subscription.document.tree</field> <field name="model">subscription.document</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Subscription Document"> <field name="name"/> @@ -153,7 +146,6 @@ <record id="view_subscription_document_filter" model="ir.ui.view"> <field name="name">subscription.document.filter</field> <field name="model">subscription.document</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Subscription Document"> <field name="name" string="Subscription Document"/> @@ -165,7 +157,6 @@ <record id="document_fields_form" model="ir.ui.view"> <field name="name">subscription.document.fields.form</field> <field name="model">subscription.document.fields</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Subscription Document Fields" version="7.0"> <group> @@ -179,7 +170,6 @@ <record id="document_fields_tree" model="ir.ui.view"> <field name="name">subscription.document.fields.tree</field> <field name="model">subscription.document.fields</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Subscription Document Fields"> <field name="field"/> diff --git a/addons/survey/survey.py b/addons/survey/survey.py index 0a96d1fde1c..93bd48be30c 100644 --- a/addons/survey/survey.py +++ b/addons/survey/survey.py @@ -740,7 +740,7 @@ class survey_request(osv.osv): if user_id: user_obj = self.pool.get('res.users') user = user_obj.browse(cr, uid, user_id, context=context) - return {'value': {'email': user.user_email}} + return {'value': {'email': user.email}} return {} survey_request() diff --git a/addons/survey/survey_view.xml b/addons/survey/survey_view.xml index 9f29873cfd8..b8c6f97e45b 100644 --- a/addons/survey/survey_view.xml +++ b/addons/survey/survey_view.xml @@ -16,7 +16,6 @@ <record model="ir.ui.view" id="survey_form"> <field name="name">survey_form</field> <field name="model">survey</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Survey" version="7.0"> <header> @@ -246,7 +245,6 @@ <record model ="ir.ui.view" id= "survey_tree"> <field name="name">survey_tree</field> <field name="model">survey</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree colors="gray:state == 'close'" string="Survey"> <field name="title"/> @@ -272,7 +270,6 @@ <record id="survey_search" model="ir.ui.view"> <field name="name">survey_search</field> <field name="model">survey</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Search Survey"> <field name="title" string="Survey"/> @@ -294,7 +291,6 @@ <record model="ir.ui.view" id="view_survey_kanban"> <field name="name">event.survey.kanban</field> <field name="model">survey</field> - <field name="type">kanban</field> <field name="arch" type="xml"> <kanban> <field name="title"/> @@ -369,7 +365,6 @@ <record model="ir.ui.view" id="survey_page_form"> <field name="name">survey_page_form</field> <field name="model">survey.page</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Survey Page" version="7.0"> <sheet> @@ -539,7 +534,6 @@ <record model="ir.ui.view" id="survey_page_tree"> <field name="name">survey_page_tree</field> <field name="model">survey.page</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Survey Page"> <field name="sequence" string="Seq"/> @@ -553,7 +547,6 @@ <record id="view_survey_page_filter" model="ir.ui.view"> <field name="name">survey.page.list.select</field> <field name="model">survey.page</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Search Survey Page"> <field name="title" string="Page"/> @@ -580,7 +573,6 @@ <record model="ir.ui.view" id="survey_page_wizard_test1"> <field name="name">survey_page_wizard_test</field> <field name="model">survey.page</field> - <field name="type">form</field> <field name="priority">20</field> <field name="arch" type="xml"> <form string="Survey Pages"> @@ -603,7 +595,6 @@ <record model="ir.ui.view" id="survey_question_form"> <field name="name">survey_question_form</field> <field name="model">survey.question</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Survey Question"> <field name="question" colspan="4"/> @@ -742,7 +733,6 @@ <record model="ir.ui.view" id="survey_question_tree"> <field name="name">survey_question_tree</field> <field name="model">survey.question</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Survey Question"> <field name="sequence" string="Seq"/> @@ -757,7 +747,6 @@ <record id="survey_question_search" model="ir.ui.view"> <field name="name">survey_question_search</field> <field name="model">survey.question</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Search Question"> <field name="question" string="Question"/> @@ -784,7 +773,6 @@ <field name="name">survey_question_wizard_test</field> <field name="model">survey.question</field> <field name="priority">20</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Survey Question"> <field name="question" colspan="4"/> @@ -930,7 +918,6 @@ <record model ="ir.ui.view" id="survey_answer_form"> <field name="name">survey_answer_form</field> <field name="model">survey.answer</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Survey Answer"> <field name="answer" colspan="4"/> @@ -951,7 +938,6 @@ <record model="ir.ui.view" id= "survey_answer_tree"> <field name="name">survey_answer_tree</field> <field name="model">survey.answer</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree editable="bottom" string="Survey Answer"> <field name="sequence" string="Seq"/> @@ -968,7 +954,6 @@ <record model ="ir.ui.view" id= "survey_response_line_form"> <field name="name">survey_response_line_form</field> <field name="model">survey.response.line</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Survey Answer"> <field name="question_id"/> @@ -1009,7 +994,6 @@ <record model="ir.ui.view" id="survey_response_line_tree"> <field name="name">survey_response_line_tree</field> <field name="model">survey.response.line</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Survey Answer Line"> <field name="page_id"/> @@ -1027,7 +1011,6 @@ <record model="ir.ui.view" id="survey_response_form"> <field name="name">survey_response_form</field> <field name="model">survey.response</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Survey Answer"> <field name="survey_id"/> @@ -1043,7 +1026,6 @@ <record model="ir.ui.view" id="survey_response_tree"> <field name="name">survey_response_tree</field> <field name="model">survey.response</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Survey Answer"> <field name="survey_id"/> @@ -1062,7 +1044,6 @@ <record model="ir.ui.view" id="survey_response_answer_form"> <field name="name">survey_response_answer_form</field> <field name="model">survey.response.answer</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Survey Answer"> <group colspan="4"> @@ -1082,7 +1063,6 @@ <record model="ir.ui.view" id="survey_response_answer_tree"> <field name="name">survey_response_answer_tree</field> <field name="model">survey.response.answer</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree editable="top" string="Survey Answer"> <field name="answer_id"/> @@ -1101,7 +1081,6 @@ <record model="ir.ui.view" id="survey_question_column_heading_form"> <field name="name">survey_question_column_heading_form</field> <field name="model">survey.question.column.heading</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Column Heading"> <field name="title"/> @@ -1122,7 +1101,6 @@ <record model="ir.ui.view" id="survey_question_column_heading_tree"> <field name="name">survey_question_column_heading_tree</field> <field name="model">survey.question.column.heading</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree editable="bottom" string="Column Heading"> <field name="title"/> @@ -1137,9 +1115,8 @@ <record model="ir.ui.view" id="survey_request_form"> <field name="name">survey_request_form</field> <field name="model">survey.request</field> - <field name="type">form</field> <field name="arch" type="xml"> - <form version="7.0"> + <form string="Request" version="7.0"> <header> <button name="survey_req_draft" string="Set to Draft" states="cancel,done" type="object"/> <button name="survey_req_waiting_answer" string="Waiting Answer" states="draft" type="object" class="oe_highlight"/> @@ -1162,7 +1139,6 @@ <record model="ir.ui.view" id="survey_request_tree"> <field name="name">survey_request_tree</field> <field name="model">survey.request</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Evaluation Plan Phase" colors="red:date_deadline<current_date"> <field name="date_deadline"/> @@ -1177,7 +1153,6 @@ <record id="survey_request_search" model="ir.ui.view"> <field name="name">survey_request_search</field> <field name="model">survey.request</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Search Survey"> <field name="email" string="Survey"/> @@ -1218,7 +1193,6 @@ <record model="ir.ui.view" id="survey_type_form"> <field name="name">survey_type_form</field> <field name="model">survey.type</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Survey Type"> <field name="name"/> @@ -1230,7 +1204,6 @@ <record model="ir.ui.view" id="survey_type_tree"> <field name="name">survey_type_tree</field> <field name="model">survey.type</field> - <field name="type">tree</field> <field name="arch" type="xml"> <tree string="Survey Type"> <field name="name"/> diff --git a/addons/survey/wizard/survey_answer.py b/addons/survey/wizard/survey_answer.py index b3f27ed2970..66098b45fa8 100644 --- a/addons/survey/wizard/survey_answer.py +++ b/addons/survey/wizard/survey_answer.py @@ -414,8 +414,8 @@ class survey_question_wiz(osv.osv_memory): file.close() os.remove(addons.get_module_resource('survey', 'report') + survey_data.title + ".pdf") - user_email = user_obj.browse(cr, uid, uid, context).user_email - resp_email = survey_data.responsible_id and survey_data.responsible_id.user_email or False + user_email = user_obj.browse(cr, uid, uid, context).email + resp_email = survey_data.responsible_id and survey_data.responsible_id.email or False if user_email and resp_email: user_name = user_obj.browse(cr, uid, uid, context=context).name diff --git a/addons/survey/wizard/survey_answer.xml b/addons/survey/wizard/survey_answer.xml index 162e820c059..3460ad41bb3 100644 --- a/addons/survey/wizard/survey_answer.xml +++ b/addons/survey/wizard/survey_answer.xml @@ -8,7 +8,6 @@ <record id="view_survey_question_message" model="ir.ui.view"> <field name="name">Answer Survey</field> <field name="model">survey.question.wiz</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Your Messages" version="7.0"> <field name="name" nolabel="1" colspan="4" /> @@ -19,7 +18,6 @@ <record id="view_survey_question_message1" model="ir.ui.view"> <field name="name">Survey Search</field> <field name="model">survey.question.wiz</field> - <field name="type">search</field> <field name="arch" type="xml"> <search string="Your Messages"> <field name="name"/> diff --git a/addons/survey/wizard/survey_browse_answer.xml b/addons/survey/wizard/survey_browse_answer.xml index 635e4451f4d..cb50eb955bb 100644 --- a/addons/survey/wizard/survey_browse_answer.xml +++ b/addons/survey/wizard/survey_browse_answer.xml @@ -9,7 +9,6 @@ <record id="view_survey_answer" model="ir.ui.view"> <field name="name">Survey</field> <field name="model">survey.browse.answer</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Survey" version="7.0"> <header> diff --git a/addons/survey/wizard/survey_print.xml b/addons/survey/wizard/survey_print.xml index 2ca251d1bba..40056234fe8 100644 --- a/addons/survey/wizard/survey_print.xml +++ b/addons/survey/wizard/survey_print.xml @@ -7,7 +7,6 @@ <record id="view_survey_print" model="ir.ui.view"> <field name="name">Survey Print</field> <field name="model">survey.print</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Survey Print" version="7.0"> <header> diff --git a/addons/survey/wizard/survey_print_answer.xml b/addons/survey/wizard/survey_print_answer.xml index ffa271c0087..c2363695292 100644 --- a/addons/survey/wizard/survey_print_answer.xml +++ b/addons/survey/wizard/survey_print_answer.xml @@ -7,7 +7,6 @@ <record id="view_survey_print_answer" model="ir.ui.view"> <field name="name">Survey Print Answer</field> <field name="model">survey.print.answer</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Print Answer" version="7.0"> <header> diff --git a/addons/survey/wizard/survey_print_statistics.xml b/addons/survey/wizard/survey_print_statistics.xml index 3cc94d2f606..97d976b98f6 100644 --- a/addons/survey/wizard/survey_print_statistics.xml +++ b/addons/survey/wizard/survey_print_statistics.xml @@ -7,7 +7,6 @@ <record id="view_survey_print_statistics" model="ir.ui.view"> <field name="name">Survey Print Statistics</field> <field name="model">survey.print.statistics</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Survey Print Statistics" version="7.0"> <header> diff --git a/addons/survey/wizard/survey_selection.xml b/addons/survey/wizard/survey_selection.xml index 15b4af6756f..de1231b53fb 100644 --- a/addons/survey/wizard/survey_selection.xml +++ b/addons/survey/wizard/survey_selection.xml @@ -8,7 +8,6 @@ <record id="view_survey_name" model="ir.ui.view"> <field name="name">Survey</field> <field name="model">survey.name.wiz</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Survey" version="7.0"> <header> diff --git a/addons/survey/wizard/survey_send_invitation.xml b/addons/survey/wizard/survey_send_invitation.xml index 5c8a2e93fa7..340cb58b5cf 100644 --- a/addons/survey/wizard/survey_send_invitation.xml +++ b/addons/survey/wizard/survey_send_invitation.xml @@ -7,7 +7,6 @@ <record id="view_survey_send_invitation" model="ir.ui.view"> <field name="name">Send Invitation</field> <field name="model">survey.send.invitation</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="Send Invitation" version="7.0"> <header> @@ -53,7 +52,6 @@ <record id="view_survey_send_invitation_log" model="ir.ui.view"> <field name="name">survey send invitation log</field> <field name="model">survey.send.invitation.log</field> - <field name="type">form</field> <field name="arch" type="xml"> <form string="User creation" version="7.0"> <group string="Results :"> diff --git a/addons/warning/warning_view.xml b/addons/warning/warning_view.xml index 55a00b66776..3f3bbefdbab 100644 --- a/addons/warning/warning_view.xml +++ b/addons/warning/warning_view.xml @@ -5,7 +5,6 @@ <record id="view_partner_warning_form" model="ir.ui.view"> <field name="name">res.partner.warning.form.inherit</field> <field name="model">res.partner</field> - <field name="type">form</field> <field name="inherit_id" ref="base.view_partner_form"/> <field name="arch" type="xml"> <notebook position="inside"> @@ -42,7 +41,6 @@ <record id="product_warning_form_view" model="ir.ui.view"> <field name="name">product.warning.form.inherit</field> <field name="model">product.product</field> - <field name="type">form</field> <field name="inherit_id" ref="product.product_normal_form_view"/> <field name="arch" type="xml"> <notebook position="inside"> diff --git a/addons/web_linkedin/static/src/js/linkedin.js b/addons/web_linkedin/static/src/js/linkedin.js index 977e7a60cbb..c15b995bff9 100644 --- a/addons/web_linkedin/static/src/js/linkedin.js +++ b/addons/web_linkedin/static/src/js/linkedin.js @@ -78,7 +78,7 @@ openerp.web_linkedin = function(instance) { }, _.bind(this.linkedin_disabled, this)); }, linkedin_disabled: function() { - if (instance.connection.uid !== 1) { + if (instance.session.uid !== 1) { instance.web.dialog($(QWeb.render("LinkedIn.DisabledWarning")), { title: _t("LinkedIn is not enabled"), buttons: [ |
