From d8c5cc1335806d379134866262840fcafb05b643 Mon Sep 17 00:00:00 2001 From: wan <wan@odoo.com> Date: Mon, 28 Oct 2019 14:58:01 +0000 Subject: [PATCH] [IMP] account: add a readonly group Task 2092079 Accounting firms that want to give access to their customers avoiding mistakes and risks will love this profile that can't do anything wrong... Maybe as well as companies auditors..? closes odoo/odoo#39860 Related: odoo/enterprise#6576 Signed-off-by: Quentin De Paoli (qdp) <qdp@openerp.com> --- addons/account/data/payment_receipt_data.xml | 1 + addons/account/models/account_move.py | 8 +-- addons/account/models/partner.py | 2 +- addons/account/security/account_security.xml | 57 +++++++++++++++++-- addons/account/security/ir.model.access.csv | 41 ++++++++----- .../static/src/xml/account_payment.xml | 2 +- addons/account/tests/common.py | 6 +- .../views/account_cash_rounding_view.xml | 4 +- .../views/account_journal_dashboard_view.xml | 32 +++++------ addons/account/views/account_menuitem.xml | 14 ++--- addons/account/views/account_move_views.xml | 40 ++++++------- addons/account/views/account_payment_view.xml | 8 ++- .../views/account_portal_templates.xml | 2 +- addons/account/views/account_report.xml | 4 +- addons/account/views/account_view.xml | 20 +++---- addons/account/views/partner_view.xml | 18 +++--- addons/account/views/product_view.xml | 8 +-- .../views/res_config_settings_views.xml | 2 +- .../wizard/account_move_reversal_view.xml | 1 + .../wizard/account_unreconcile_view.xml | 1 + .../wizard/account_validate_move_view.xml | 1 + .../security/ir.model.access.csv | 2 +- .../data/account_check_printing_data.xml | 1 + addons/hr_expense/views/hr_expense_views.xml | 18 +++--- addons/l10n_ae/data/l10n_ae_chart_data.xml | 2 +- .../data/account_chart_template_data2.xml | 2 +- addons/l10n_ar/report/invoice_report_view.xml | 2 +- .../l10n_at/data/account_chart_template.xml | 2 +- addons/l10n_be/data/menuitem_data.xml | 2 +- addons/l10n_bo/data/l10n_bo_chart_data.xml | 2 +- addons/l10n_br/data/l10n_br_chart_data.xml | 2 +- addons/l10n_ch/data/l10n_ch_chart_data.xml | 2 +- addons/l10n_cl/data/menuitem_data.xml | 4 +- .../data/account_chart_template_data.xml | 4 +- addons/l10n_de/data/menuitem_data.xml | 2 +- addons/l10n_do/data/l10n_do_chart_data.xml | 2 +- addons/l10n_et/data/l10n_et_chart_data.xml | 2 +- .../data/account_chart_template_data.xml | 2 +- .../views/account_sale_closure.xml | 4 +- addons/l10n_gr/data/l10n_gr_chart_data.xml | 2 +- addons/l10n_hr/data/l10n_hr_chart_data.xml | 2 +- addons/l10n_hu/data/l10n_hu_chart_data.xml | 4 +- .../l10n_ie/data/account_chart_template.xml | 2 +- addons/l10n_lu/data/l10n_lu_chart_data.xml | 2 +- addons/l10n_ma/data/l10n_ma_chart_data.xml | 6 +- .../data/account_chart_template_data.xml | 2 +- addons/l10n_nl/data/menuitem.xml | 2 +- addons/l10n_no/data/l10n_no_chart_data.xml | 4 +- addons/l10n_pl/data/l10n_pl_chart_data.xml | 2 +- addons/l10n_ro/data/l10n_ro_chart_data.xml | 2 +- addons/l10n_sg/data/l10n_sg_chart_data.xml | 4 +- addons/l10n_si/data/l10n_si_chart_data.xml | 2 +- addons/l10n_th/data/l10n_th_chart_data.xml | 2 +- addons/l10n_uk/data/l10n_uk_chart_data.xml | 2 +- addons/l10n_uy/data/l10n_uy_chart_data.xml | 2 +- addons/l10n_vn/data/l10n_vn_chart_data.xml | 2 +- .../data/account_chart_template_data.xml | 2 +- addons/mail/models/ir_attachment.py | 2 + .../mrp_account/security/ir.model.access.csv | 2 + .../views/pos_payment_method_views.xml | 6 +- .../point_of_sale/views/pos_session_view.xml | 4 +- addons/purchase/security/ir.model.access.csv | 6 +- addons/purchase/views/product_views.xml | 4 +- addons/sale/security/ir.model.access.csv | 7 ++- addons/sale/security/sale_security.xml | 29 ++++++++++ .../security/ir.model.access.csv | 2 + addons/stock_account/views/product_views.xml | 4 +- .../views/stock_account_views.xml | 2 +- .../security/ir.model.access.csv | 1 + odoo/addons/base/models/res_users.py | 5 ++ odoo/tools/convert.py | 1 - 71 files changed, 283 insertions(+), 167 deletions(-) diff --git a/addons/account/data/payment_receipt_data.xml b/addons/account/data/payment_receipt_data.xml index 7a72e5109933..6159af2e6c63 100644 --- a/addons/account/data/payment_receipt_data.xml +++ b/addons/account/data/payment_receipt_data.xml @@ -33,6 +33,7 @@ </record> <act_window name="Send receipt by email" + groups="account.group_account_invoice" res_model="mail.compose.message" binding_model="account.payment" view_mode="form" diff --git a/addons/account/models/account_move.py b/addons/account/models/account_move.py index 166f2d5dc9b6..197cababb0d0 100644 --- a/addons/account/models/account_move.py +++ b/addons/account/models/account_move.py @@ -221,11 +221,11 @@ class AccountMove(models.Model): help='International Commercial Terms are a series of predefined commercial terms used in international transactions.') # ==== Payment widget fields ==== - invoice_outstanding_credits_debits_widget = fields.Text(groups="account.group_account_invoice", + invoice_outstanding_credits_debits_widget = fields.Text(groups="account.group_account_invoice,account.group_account_readonly", compute='_compute_payments_widget_to_reconcile_info') - invoice_payments_widget = fields.Text(groups="account.group_account_invoice", + invoice_payments_widget = fields.Text(groups="account.group_account_invoice,account.group_account_readonly", compute='_compute_payments_widget_reconciled_info') - invoice_has_outstanding = fields.Boolean(groups="account.group_account_invoice", + invoice_has_outstanding = fields.Boolean(groups="account.group_account_invoice,account.group_account_readonly", compute='_compute_payments_widget_to_reconcile_info') # ==== Vendor bill fields ==== @@ -253,7 +253,7 @@ class AccountMove(models.Model): help="Technical field used to have a dynamic domain on journal / taxes in the form view.") bank_partner_id = fields.Many2one('res.partner', help='Technical field to get the domain on the bank', compute='_compute_bank_partner_id') invoice_has_matching_suspense_amount = fields.Boolean(compute='_compute_has_matching_suspense_amount', - groups='account.group_account_invoice', + groups='account.group_account_invoice,account.group_account_readonly', help="Technical field used to display an alert on invoices if there is at least a matching amount in any supsense account.") tax_lock_date_message = fields.Char( compute='_compute_tax_lock_date_message', diff --git a/addons/account/models/partner.py b/addons/account/models/partner.py index 99678c3aee4f..e9fbcfc910a7 100644 --- a/addons/account/models/partner.py +++ b/addons/account/models/partner.py @@ -387,7 +387,7 @@ class ResPartner(models.Model): help="Total amount you have to pay to this vendor.") debit_limit = fields.Monetary('Payable Limit') total_invoiced = fields.Monetary(compute='_invoice_total', string="Total Invoiced", - groups='account.group_account_invoice') + groups='account.group_account_invoice,account.group_account_readonly') currency_id = fields.Many2one('res.currency', compute='_get_company_currency', readonly=True, string="Currency", help='Utility field to express amount currency') journal_item_count = fields.Integer(compute='_compute_journal_item_count', string="Journal Items", type="integer") diff --git a/addons/account/security/account_security.xml b/addons/account/security/account_security.xml index 986c3563b212..3fbc524f785c 100644 --- a/addons/account/security/account_security.xml +++ b/addons/account/security/account_security.xml @@ -7,12 +7,6 @@ <field name="sequence">7</field> </record> - <record id="group_account_invoice" model="res.groups"> - <field name="name">Billing</field> - <field name="category_id" ref="base.module_category_accounting_accounting"/> - <field name="implied_ids" eval="[(4, ref('base.group_user'))]"/> - </record> - <record id="group_show_line_subtotals_tax_excluded" model="res.groups"> <field name="name">Tax display B2B</field> <field name="comment">Show line subtotals without taxes (B2B)</field> @@ -25,9 +19,22 @@ <field name="category_id" ref="base.module_category_hidden"/> </record> + <record id="group_account_readonly" model="res.groups"> + <field name="name">Show Accounting Features - Readonly</field> + <field name="category_id" ref="base.module_category_accounting_accounting"/> + <field name="implied_ids" eval="[(4, ref('base.group_user'))]"/> + </record> + + <record id="group_account_invoice" model="res.groups"> + <field name="name">Billing</field> + <field name="category_id" ref="base.module_category_accounting_accounting"/> + <field name="implied_ids" eval="[(4, ref('base.group_user'))]"/> + </record> + <record id="group_account_user" model="res.groups"> <field name="name">Show Full Accounting Features</field> <field name="category_id" ref="base.module_category_hidden"/> + <field name="implied_ids" eval="[(4, ref('group_account_invoice')), (4, ref('group_account_readonly'))]"/> </record> <record id="group_account_manager" model="res.groups"> @@ -210,5 +217,43 @@ <field name="domain_force">[('move_id.type', 'in', ('out_invoice', 'out_refund', 'in_invoice', 'in_refund')), ('move_id.message_partner_ids','child_of',[user.commercial_partner_id.id])]</field> <field name="groups" eval="[(4, ref('base.group_portal'))]"/> </record> + + <!-- Some modules (i.e. sale) restrict the access for some users + We want the readonly group to still have the read access on all moves.--> + <record id="account_move_rule_group_readonly" model="ir.rule"> + <field name="name">Readonly Move</field> + <field name="model_id" ref="model_account_move"/> + <field name="domain_force">[(1, '=', 1)]</field> + <field name="groups" eval="[(4, ref('account.group_account_readonly'))]"/> + <field name="perm_write" eval="False"/> + <field name="perm_create" eval="False"/> + <field name="perm_unlink" eval="False"/> + </record> + + <record id="account_move_line_rule_group_readonly" model="ir.rule"> + <field name="name">Readonly Move Line</field> + <field name="model_id" ref="model_account_move_line"/> + <field name="domain_force">[(1, '=', 1)]</field> + <field name="groups" eval="[(4, ref('account.group_account_readonly'))]"/> + <field name="perm_write" eval="False"/> + <field name="perm_create" eval="False"/> + <field name="perm_unlink" eval="False"/> + </record> + + <!-- Some modules (i.e. sale) restrict the access for some users + We want the invoice group to still have all access on all moves.--> + <record id="account_move_rule_group_invoice" model="ir.rule"> + <field name="name">Readonly Move</field> + <field name="model_id" ref="model_account_move"/> + <field name="domain_force">[(1, '=', 1)]</field> + <field name="groups" eval="[(4, ref('account.group_account_invoice'))]"/> + </record> + + <record id="account_move_line_rule_group_invoice" model="ir.rule"> + <field name="name">Readonly Move Line</field> + <field name="model_id" ref="model_account_move_line"/> + <field name="domain_force">[(1, '=', 1)]</field> + <field name="groups" eval="[(4, ref('account.group_account_invoice'))]"/> + </record> </data> </odoo> diff --git a/addons/account/security/ir.model.access.csv b/addons/account/security/ir.model.access.csv index 8d89ca0ec909..bc5f65368106 100644 --- a/addons/account/security/ir.model.access.csv +++ b/addons/account/security/ir.model.access.csv @@ -1,4 +1,5 @@ id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink +access_account_cash_rounding_readonly,account.cash.rounding,model_account_cash_rounding,account.group_account_readonly,1,0,0,0 access_account_cash_rounding_uinvoice,account.cash.rounding,model_account_cash_rounding,account.group_account_invoice,1,1,1,1 access_res_partner_group_account_manager,res_partner group_account_manager,model_res_partner,account.group_account_manager,1,0,0,0 @@ -17,14 +18,14 @@ access_account_group_template,account.group.template,model_account_group_templat access_res_currency_account_manager,res.currency account manager,base.model_res_currency,group_account_manager,1,1,1,1 access_res_currency_rate_account_manager,res.currency.rate account manager,base.model_res_currency_rate,group_account_manager,1,1,1,1 -access_account_invoice_report_user,account.invoice.report_user,model_account_invoice_report,account.group_account_user,1,0,0,0 +access_account_invoice_report_readonly,account.invoice.report_user,model_account_invoice_report,account.group_account_readonly,1,0,0,0 access_account_invoice_report_billing,account.invoice.report_billing,model_account_invoice_report,account.group_account_invoice,1,0,0,0 access_account_invoice_report,account.invoice.report,model_account_invoice_report,account.group_account_manager,1,1,1,1 access_account_incoterms_all,account.incoterms all,model_account_incoterms,,1,0,0,0 access_account_incoterms_manager,account.incoterms manager,model_account_incoterms,account.group_account_manager,1,1,1,1 -access_account_fiscal_year_user,account.fiscal.year.user,model_account_fiscal_year,account.group_account_user,1,0,0,0 +access_account_fiscal_year_readonly,account.fiscal.year.user,model_account_fiscal_year,account.group_account_readonly,1,0,0,0 access_account_fiscal_year_manager,account.fiscal.year.manager,model_account_fiscal_year,account.group_account_manager,1,1,1,1 access_account_fiscal_position_product_manager,account.fiscal.position account.manager,model_account_fiscal_position,account.group_account_manager,1,1,1,1 @@ -34,77 +35,91 @@ access_account_fiscal_position,account.fiscal.position all,model_account_fiscal_ access_account_fiscal_position_tax,account.fiscal.position.tax all,model_account_fiscal_position_tax,base.group_user,1,0,0,0 access_account_fiscal_position_account,account.fiscal.position all,model_account_fiscal_position_account,base.group_user,1,0,0,0 -access_product_product_account_user,product.product.account.user,product.model_product_product,group_account_user,1,0,0,0 +access_product_product_account_user,product.product.account.user,product.model_product_product,group_account_readonly,1,0,0,0 access_product_product_account_manager,product.product.account.manager,product.model_product_product,account.group_account_manager,1,1,1,1 access_account_cashbox,account.bank.statement.cashbox,model_account_bank_statement_cashbox,account.group_account_user,1,1,1,1 access_account_cashbox_line,account.bank.statement.cashbox.line,model_account_cashbox_line,account.group_account_user,1,1,1,1 +access_account_bank_statement_group_readonly,account.bank.statement.group.invoice,model_account_bank_statement,account.group_account_readonly,1,0,0,0 access_account_bank_statement_group_invoice,account.bank.statement.group.invoice,model_account_bank_statement,account.group_account_invoice,1,0,0,0 +access_account_bank_statement_line_group_readonly,account.bank.statement.line.group.invoice,model_account_bank_statement_line,account.group_account_readonly,1,0,0,0 access_account_bank_statement_line_group_invoice,account.bank.statement.line.group.invoice,model_account_bank_statement_line,account.group_account_invoice,1,0,0,0 access_account_bank_statement,account.bank.statement,model_account_bank_statement,account.group_account_user,1,1,1,1 access_account_bank_statement_line,account.bank.statement.line,model_account_bank_statement_line,account.group_account_user,1,1,1,1 access_account_move_line_manager,account.move.line manager,model_account_move_line,account.group_account_manager,1,0,0,0 access_account_move_manager,account.move manager,model_account_move,account.group_account_manager,1,0,0,0 +access_account_move_readonly,account.move readonly,model_account_move,account.group_account_readonly,1,0,0,0 access_account_move_uinvoice,account.move,model_account_move,account.group_account_invoice,1,1,1,1 +access_account_move_line_readonly,account.move.line readonly,model_account_move_line,account.group_account_readonly,1,0,0,0 access_account_move_line_uinvoice,account.move.line invoice,model_account_move_line,account.group_account_invoice,1,1,1,1 access_account_invoice_portal,account.move.portal,account.model_account_move,base.group_portal,1,0,0,0 access_account_invoice_line_portal,account.move.line.portal,account.model_account_move_line,base.group_portal,1,0,0,0 access_account_analytic_line_manager,account.analytic.line manager,model_account_analytic_line,account.group_account_manager,1,0,0,0 access_account_analytic_account,account.analytic.account,analytic.model_account_analytic_account,base.group_user,1,0,0,0 +access_account_analytic_line_readonly,account.analytic.line invoice,model_account_analytic_line,account.group_account_readonly,1,0,0,0 access_account_analytic_line_invoice,account.analytic.line invoice,model_account_analytic_line,account.group_account_invoice,1,1,1,1 access_account_analytic_accountant,account.analytic.account accountant,analytic.model_account_analytic_account,account.group_account_user,1,1,1,1 -access_account_journal_user,account.journal,model_account_journal,account.group_account_user,1,0,0,0 +access_account_journal_readonly,account.journal,model_account_journal,account.group_account_readonly,1,0,0,0 access_account_journal_manager,account.journal,model_account_journal,account.group_account_manager,1,1,1,1 access_account_journal_invoice,account.journal invoice,model_account_journal,account.group_account_invoice,1,0,0,0 access_account_journal_group_all,account.journal.group all,model_account_journal_group,,1,0,0,0 access_account_journal_group_manager,account.journal.group manager,model_account_journal_group,account.group_account_manager,1,1,1,1 access_account_group_manager,account.group,model_account_group,account.group_account_manager,1,1,1,1 -access_account_group,account.group,model_account_group,account.group_account_user,1,0,0,0 +access_account_group,account.group,model_account_group,account.group_account_readonly,1,0,0,0 access_account_root_manager,account.root,model_account_root,account.group_account_manager,1,0,0,0 -access_account_root,account.root,model_account_root,account.group_account_user,1,0,0,0 +access_account_root,account.root,model_account_root,account.group_account_readonly,1,0,0,0 access_account_account_manager,account.account,model_account_account,account.group_account_manager,1,1,1,1 -access_account_account,account.account,model_account_account,account.group_account_user,1,0,0,0 +access_account_account,account.account,model_account_account,account.group_account_readonly,1,0,0,0 access_account_account_user,account.account user,model_account_account,base.group_user,1,0,0,0 access_account_account_partner_manager,account.account partner manager,model_account_account,base.group_partner_manager,1,0,0,0 +access_account_account_readonly,account.account invoice,model_account_account,account.group_account_readonly,1,0,0,0 access_account_account_invoice,account.account invoice,model_account_account,account.group_account_invoice,1,0,0,0 access_account_account_type_manager,account.account.type,model_account_account_type,account.group_account_manager,1,1,1,1 -access_account_account_type,account.account.type,model_account_account_type,account.group_account_user,1,0,0,0 +access_account_account_type_readonly,account.account.type readonly,model_account_account_type,account.group_account_readonly,1,0,0,0 access_account_account_type_invoice,account.account.type invoice,model_account_account_type,account.group_account_invoice,1,0,0,0 access_account_tax_internal_user,account.tax internal user,model_account_tax,base.group_user,1,0,0,0 -access_account_tax,account.tax,model_account_tax,account.group_account_invoice,1,0,0,0 +access_account_tax_readonly,account.tax,model_account_tax,account.group_account_readonly,1,0,0,0 +access_account_tax_invoice,account.tax,model_account_tax,account.group_account_invoice,1,0,0,0 access_account_tax_manager,account.tax,model_account_tax,account.group_account_manager,1,1,1,1 access_account_account_tax,account.account.tag,model_account_account_tag,account.group_account_user,1,1,1,1 +access_account_account_tax_readonly,account.account.tag,model_account_account_tag,account.group_account_readonly,1,0,0,0 access_account_account_tax_user,account.account.tag,model_account_account_tag,account.group_account_invoice,1,0,0,0 access_account_tax_repartition_line_user,account.tax repartition.line.user,model_account_tax_repartition_line,base.group_user,1,0,0,0 +access_account_tax_repartition_line_readonly,account.tax repartition.line.invoice,model_account_tax_repartition_line,account.group_account_readonly,1,0,0,0 access_account_tax_repartition_line_invoice,account.tax repartition.line.invoice,model_account_tax_repartition_line,account.group_account_invoice,1,0,0,0 access_account_tax_repartition_line_manager,account.tax repartition.line.manager,model_account_tax_repartition_line,account.group_account_manager,1,1,1,1 -access_account_tax_report_line_invoice,account.tax.report.line.invoice,model_account_tax_report_line,account.group_account_invoice,1,0,0,0 +access_account_tax_report_line_readonly,account.tax.report.line.invoice,model_account_tax_report_line,account.group_account_readonly,1,0,0,0 access_account_tax_report_line_ac_user,account.tax.report.line.ac.user,model_account_tax_report_line,account.group_account_manager,1,1,1,1 -access_account_tax_report_invoice,account.tax.report.invoice,model_account_tax_report,account.group_account_invoice,1,0,0,0 +access_account_tax_report_invoice,account.tax.report.invoice,model_account_tax_report,account.group_account_readonly,1,0,0,0 access_account_tax_report_ac_user,account.tax.report.ac.user,model_account_tax_report,account.group_account_manager,1,1,1,1 access_account_tax_group_internal_user,account.tax.group internal user,model_account_tax_group,base.group_user,1,0,0,0 +access_account_tax_group_readonly,account.tax.group,model_account_tax_group,account.group_account_readonly,1,0,0,0 access_account_tax_group,account.tax.group,model_account_tax_group,account.group_account_invoice,1,0,0,0 access_account_tax_group_manager,account.tax.group,model_account_tax_group,account.group_account_manager,1,1,1,1 +access_account_reconcile_model_readonly,account.reconcile.model.readonly,model_account_reconcile_model,account.group_account_readonly,1,0,0,0 access_account_reconcile_model_billing,account.reconcile.model.billing,model_account_reconcile_model,account.group_account_invoice,1,0,1,0 access_account_reconcile_model,account.reconcile.model,model_account_reconcile_model,account.group_account_user,1,1,1,1 +access_account_reconcile_model_line_readonly,account.reconcile.model.line.readonly,model_account_reconcile_model_line,account.group_account_readonly,1,0,0,0 access_account_reconcile_model_line_billing,account.reconcile.model.line.billing,model_account_reconcile_model_line,account.group_account_invoice,1,0,1,0 access_account_reconcile_model_line,account.reconcile.model.line,model_account_reconcile_model_line,account.group_account_user,1,1,1,1 +access_account_partial_reconcile_readonly,account.partial.reconcile.readonly,model_account_partial_reconcile,account.group_account_readonly,1,0,0,0 access_account_partial_reconcile_group_invoice,account.partial.reconcile.group.invoice,model_account_partial_reconcile,account.group_account_invoice,1,1,1,0 access_account_partial_reconcile,account.partial.reconcile,model_account_partial_reconcile,account.group_account_user,1,1,1,1 +access_account_full_reconcile_group_readonly,account.full.reconcile.group.invoice,model_account_full_reconcile,account.group_account_readonly,1,0,0,0 access_account_full_reconcile_group_invoice,account.full.reconcile.group.invoice,model_account_full_reconcile,account.group_account_invoice,1,1,1,0 access_account_full_reconcile,account.full.reconcile,model_account_full_reconcile,account.group_account_user,1,1,1,1 access_account_payment_term_partner_manager,account.payment.term partner manager,model_account_payment_term,base.group_user,1,0,0,0 -access_account_payment_term,account.payment.term,model_account_payment_term,account.group_account_user,1,0,0,0 access_account_payment_term_manager,account.payment.term,model_account_payment_term,account.group_account_manager,1,1,1,1 access_account_payment_term_line_partner_manager,account.payment.term.line partner manager,model_account_payment_term_line,base.group_user,1,0,0,0 -access_account_payment_term_line,account.payment.term.line,model_account_payment_term_line,account.group_account_user,1,0,0,0 access_account_payment_term_line_manager,account.payment.term.line,model_account_payment_term_line,account.group_account_manager,1,1,1,1 +access_account_payment_method_readonly,account.payment.method,model_account_payment_method,account.group_account_readonly,1,0,0,0 access_account_payment_method,account.payment.method,model_account_payment_method,account.group_account_invoice,1,1,1,1 +access_account_payment_readonly,account.payment,model_account_payment,account.group_account_readonly,1,0,0,0 access_account_payment,account.payment,model_account_payment,account.group_account_invoice,1,1,1,1 diff --git a/addons/account/static/src/xml/account_payment.xml b/addons/account/static/src/xml/account_payment.xml index 0658aaac5b93..7f6cbc7b8d39 100644 --- a/addons/account/static/src/xml/account_payment.xml +++ b/addons/account/static/src/xml/account_payment.xml @@ -74,7 +74,7 @@ </tr> </table> </div> - <button class="btn btn-sm btn-primary js_unreconcile_payment float-left" t-att-payment-id="payment_id" style="margin-top:5px; margin-bottom:5px;">Unreconcile</button> + <button class="btn btn-sm btn-primary js_unreconcile_payment float-left" t-att-payment-id="payment_id" style="margin-top:5px; margin-bottom:5px;" groups="account.group_account_invoice">Unreconcile</button> <button class="btn btn-sm btn-secondary js_open_payment float-right" t-att-payment-id="account_payment_id" t-att-move-id="move_id" style="margin-top:5px; margin-bottom:5px;">View</button> </t> diff --git a/addons/account/tests/common.py b/addons/account/tests/common.py index 108736d492fb..9f585044054c 100644 --- a/addons/account/tests/common.py +++ b/addons/account/tests/common.py @@ -448,8 +448,8 @@ class AccountTestNoChartCommonMultiCompany(AccountTestNoChartCommon): """ Some tests required to be executed at module installation, and not 'post install', like moslty of accounting tests, since a chart of account is required This test setup class provides data for test suite to make business flow working without a chart - of account installed in a multi-company environment. - The class provide some helpers methods to create particular document types. Each test suite extending + of account installed in a multi-company environment. + The class provide some helpers methods to create particular document types. Each test suite extending this method can call thoses method to set up their testing environment in their own `setUpClass` method. """ @@ -497,7 +497,7 @@ class AccountTestNoChartCommonMultiCompany(AccountTestNoChartCommon): super(AccountTestNoChartCommonMultiCompany, cls).setUpAdditionalAccounts() user_type_income = cls.env.ref('account.data_account_type_direct_costs') cls.account_income_company_B = cls.env['account.account'].create({ - 'code': 'NC1112', + 'code': 'NC1112', 'name': 'Sale - Test Account Company B', 'user_type_id': user_type_income.id, 'company_id': cls.company_B.id, diff --git a/addons/account/views/account_cash_rounding_view.xml b/addons/account/views/account_cash_rounding_view.xml index 7309c1193f73..e6bae7df5c5f 100644 --- a/addons/account/views/account_cash_rounding_view.xml +++ b/addons/account/views/account_cash_rounding_view.xml @@ -26,9 +26,9 @@ <field name="rounding"/> <field name="strategy"/> <field name="profit_account_id" options="{'no_create': True}" attrs="{'invisible': [('strategy', '!=', 'add_invoice_line')], 'required': [('strategy', '=', 'add_invoice_line')]}" - groups="account.group_account_invoice"/> + groups="account.group_account_invoice,account.group_account_readonly"/> <field name="loss_account_id" options="{'no_create': True}" attrs="{'invisible': [('strategy', '!=', 'add_invoice_line')], 'required': [('strategy', '=', 'add_invoice_line')]}" - groups="account.group_account_invoice"/> + groups="account.group_account_invoice,account.group_account_readonly"/> <field name="rounding_method"/> </group> </sheet> diff --git a/addons/account/views/account_journal_dashboard_view.xml b/addons/account/views/account_journal_dashboard_view.xml index 7fc2b3d27af4..4a56c48e1410 100644 --- a/addons/account/views/account_journal_dashboard_view.xml +++ b/addons/account/views/account_journal_dashboard_view.xml @@ -75,7 +75,7 @@ </div> </div> - <div class="col-4 o_kanban_card_manage_section o_kanban_manage_new"> + <div class="col-4 o_kanban_card_manage_section o_kanban_manage_new" groups="account.group_account_user"> <div class="o_kanban_card_manage_title"> <span role="separator">New</span> </div> @@ -127,7 +127,7 @@ </div> </div> - <div class="col-4 o_kanban_card_manage_section o_kanban_manage_new"> + <div class="col-4 o_kanban_card_manage_section o_kanban_manage_new" groups="account.group_account_invoice"> <div class="o_kanban_card_manage_title"> <span>New</span> </div> @@ -150,8 +150,8 @@ <span>Reporting</span> </div> <div> - <a t-if="journal_type == 'sale'" type="action" name="%(action_account_invoice_report_all)d" groups="account.group_account_manager">Invoices Analysis</a> - <a t-if="journal_type == 'purchase'" type="action" name="%(action_account_invoice_report_all_supp)d" groups="account.group_account_manager">Bills Analysis</a> + <a t-if="journal_type == 'sale'" type="action" name="%(action_account_invoice_report_all)d" groups="account.group_account_readonly">Invoices Analysis</a> + <a t-if="journal_type == 'purchase'" type="action" name="%(action_account_invoice_report_all_supp)d" groups="account.group_account_readonly">Bills Analysis</a> </div> </div> </div> @@ -173,7 +173,7 @@ </div> </div> - <div class="col-4 o_kanban_card_manage_section o_kanban_manage_new"> + <div class="col-4 o_kanban_card_manage_section o_kanban_manage_new" groups="account.group_account_user"> <div class="o_kanban_card_manage_title"> <span>New</span> </div> @@ -187,7 +187,7 @@ <span>Operations</span> </div> <div> - <a type="object" name="open_action_with_context" context="{'action_name': 'action_validate_account_move', 'search_default_journal': True}">Post All Entries</a> + <a type="object" name="open_action_with_context" context="{'action_name': 'action_validate_account_move', 'search_default_journal': True}" groups="account.group_account_user">Post All Entries</a> </div> </div> </div> @@ -210,7 +210,7 @@ <t t-name="JournalMiscelaneous"> <div class="col-5 o_kanban_primary_left"> - <button type="object" name="action_create_new" class="btn btn-primary"> + <button type="object" name="action_create_new" class="btn btn-primary" groups="account.group_account_invoice"> <span>New Entry</span> </button> </div> @@ -236,17 +236,17 @@ <div class="col-5 o_kanban_primary_left"> <t t-if="journal_type == 'bank'" id="journal_body_bank_cash_left"> <div name="bank_journal_cta"> - <button t-if="dashboard.bank_statements_source == 'undefined'" name="action_configure_bank_journal" type="object" class="btn btn-primary">Configure</button> - <div name="bank_statement_create_button" t-if="dashboard.bank_statements_source != 'online_sync'"> + <button t-if="dashboard.bank_statements_source == 'undefined'" name="action_configure_bank_journal" type="object" class="btn btn-primary" groups="account.group_account_invoice">Configure</button> + <div name="bank_statement_create_button" t-if="dashboard.bank_statements_source != 'online_sync'" groups="account.group_account_invoice"> <a type="object" name="create_bank_statement" class="oe_inline">Create</a><span name="button_import_placeholder"/> Statements </div> </div> </t> <t t-if="dashboard.number_to_reconcile > 0"> - <a t-if="journal_type == 'cash'" type="object" name="create_cash_statement" class="oe_inline">New Transactions</a> + <a t-if="journal_type == 'cash'" type="object" name="create_cash_statement" class="oe_inline" groups="account.group_account_invoice">New Transactions</a> </t> <t t-if="dashboard.number_to_reconcile == 0"> - <button t-if="journal_type == 'cash'" type="object" name="create_cash_statement" class="btn btn-primary">New Transactions</button> + <button t-if="journal_type == 'cash'" type="object" name="create_cash_statement" class="btn btn-primary" groups="account.group_account_invoice">New Transactions</button> </t> </div> <!-- On the right, show other common informations/actions --> @@ -287,18 +287,18 @@ <t t-name="JournalBodySalePurchase" id="account.JournalBodySalePurchase"> <div class="col-5 o_kanban_primary_left"> <t t-if="journal_type == 'sale'"> - <button type="object" name="action_create_new" class="btn btn-primary o_invoice_new"> + <button type="object" name="action_create_new" class="btn btn-primary o_invoice_new" groups="account.group_account_invoice"> <span>New Invoice</span> </button> - <button class="btn btn-primary d-block o_button_upload_bill" journal_type="sale"> + <button class="btn btn-primary d-block o_button_upload_bill" journal_type="sale" groups="account.group_account_invoice"> <span>Upload Invoices</span> </button> </t> <t t-if="journal_type == 'purchase'"> - <button type="object" name="action_create_new" class="btn btn-primary o_invoice_new"> + <button type="object" name="action_create_new" class="btn btn-primary o_invoice_new" groups="account.group_account_invoice"> <span>New Bill</span> </button> - <button class="btn btn-primary d-block o_button_upload_bill" journal_type="purchase"> + <button class="btn btn-primary d-block o_button_upload_bill" journal_type="purchase" groups="account.group_account_invoice"> <span>Upload Bills</span> </button> </t> @@ -372,5 +372,5 @@ </field> </record> - <menuitem id="menu_board_journal_1" name="Overview" action="open_account_journal_dashboard_kanban" parent="menu_finance" sequence="1" groups="account.group_account_user"/> + <menuitem id="menu_board_journal_1" name="Overview" action="open_account_journal_dashboard_kanban" parent="menu_finance" sequence="1" groups="account.group_account_readonly"/> </odoo> diff --git a/addons/account/views/account_menuitem.xml b/addons/account/views/account_menuitem.xml index 09a6dc632752..2c8b746ba1fc 100644 --- a/addons/account/views/account_menuitem.xml +++ b/addons/account/views/account_menuitem.xml @@ -5,29 +5,29 @@ <!-- Top menu item --> <menuitem name="Invoicing" id="menu_finance" - groups="account.group_account_user,account.group_account_manager,account.group_account_invoice" + groups="account.group_account_readonly,account.group_account_invoice" web_icon="account,static/description/icon.png" sequence="40"/> <menuitem id="menu_finance_receivables" name="Customers" parent="menu_finance" sequence="2"/> <menuitem id="menu_finance_payables" name="Vendors" parent="menu_finance" sequence="3"/> - <menuitem id="menu_finance_entries" name="Accounting" parent="menu_finance" sequence="4" groups="account.group_account_user"/> + <menuitem id="menu_finance_entries" name="Accounting" parent="menu_finance" sequence="4" groups="account.group_account_readonly"/> <!-- Adviser sub-menus --> <menuitem id="menu_finance_entries_accounting_miscellaneous" name="Miscellaneous" parent="account.menu_finance_entries" sequence="1"/> <menuitem id="menu_finance_entries_accounting_journals" name="Journals" parent="account.menu_finance_entries" sequence="2"/> <menuitem id="menu_finance_entries_accounting_ledgers" name="Ledgers" parent="account.menu_finance_entries" sequence="3"/> - <menuitem id="menu_finance_entries_management" name="Management" parent="menu_finance_entries" sequence="10" groups="account.group_account_invoice"/> - <menuitem id="menu_finance_entries_actions" name="Actions" parent="account.menu_finance_entries" sequence="11"/> + <menuitem id="menu_finance_entries_management" name="Management" parent="menu_finance_entries" sequence="10" groups="account.group_account_invoice,account.group_account_readonly"/> + <menuitem id="menu_finance_entries_actions" name="Actions" parent="account.menu_finance_entries" sequence="11" groups="account.group_account_user"/> <menuitem id="menu_finance_entries_generate_entries" name="Generate Entries" parent="account.menu_finance_entries"/> - <menuitem id="menu_finance_reports" name="Reporting" parent="menu_finance" sequence="20" groups="account.group_account_manager"/> + <menuitem id="menu_finance_reports" name="Reporting" parent="menu_finance" sequence="20" groups="account.group_account_readonly,account.group_account_invoice"/> <!-- Reporting sub-menus --> <menuitem id="account_reports_management_menu" name="Management" parent="account.menu_finance_reports" sequence="4"/> - <menuitem id="account_reports_legal_statements_menu" name="Generic Statements" parent="account.menu_finance_reports" sequence="1" groups="account.group_account_user"/> + <menuitem id="account_reports_legal_statements_menu" name="Generic Statements" parent="account.menu_finance_reports" sequence="1" groups="account.group_account_readonly"/> <menuitem id="menu_finance_configuration" name="Configuration" parent="menu_finance" sequence="35" groups="account.group_account_manager"/> <!-- Configuration Sub-Menu --> - <menuitem id="account_invoicing_menu" name="Invoicing" parent="account.menu_finance_configuration" sequence="1" groups="account.group_account_invoice"/> + <menuitem id="account_invoicing_menu" name="Invoicing" parent="account.menu_finance_configuration" sequence="1" groups="account.group_account_invoice,account.group_account_readonly"/> <menuitem id="root_payment_menu" name="Payments" parent="account.menu_finance_configuration" sequence="2" groups="account.group_account_manager"/> <menuitem id="account_account_menu" name="Accounting" parent="account.menu_finance_configuration" sequence="3" groups="account.group_account_manager"/> <menuitem id="menu_action_currency_form" action="base.action_currency_form" name="Currencies" parent="account_account_menu" sequence="1" groups="base.group_multi_currency"/> diff --git a/addons/account/views/account_move_views.xml b/addons/account/views/account_move_views.xml index 34ac96f894b9..cf4239940670 100644 --- a/addons/account/views/account_move_views.xml +++ b/addons/account/views/account_move_views.xml @@ -34,7 +34,7 @@ <field name="statement_id" readonly="True" attrs="{'invisible': [('statement_id','=',False)]}"/> </group> <group string="Dates"> - <field name="date" groups="account.group_account_user"/> + <field name="date" groups="account.group_account_readonly"/> <field name="date_maturity"/> </group> @@ -141,12 +141,12 @@ <field name="company_id" groups="base.group_multi_company"/> <field name="journal_id" options='{"no_open":True}'/> <field name="move_id" optional="show"/> - <field name="account_id" options="{'no_open': True}" groups="account.group_account_user"/> + <field name="account_id" options="{'no_open': True}" groups="account.group_account_readonly"/> <field name="partner_id" optional="show"/> <field name="statement_id" invisible="1"/> <field name="ref" optional="show"/> <field name="name" optional="show"/> - <field name="analytic_account_id" groups="account.group_account_user" optional="show"/> + <field name="analytic_account_id" groups="account.group_account_readonly" optional="show"/> <field name="analytic_tag_ids" widget="many2many_tags" groups="analytic.group_analytic_tags" optional="hide"/> <field name="tax_ids" widget="many2many_tags" width="0.5" optional="show"/> <field name="debit" sum="Total Debit"/> @@ -175,7 +175,7 @@ <field name="move_id" optional="show"/> <field name="account_id" optional="show" options="{'no_open': True, 'no_create': True}" domain="[('company_id', '=', company_id)]" - groups="account.group_account_user"/> + groups="account.group_account_readonly"/> <field name="statement_id" invisible="1"/> <field name="partner_id" optional="show" readonly="1"/> <field name="ref" optional="hide"/> @@ -476,12 +476,12 @@ string="Send & Print" attrs="{'invisible':['|', '|', ('state', '!=', 'posted'), ('invoice_sent', '=', True), ('type', 'not in', ('out_invoice', 'out_refund'))]}" class="oe_highlight" - groups="base.group_user"/> + groups="account.group_account_invoice"/> <button name="action_invoice_sent" type="object" string="Send & Print" attrs="{'invisible':['|', '|', ('state', '!=', 'posted'), ('invoice_sent', '=', False), ('type', 'not in', ('out_invoice', 'out_refund', 'in_invoice', 'in_refund'))]}" - groups="base.group_user"/> + groups="account.group_account_invoice"/> <!-- Register Payment (only invoices / receipts) --> <button name="action_invoice_register_payment" id="account_invoice_payment_btn" type="object" class="oe_highlight" @@ -509,17 +509,17 @@ <field name="state" widget="statusbar" statusbar_visible="draft,posted"/> </header> <!-- Invoice outstanding credits --> - <div groups="account.group_account_invoice" + <div groups="account.group_account_invoice,account.group_account_readonly" class="alert alert-warning" role="alert" style="margin-bottom:0px;" attrs="{'invisible': ['|', ('state', '!=', 'draft'), ('tax_lock_date_message', '=', False)]}"> <field name="tax_lock_date_message" nolabel="1"/> </div> - <div groups="account.group_account_invoice" + <div groups="account.group_account_invoice,account.group_account_readonly" class="alert alert-info" role="alert" style="margin-bottom:0px;" attrs="{'invisible': ['|', '|', ('type', 'not in', ('out_invoice', 'out_refund')), ('invoice_has_outstanding', '=', False), ('payment_state', 'not in', ('not_paid', 'partial'))]}"> You have <bold><a class="alert-link" href="#outstanding" role="button">outstanding payments</a></bold> for this customer. You can allocate them to mark this invoice as paid. </div> - <div groups="account.group_account_invoice" + <div groups="account.group_account_invoice,account.group_account_readonly" class="alert alert-info" role="alert" style="margin-bottom:0px;" attrs="{'invisible': ['|', '|', ('type', 'not in', ('in_invoice', 'in_refund')), ('invoice_has_outstanding', '=', False), ('payment_state', 'not in', ('not_paid', 'partial'))]}"> You have <bold><a class="alert-link" href="#outstanding" role="button">outstanding debits</a></bold> for this supplier. You can allocate them to mark this bill as paid. @@ -641,7 +641,7 @@ <field name="journal_id" invisible="context.get('default_journal_id') and context.get('type', 'entry') != 'entry'" - groups="account.group_account_user" + groups="account.group_account_readonly" options="{'no_create': True}" domain="[('type', '=?', invoice_filter_type_domain)]" attrs="{'readonly': [('name', '!=', '/')]}"/> @@ -674,7 +674,7 @@ <field name="product_id" optional="show" domain="['|', ('company_id', '=', False), ('company_id', '=', parent.company_id)]"/> <field name="name" widget="section_and_note_text" attrs="{'required': [('parent.type', 'not in', ('in_invoice', 'in_refund','in_receipt'))]}"/> <field name="account_id" - groups="account.group_account_user" + groups="account.group_account_readonly" domain="[('deprecated', '=', False), ('user_type_id.type', 'not in', ('receivable', 'payable')), ('company_id', '=', parent.company_id)]" attrs="{'required': [('display_type', '=', False)]}"/> <field name="analytic_account_id" @@ -857,7 +857,7 @@ <!-- Internal note --> <field name="narration" placeholder="Add an internal note..." nolabel="1" height="50"/> </page> - <page id="aml_tab" string="Journal Items" groups="account.group_account_user"> + <page id="aml_tab" string="Journal Items" groups="account.group_account_readonly"> <field name="line_ids" context="{'line_ids': line_ids, 'journal_id': journal_id, 'default_partner_id': commercial_partner_id, 'default_currency_id': currency_id != company_currency_id and currency_id or False}"> <tree editable="bottom" string="Journal Items" decoration-muted="display_type in ('line_section', 'line_note')" default_order="sequence, date desc, move_name desc, id"> @@ -1134,6 +1134,7 @@ <record id="action_accrual_entry" model="ir.actions.server"> <field name="name">Create Accrual Entry</field> <field name="model_id" ref="account.model_account_move_line"/> + <field name="groups_id" eval="[(4, ref('account.group_account_user'))]"/> <field name="binding_model_id" ref="account.model_account_move_line"/> <field name="state">code</field> <field name="code">action = records.action_accrual_entry()</field> @@ -1381,6 +1382,7 @@ <record model="ir.actions.server" id="action_move_switch_invoice_to_credit_note"> <field name="name">Switch into refund/credit note</field> <field name="model_id" ref="account.model_account_move"/> + <field name="groups_id" eval="[(4, ref('account.group_account_invoice'))]"/> <field name="binding_model_id" ref="account.model_account_move" /> <field name="state">code</field> <field name="code"> @@ -1459,49 +1461,49 @@ if records: id="menu_action_move_journal_line_form" action="action_move_journal_line" parent="account.menu_finance_entries_accounting_miscellaneous" - groups="account.group_account_user" + groups="account.group_account_readonly" sequence="1"/> <menuitem id="menu_action_account_moves_journal_sales" action="action_account_moves_journal_sales" parent="account.menu_finance_entries_accounting_journals" - groups="account.group_account_user" + groups="account.group_account_readonly" sequence="1"/> <menuitem id="menu_action_account_moves_journal_purchase" action="action_account_moves_journal_purchase" parent="account.menu_finance_entries_accounting_journals" - groups="account.group_account_user" + groups="account.group_account_readonly" sequence="1"/> <menuitem id="menu_action_account_moves_journal_bank_cash" action="action_account_moves_journal_bank_cash" parent="account.menu_finance_entries_accounting_journals" - groups="account.group_account_user" + groups="account.group_account_readonly" sequence="1"/> <menuitem id="menu_action_account_moves_journal_misc" action="action_account_moves_journal_misc" parent="account.menu_finance_entries_accounting_journals" - groups="account.group_account_user" + groups="account.group_account_readonly" sequence="1"/> <menuitem id="menu_action_account_moves_ledger_general" action="action_account_moves_ledger_general" parent="account.menu_finance_entries_accounting_ledgers" - groups="account.group_account_user" + groups="account.group_account_readonly" sequence="1"/> <menuitem id="menu_action_account_moves_ledger_partner" action="action_account_moves_ledger_partner" parent="account.menu_finance_entries_accounting_ledgers" - groups="account.group_account_user" + groups="account.group_account_readonly" sequence="1"/> </data> diff --git a/addons/account/views/account_payment_view.xml b/addons/account/views/account_payment_view.xml index e597561d5b7c..9e15c8c37737 100644 --- a/addons/account/views/account_payment_view.xml +++ b/addons/account/views/account_payment_view.xml @@ -124,7 +124,7 @@ <form string="Register Payment"> <header> <button name="post" class="oe_highlight" states="draft" string="Confirm" type="object"/> - <button name="action_draft" class="btn btn-secondary" attrs="{'invisible': [('state', '=', 'draft')]}" string="Reset To Draft" type="object"/> + <button name="action_draft" class="btn btn-secondary" attrs="{'invisible': [('state', '=', 'draft')]}" string="Reset To Draft" type="object" groups="account.group_account_invoice"/> <button name="cancel" states="draft" string="Cancel" type="object"/> <field name="state" widget="statusbar" statusbar_visible="draft,posted,reconciled,cancelled"/> </header> @@ -132,7 +132,7 @@ <div class="oe_button_box" name="button_box"> <button class="oe_stat_button" name="button_journal_entries" string="Journal Items" type="object" - groups="account.group_account_user" + groups="account.group_account_readonly" attrs="{'invisible':[('move_line_ids','=',[])]}" icon="fa-bars"/> <field name="move_line_ids" invisible="1"/> <button class="oe_stat_button" name="button_invoices" type="object" icon="fa-bars" attrs="{'invisible':[('reconciled_invoices_count','=', 0)]}" > @@ -178,7 +178,7 @@ <field name="payment_date"/> <field name="communication"/> </group> - <group name="payment_difference" attrs="{'invisible': [('payment_difference', '=', 0.0)]}" groups="account.group_account_user"> + <group name="payment_difference" attrs="{'invisible': [('payment_difference', '=', 0.0)]}" groups="account.group_account_readonly"> <label for="payment_difference"/> <div> <field name="payment_difference"/> @@ -319,6 +319,7 @@ <record id="action_account_invoice_from_list" model="ir.actions.server"> <field name="name">Register Payment</field> + <field name="groups_id" eval="[(4, ref('account.group_account_invoice'))]"/> <field name="model_id" ref="account.model_account_payment"/> <field name="binding_model_id" ref="account.model_account_move"/> <field name="binding_view_types">list</field> @@ -333,6 +334,7 @@ <field name="name">Post Payments</field> <field name="type">ir.actions.server</field> <field name="state">code</field> + <field name="groups_id" eval="[(4, ref('account.group_account_invoice'))]"/> <field name="model_id" ref="account.model_account_payment"/> <field name="binding_model_id" ref="account.model_account_payment"/> <field name="binding_view_types">list</field> diff --git a/addons/account/views/account_portal_templates.xml b/addons/account/views/account_portal_templates.xml index deff73f9ebf3..5be631c873a3 100644 --- a/addons/account/views/account_portal_templates.xml +++ b/addons/account/views/account_portal_templates.xml @@ -74,7 +74,7 @@ <template id="portal_invoice_page" name="Invoice Portal Template" inherit_id="portal.portal_sidebar" primary="True"> <xpath expr="//div[hasclass('o_portal_sidebar')]" position="inside"> - <t t-set="o_portal_fullwidth_alert" groups="sales_team.group_sale_salesman,account.group_account_invoice"> + <t t-set="o_portal_fullwidth_alert" groups="sales_team.group_sale_salesman,account.group_account_invoice,account.group_account_readonly"> <t t-call="portal.portal_back_in_edit_mode"> <t t-set="backend_url" t-value="'/web#model=%s&id=%s&action=%s&view_type=form' % (invoice._name, invoice.id, invoice.env.ref('account.action_move_out_invoice_type').id)"/> </t> diff --git a/addons/account/views/account_report.xml b/addons/account/views/account_report.xml index 034e0a5303c1..70a793113f22 100644 --- a/addons/account/views/account_report.xml +++ b/addons/account/views/account_report.xml @@ -11,7 +11,7 @@ file="account.report_invoice_with_payments" attachment="(object.state == 'posted') and ((object.name or 'INV').replace('/','_')+'.pdf')" print_report_name="(object._get_report_base_filename())" - groups="account.group_account_invoice" + groups="account.group_account_invoice,account.group_account_readonly" /> <record id="action_account_original_vendor_bill" model="ir.actions.report"> @@ -57,7 +57,7 @@ /> <report - id="action_report_account_statement" + id="action_report_account_statement" model="account.bank.statement" string="Statement" name="account.report_statement" diff --git a/addons/account/views/account_view.xml b/addons/account/views/account_view.xml index f9313188b600..69982c353856 100644 --- a/addons/account/views/account_view.xml +++ b/addons/account/views/account_view.xml @@ -143,7 +143,7 @@ <field name="context">{'search_default_activeacc': True}</field> </record> - <menuitem action="action_account_form" id="menu_action_account_form" parent="account.account_account_menu" groups="account.group_account_user" sequence="1"/> + <menuitem action="action_account_form" id="menu_action_account_form" parent="account.account_account_menu" groups="account.group_account_readonly" sequence="1"/> <record id="action_duplicate_account" model="ir.actions.server"> <field name="name">Duplicate</field> @@ -277,7 +277,7 @@ <field name="bank_id"/> </group> <group > - <field name="bank_statements_source" widget="radio" attrs="{'required': [('type', '=', 'bank')]}" groups="account.group_account_user"/> + <field name="bank_statements_source" widget="radio" attrs="{'required': [('type', '=', 'bank')]}" groups="account.group_account_readonly"/> </group> </group> </page> @@ -303,8 +303,8 @@ </div> </group> <group> - <field name="default_debit_account_id" options="{'no_create': True}" domain="[('deprecated', '=', False)]" groups="account.group_account_user"/> - <field name="default_credit_account_id" options="{'no_create': True}" domain="[('deprecated', '=', False)]" groups="account.group_account_user"/> + <field name="default_debit_account_id" options="{'no_create': True}" domain="[('deprecated', '=', False)]" groups="account.group_account_readonly"/> + <field name="default_credit_account_id" options="{'no_create': True}" domain="[('deprecated', '=', False)]" groups="account.group_account_readonly"/> <field name="currency_id" options="{'no_create': True}" groups="base.group_multi_currency"/> </group> </group> @@ -327,7 +327,7 @@ <a type='action' name='%(action_open_settings)d' class="btn btn-link" role="button"><i class="fa fa-fw o_button_icon fa-arrow-right"/> Configure Email Servers</a> </div> </group> - <group string="Posting" name="column_posting" groups="account.group_account_user,account.group_account_manager" attrs="{'invisible': [('type', 'not in', ['bank', 'cash'])]}"> + <group string="Posting" name="column_posting" groups="account.group_account_readonly" attrs="{'invisible': [('type', 'not in', ['bank', 'cash'])]}"> <field name="profit_account_id" options="{'no_create': True}" attrs="{'invisible': [('type', '!=', 'cash')]}"/> <field name="loss_account_id" options="{'no_create': True}" attrs="{'invisible': [('type', '!=', 'cash')]}"/> <field name="post_at" widget="radio" attrs="{'invisible': [('type', 'not in', ['bank', 'cash'])]}"/> @@ -336,7 +336,7 @@ <div class="text-muted" colspan="2">Keep empty for no control</div> <field name="type_control_ids" widget="many2many_tags"/> <field name="account_control_ids" widget="many2many_tags"/> - <field name="restrict_mode_hash_table" groups="account.group_account_user"/> + <field name="restrict_mode_hash_table" groups="account.group_account_readonly"/> </group> <group string="Payment Method Types" attrs="{'invisible': [('type', 'not in', ['bank', 'cash'])]}"> <field name="inbound_payment_method_ids" widget="many2many_checkboxes"/> @@ -996,7 +996,7 @@ action = model.setting_init_bank_account_action() id="account_report_folder" name="Reporting" parent="account_account_menu" - groups="account.group_account_manager" + groups="account.group_account_readonly" sequence="4"/> <!-- Account Types --> @@ -1209,9 +1209,9 @@ action = model.setting_init_bank_account_action() <field name="price_include" attrs="{'invisible':[('amount_type','=', 'group')]}" /> <field name="include_base_amount" attrs="{'invisible':[('amount_type','=', 'group')]}" /> <field name="hide_tax_exigibility" invisible="1"/> - <field name="tax_exigibility" widget="radio" attrs="{'invisible':['|', ('amount_type','=', 'group'), ('hide_tax_exigibility', '=', False)]}" groups="account.group_account_user"/> - <field name="cash_basis_base_account_id" options="{'no_create': True}" attrs="{'invisible': [('tax_exigibility', '=', 'on_invoice')]}" groups="account.group_account_user"/> - <field name="cash_basis_transition_account_id" options="{'no_create': True}" attrs="{'invisible': [('tax_exigibility', '=', 'on_invoice')], 'required': [('tax_exigibility', '=', 'on_payment')]}" groups="account.group_account_user"/> + <field name="tax_exigibility" widget="radio" attrs="{'invisible':['|', ('amount_type','=', 'group'), ('hide_tax_exigibility', '=', False)]}" groups="account.group_account_readonly"/> + <field name="cash_basis_base_account_id" options="{'no_create': True}" attrs="{'invisible': [('tax_exigibility', '=', 'on_invoice')]}" groups="account.group_account_readonly"/> + <field name="cash_basis_transition_account_id" options="{'no_create': True}" attrs="{'invisible': [('tax_exigibility', '=', 'on_invoice')], 'required': [('tax_exigibility', '=', 'on_payment')]}" groups="account.group_account_readonly"/> </group> </group> </page> diff --git a/addons/account/views/partner_view.xml b/addons/account/views/partner_view.xml index ebccc1925ac1..1a706e80aa31 100644 --- a/addons/account/views/partner_view.xml +++ b/addons/account/views/partner_view.xml @@ -51,7 +51,7 @@ </field> </group> </page> - <page name="account_mapping" string="Account Mapping" groups="account.group_account_user"> + <page name="account_mapping" string="Account Mapping" groups="account.group_account_readonly"> <group> <field name="account_ids" widget="one2many" nolabel="1"> <tree string="Account Mapping" editable="bottom"> @@ -113,7 +113,7 @@ <field name="model">res.partner</field> <field name="inherit_id" ref="base.view_partner_form" /> <field name="priority" eval="11"/> - <field name="groups_id" eval="[(4, ref('account.group_account_invoice'))]"/> + <field name="groups_id" eval="[(4, ref('account.group_account_invoice')), (4, ref('account.group_account_readonly'))]"/> <field name="arch" type="xml"> <div name="button_box" position="inside"> <button type="object" class="oe_stat_button" icon="fa-pencil-square-o" name="action_view_partner_invoices" @@ -167,9 +167,9 @@ <field name="groups_id" eval="[(5,)]"/> <field name="arch" type="xml"> <page name="sales_purchases" position="after"> - <page string="Invoicing" name="accounting" attrs="{'invisible': [('is_company','=',False),('parent_id','!=',False)]}" groups="account.group_account_invoice"> + <page string="Invoicing" name="accounting" attrs="{'invisible': [('is_company','=',False),('parent_id','!=',False)]}" groups="account.group_account_invoice,account.group_account_readonly"> <group> - <group string="Bank Accounts" name="banks" groups="account.group_account_invoice"> + <group string="Bank Accounts" name="banks" groups="account.group_account_invoice,account.group_account_readonly"> <field name="bank_ids" nolabel="1"> <tree editable="bottom"> <field name="sequence" widget="handle"/> @@ -185,29 +185,29 @@ colspan="2" /> </group> - <group string="Accounting Entries" name="accounting_entries" groups="account.group_account_user"> + <group string="Accounting Entries" name="accounting_entries" groups="account.group_account_readonly"> <field name="currency_id" invisible="1"/> <field name="property_account_receivable_id"/> <field name="property_account_payable_id"/> </group> </group> </page> - <page string="Invoicing" name="accounting_disabled" attrs="{'invisible': ['|',('is_company','=',True),('parent_id','=',False)]}" groups="account.group_account_invoice"> + <page string="Invoicing" name="accounting_disabled" attrs="{'invisible': ['|',('is_company','=',True),('parent_id','=',False)]}" groups="account.group_account_invoice,account.group_account_readonly"> <div> <p>Accounting-related settings are managed on <button name="open_commercial_entity" type="object" string="the parent company" class="oe_link"/></p> </div> </page> </page> <xpath expr="//group[@name='misc']" position="before"> - <group string="Fiscal Information" name="fiscal_information" priority="5" groups="account.group_account_invoice"> + <group string="Fiscal Information" name="fiscal_information" priority="5" groups="account.group_account_invoice,account.group_account_readonly"> <field name="property_account_position_id" options="{'no_create': True, 'no_open': True}"/> </group> </xpath> <group name="sale" position="inside"> - <field string="Payment Terms" name="property_payment_term_id" widget="selection" groups="account.group_account_invoice"/> + <field string="Payment Terms" name="property_payment_term_id" widget="selection" groups="account.group_account_invoice,account.group_account_readonly"/> </group> <group name="purchase" position="inside"> - <field string="Payment Terms" name="property_supplier_payment_term_id" widget="selection" groups="account.group_account_invoice"/> + <field string="Payment Terms" name="property_supplier_payment_term_id" widget="selection" groups="account.group_account_invoice,account.group_account_readonly"/> </group> </field> </record> diff --git a/addons/account/views/product_view.xml b/addons/account/views/product_view.xml index d7c4b77e3835..8f000c0c714e 100644 --- a/addons/account/views/product_view.xml +++ b/addons/account/views/product_view.xml @@ -11,17 +11,17 @@ <attribute name="invisible">0</attribute> </xpath> <page name="inventory" position="after"> - <page string="Accounting" name="invoicing" groups="account.group_account_user"> + <page string="Accounting" name="invoicing" groups="account.group_account_readonly"> <group name="properties"> <group string="Receivables"> <field name="property_account_income_id" domain="[('internal_type','=','other'),('deprecated','=',False)]" - groups="account.group_account_user"/> + groups="account.group_account_readonly"/> </group> <group string="Payables" name="payables"> <field name="property_account_expense_id" domain="[('internal_type','=','other'),('deprecated','=',False)]" - groups="account.group_account_user"/> + groups="account.group_account_readonly"/> </group> </group> <group name="accounting"/> @@ -43,7 +43,7 @@ <field name="arch" type="xml"> <group name="first" position="after"> <group name="account_property" > - <group string="Account Properties" groups="account.group_account_user"> + <group string="Account Properties" groups="account.group_account_readonly"> <field name="property_account_income_categ_id" domain="[('internal_type','=','other'),('deprecated', '=', False)]"/> <field name="property_account_expense_categ_id" domain="[('internal_type','=','other'),('deprecated', '=', False)]"/> </group> diff --git a/addons/account/views/res_config_settings_views.xml b/addons/account/views/res_config_settings_views.xml index 3c8fbffd5097..e27e635023b7 100644 --- a/addons/account/views/res_config_settings_views.xml +++ b/addons/account/views/res_config_settings_views.xml @@ -416,7 +416,7 @@ <field name="account_bank_reconciliation_start"/> </div> </div> - <div class="col-12 col-lg-6 o_setting_box" + <div class="col-12 col-lg-6 o_setting_box" id="account_yodlee" title="Get your bank statements automatically imported every 4 hours, or in one-click, using Yodlee and Plaid services. Once installed, set “Bank Feeds†to “Bank Synchronization†in bank account settings. Then, click “Configure†on the online account to enter your bank credentials."> <div class="o_setting_left_pane"> diff --git a/addons/account/wizard/account_move_reversal_view.xml b/addons/account/wizard/account_move_reversal_view.xml index 28371f68c908..00da15247201 100644 --- a/addons/account/wizard/account_move_reversal_view.xml +++ b/addons/account/wizard/account_move_reversal_view.xml @@ -51,6 +51,7 @@ <field name="view_mode">tree,form</field> <field name="view_id" ref="view_account_move_reversal"/> <field name="target">new</field> + <field name="groups_id" eval="[(4, ref('account.group_account_invoice'))]"/> <field name="binding_model_id" ref="account.model_account_move" /> <field name="binding_view_types">list</field> </record> diff --git a/addons/account/wizard/account_unreconcile_view.xml b/addons/account/wizard/account_unreconcile_view.xml index 5a6a1ae9b9d3..c1175301193f 100644 --- a/addons/account/wizard/account_unreconcile_view.xml +++ b/addons/account/wizard/account_unreconcile_view.xml @@ -19,6 +19,7 @@ <record id="action_account_unreconcile" model="ir.actions.act_window"> <field name="name">Unreconcile</field> + <field name="groups_id" eval="[(4, ref('account.group_account_user'))]"/> <field name="res_model">account.unreconcile</field> <field name="view_mode">form</field> <field name="view_id" ref="account_unreconcile_view"/> diff --git a/addons/account/wizard/account_validate_move_view.xml b/addons/account/wizard/account_validate_move_view.xml index 062a2e5838e6..c6439570c6b0 100644 --- a/addons/account/wizard/account_validate_move_view.xml +++ b/addons/account/wizard/account_validate_move_view.xml @@ -26,6 +26,7 @@ <field name="context">{}</field> <field name="target">new</field> <field name="help">This wizard will validate all journal entries selected. Once journal entries are validated, you can not update them anymore.</field> + <field name="groups_id" eval="[(4, ref('account.group_account_invoice'))]"/> <field name="binding_model_id" ref="account.model_account_move" /> <field name="binding_view_types">list</field> </record> diff --git a/addons/account_analytic_default/security/ir.model.access.csv b/addons/account_analytic_default/security/ir.model.access.csv index 0189037ca458..3e0535f96c7a 100644 --- a/addons/account_analytic_default/security/ir.model.access.csv +++ b/addons/account_analytic_default/security/ir.model.access.csv @@ -1,4 +1,4 @@ id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink -access_account_analytic_default,account.analytic.default,model_account_analytic_default,account.group_account_user,1,0,0,0 +access_account_analytic_default,account.analytic.default,model_account_analytic_default,account.group_account_readonly,1,0,0,0 access_account_analytic_default_analytic,account.analytic.default analytic,model_account_analytic_default,analytic.group_analytic_accounting,1,0,0,0 access_account_analytic_default_invoice,account.analytic.default invoice,model_account_analytic_default,account.group_account_invoice,1,1,1,1 diff --git a/addons/account_check_printing/data/account_check_printing_data.xml b/addons/account_check_printing/data/account_check_printing_data.xml index 9f3fd4ded037..923e61cef294 100644 --- a/addons/account_check_printing/data/account_check_printing_data.xml +++ b/addons/account_check_printing/data/account_check_printing_data.xml @@ -16,6 +16,7 @@ <field name="model_id" ref="account.model_account_payment"/> <field name="binding_model_id" ref="account.model_account_payment" /> <field name="binding_view_types">list</field> + <field name="groups_id" eval="[(4, ref('account.group_account_user'))]"/> <field name="state">code</field> <field name="code"> if records: diff --git a/addons/hr_expense/views/hr_expense_views.xml b/addons/hr_expense/views/hr_expense_views.xml index 15db591d01eb..545d30c1e921 100644 --- a/addons/hr_expense/views/hr_expense_views.xml +++ b/addons/hr_expense/views/hr_expense_views.xml @@ -105,12 +105,12 @@ <field name="quantity" class="oe_inline"/> <field name="product_uom_id" required="1" widget="selection" class="oe_inline" groups="uom.group_uom"/> </div> - <field name="tax_ids" widget="many2many_tags" groups="account.group_account_user" attrs="{'readonly': [('is_editable', '=', False)]}" context="{'default_company_id': company_id}"/> + <field name="tax_ids" widget="many2many_tags" groups="account.group_account_readonly" attrs="{'readonly': [('is_editable', '=', False)]}" context="{'default_company_id': company_id}"/> <field name="total_amount" widget='monetary' options="{'currency_field': 'currency_id'}"/> </group><group> <field name="reference" attrs="{'readonly': [('is_ref_editable', '=', False)]}"/> <field name="date"/> - <field name="account_id" options="{'no_create': True}" domain="[('internal_type', '=', 'other'), ('company_id', '=', company_id)]" groups="account.group_account_user" attrs="{'readonly': [('is_editable', '=', False)]}" context="{'default_company_id': company_id}"/> + <field name="account_id" options="{'no_create': True}" domain="[('internal_type', '=', 'other'), ('company_id', '=', company_id)]" groups="account.group_account_readonly" attrs="{'readonly': [('is_editable', '=', False)]}" context="{'default_company_id': company_id}"/> <field name="employee_id" groups="hr_expense.group_hr_expense_team_approver" context="{'default_company_id': company_id}"/> <field name="sheet_id" invisible="1"/> <field name="currency_id" groups="base.group_multi_currency"/> @@ -351,7 +351,7 @@ <field name="company_id" groups="base.group_multi_company"/> </group> <group string="Accounting"> - <field name="property_account_expense_id" groups="account.group_account_user"/> + <field name="property_account_expense_id" groups="account.group_account_readonly"/> <field name="supplier_taxes_id" widget="many2many_tags" context="{'default_type_tax_use':'purchase'}"/> <field name="taxes_id" widget="many2many_tags" context="{'default_type_tax_use':'sale'}"/> </group> @@ -534,7 +534,7 @@ <field name="currency_id" optional="hide"/> <field name="quantity" optional="hide"/> <field name="company_id"/> - <field name="tax_ids" optional="hide" widget="many2many_tags" groups="account.group_account_user" context="{'default_company_id': company_id}"/> + <field name="tax_ids" optional="hide" widget="many2many_tags" groups="account.group_account_readonly" context="{'default_company_id': company_id}"/> <field name="total_amount" optional="show"/> <field name="company_currency_id" invisible="1"/> <field name="total_amount_company" optional="show" groups="base.group_multi_currency"/> @@ -553,11 +553,11 @@ <group> <group> <field name="journal_id" options="{'no_open': True, 'no_create': True}" attrs="{'invisible': [('payment_mode', '!=', 'own_account')]}" context="{'default_company_id': company_id}"/> - <field name="bank_journal_id" groups="account.group_account_user" options="{'no_open': True, 'no_create': True}" attrs="{'invisible': [('payment_mode', '!=', 'company_account')]}" context="{'default_company_id': company_id}"/> - <field name="accounting_date" groups="account.group_account_user" attrs="{'invisible': [('state', 'not in', ['approve', 'post', 'done'])]}"/> + <field name="bank_journal_id" groups="account.group_account_readonly" options="{'no_open': True, 'no_create': True}" attrs="{'invisible': [('payment_mode', '!=', 'company_account')]}" context="{'default_company_id': company_id}"/> + <field name="accounting_date" groups="account.group_account_readonly" attrs="{'invisible': [('state', 'not in', ['approve', 'post', 'done'])]}"/> </group> <group> - <field name="account_move_id" groups="account.group_account_user" attrs="{'invisible': [('state', 'not in', ['post', 'done'])]}" readonly="1"/> + <field name="account_move_id" groups="account.group_account_readonly" attrs="{'invisible': [('state', 'not in', ['post', 'done'])]}" readonly="1"/> </group> </group> </page> @@ -867,9 +867,9 @@ if records: <menuitem id="menu_hr_expense_sheet_all_to_approve" name="To Approve" sequence="1" parent="menu_hr_expense_report" action="action_hr_expense_sheet_all_to_approve"/> <menuitem id="menu_hr_expense_sheet_all_to_post" name="To Post" sequence="2" parent="menu_hr_expense_report" - action="action_hr_expense_sheet_all_to_post" groups="account.group_account_user"/> + action="action_hr_expense_sheet_all_to_post" groups="account.group_account_readonly"/> <menuitem id="menu_hr_expense_sheet_all_to_pay" name="To Pay" sequence="3" parent="menu_hr_expense_report" - action="action_hr_expense_sheet_all_to_pay" groups="account.group_account_user"/> + action="action_hr_expense_sheet_all_to_pay" groups="account.group_account_readonly"/> <menuitem id="menu_hr_expense_reports" name="Reporting" sequence="4" parent="menu_hr_expense_root" groups="hr_expense.group_hr_expense_manager"/> <menuitem id="menu_hr_expense_all_expenses" name="Expenses Analysis" sequence="0" parent="menu_hr_expense_reports" action="hr_expense_actions_all"/> diff --git a/addons/l10n_ae/data/l10n_ae_chart_data.xml b/addons/l10n_ae/data/l10n_ae_chart_data.xml index eb6481643862..337ef71fea70 100644 --- a/addons/l10n_ae/data/l10n_ae_chart_data.xml +++ b/addons/l10n_ae/data/l10n_ae_chart_data.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <odoo> - <menuitem id="account_reports_ae_statements_menu" name="UAE" parent="account.menu_finance_reports" sequence="0" groups="account.group_account_user"/> + <menuitem id="account_reports_ae_statements_menu" name="UAE" parent="account.menu_finance_reports" sequence="0" groups="account.group_account_readonly"/> <record id="uae_chart_template_standard" model="account.chart.template"> <field name="name">U.A.E Chart of Accounts - Standard</field> diff --git a/addons/l10n_ar/data/account_chart_template_data2.xml b/addons/l10n_ar/data/account_chart_template_data2.xml index f5227d6c0764..24a82b56b1b6 100644 --- a/addons/l10n_ar/data/account_chart_template_data2.xml +++ b/addons/l10n_ar/data/account_chart_template_data2.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8"?> <odoo noupdate="0"> - <menuitem id="account_reports_ar_statements_menu" name="Argentinian Statements" parent="account.menu_finance_reports" sequence="3" groups="account.group_account_user"/> + <menuitem id="account_reports_ar_statements_menu" name="Argentinian Statements" parent="account.menu_finance_reports" sequence="3" groups="account.group_account_readonly"/> <record id="l10nar_base_chart_template" model="account.chart.template"> <field name="property_account_receivable_id" ref="base_deudores_por_ventas"/> diff --git a/addons/l10n_ar/report/invoice_report_view.xml b/addons/l10n_ar/report/invoice_report_view.xml index 6af473a6b51e..97e565781ace 100644 --- a/addons/l10n_ar/report/invoice_report_view.xml +++ b/addons/l10n_ar/report/invoice_report_view.xml @@ -12,7 +12,7 @@ </search> <filter name="user" position="after"> <filter string="State" name="groupby_l10n_ar_state_id" context="{'group_by': 'l10n_ar_state_id'}"/> - <filter string="Account" name="groupby_account_id" context="{'group_by':'account_id'}" groups="account.group_account_user" /> + <filter string="Account" name="groupby_account_id" context="{'group_by':'account_id'}" groups="account.group_account_readonly" /> </filter> </field> </record> diff --git a/addons/l10n_at/data/account_chart_template.xml b/addons/l10n_at/data/account_chart_template.xml index 90ca464cae4e..4ab0bdd17285 100644 --- a/addons/l10n_at/data/account_chart_template.xml +++ b/addons/l10n_at/data/account_chart_template.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <odoo> - <menuitem id="menu_finance_austria" name="Austria" parent="account.menu_finance_reports" sequence="-1" groups="account.group_account_user"/> + <menuitem id="menu_finance_austria" name="Austria" parent="account.menu_finance_reports" sequence="-1" groups="account.group_account_readonly"/> <data> <!-- Vorlagen: Kontenplan --> diff --git a/addons/l10n_be/data/menuitem_data.xml b/addons/l10n_be/data/menuitem_data.xml index 08e4e2991dca..d7547019cef2 100644 --- a/addons/l10n_be/data/menuitem_data.xml +++ b/addons/l10n_be/data/menuitem_data.xml @@ -1,4 +1,4 @@ <?xml version="1.0" encoding="utf-8"?> <odoo> - <menuitem id="account_reports_be_statements_menu" name="Belgium" parent="account.menu_finance_reports" sequence="0" groups="account.group_account_user"/> + <menuitem id="account_reports_be_statements_menu" name="Belgium" parent="account.menu_finance_reports" sequence="0" groups="account.group_account_readonly"/> </odoo> diff --git a/addons/l10n_bo/data/l10n_bo_chart_data.xml b/addons/l10n_bo/data/l10n_bo_chart_data.xml index e64fbc31a26e..2cd7ead995ab 100644 --- a/addons/l10n_bo/data/l10n_bo_chart_data.xml +++ b/addons/l10n_bo/data/l10n_bo_chart_data.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <odoo> - <menuitem id="account_reports_bo_statements_menu" name="Bolivia" parent="account.menu_finance_reports" sequence="0" groups="account.group_account_user"/> + <menuitem id="account_reports_bo_statements_menu" name="Bolivia" parent="account.menu_finance_reports" sequence="0" groups="account.group_account_readonly"/> <record id="bo_chart_template" model="account.chart.template"> <field name="name">Bolivia - Plan de Cuentas</field> diff --git a/addons/l10n_br/data/l10n_br_chart_data.xml b/addons/l10n_br/data/l10n_br_chart_data.xml index 05ec37f20872..fda672e894cb 100644 --- a/addons/l10n_br/data/l10n_br_chart_data.xml +++ b/addons/l10n_br/data/l10n_br_chart_data.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <odoo> - <menuitem id="account_reports_br_statements_menu" name="Brazil" parent="account.menu_finance_reports" sequence="0" groups="account.group_account_user"/> + <menuitem id="account_reports_br_statements_menu" name="Brazil" parent="account.menu_finance_reports" sequence="0" groups="account.group_account_readonly"/> <record id="l10n_br_account_chart_template" model="account.chart.template"> <field name="name">Planilha de Contas Brasileira</field> diff --git a/addons/l10n_ch/data/l10n_ch_chart_data.xml b/addons/l10n_ch/data/l10n_ch_chart_data.xml index 484af4b7ee25..7fba5530b7a3 100644 --- a/addons/l10n_ch/data/l10n_ch_chart_data.xml +++ b/addons/l10n_ch/data/l10n_ch_chart_data.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <odoo> - <menuitem id="account_reports_ch_statements_menu" name="Switzerland" parent="account.menu_finance_reports" sequence="0" groups="account.group_account_user"/> + <menuitem id="account_reports_ch_statements_menu" name="Switzerland" parent="account.menu_finance_reports" sequence="0" groups="account.group_account_readonly"/> <data noupdate="1"> <!-- Account Tags --> diff --git a/addons/l10n_cl/data/menuitem_data.xml b/addons/l10n_cl/data/menuitem_data.xml index d5b35a260225..effb0ee9ba4d 100644 --- a/addons/l10n_cl/data/menuitem_data.xml +++ b/addons/l10n_cl/data/menuitem_data.xml @@ -1,4 +1,4 @@ <?xml version="1.0" encoding="utf-8"?> <odoo> - <menuitem id="account_reports_cl_statements_menu" name="Chile" parent="account.menu_finance_reports" sequence="0" groups="account.group_account_user"/> -</odoo> \ No newline at end of file + <menuitem id="account_reports_cl_statements_menu" name="Chile" parent="account.menu_finance_reports" sequence="0" groups="account.group_account_readonly"/> +</odoo> diff --git a/addons/l10n_co/data/account_chart_template_data.xml b/addons/l10n_co/data/account_chart_template_data.xml index 62cae3454977..50e31aec84b4 100644 --- a/addons/l10n_co/data/account_chart_template_data.xml +++ b/addons/l10n_co/data/account_chart_template_data.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8"?> <odoo> - <menuitem id="account_reports_co_statements_menu" name="Colombia" parent="account.menu_finance_reports" sequence="0" groups="account.group_account_user"/> - + <menuitem id="account_reports_co_statements_menu" name="Colombia" parent="account.menu_finance_reports" sequence="0" groups="account.group_account_readonly"/> + <!-- Chart Template --> <record id="l10n_co_chart_template_generic" model="account.chart.template"> <field name="property_account_receivable_id" ref="co_puc_130505"/> diff --git a/addons/l10n_de/data/menuitem_data.xml b/addons/l10n_de/data/menuitem_data.xml index 1ab90dd1b7fc..bcf3165a4428 100644 --- a/addons/l10n_de/data/menuitem_data.xml +++ b/addons/l10n_de/data/menuitem_data.xml @@ -1,4 +1,4 @@ <?xml version="1.0" encoding="utf-8"?> <odoo> - <menuitem id="account_reports_de_statements_menu" name="Germany" parent="account.menu_finance_reports" sequence="0" groups="account.group_account_user"/> + <menuitem id="account_reports_de_statements_menu" name="Germany" parent="account.menu_finance_reports" sequence="0" groups="account.group_account_readonly"/> </odoo> diff --git a/addons/l10n_do/data/l10n_do_chart_data.xml b/addons/l10n_do/data/l10n_do_chart_data.xml index 13e4cdf8969b..3b24155542f6 100644 --- a/addons/l10n_do/data/l10n_do_chart_data.xml +++ b/addons/l10n_do/data/l10n_do_chart_data.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <odoo> - <menuitem id="account_reports_do_statements_menu" name="Dominican Republic" parent="account.menu_finance_reports" sequence="0" groups="account.group_account_user"/> + <menuitem id="account_reports_do_statements_menu" name="Dominican Republic" parent="account.menu_finance_reports" sequence="0" groups="account.group_account_readonly"/> <!-- Chart of Accounts Template --> <record id="do_chart_template" model="account.chart.template"> diff --git a/addons/l10n_et/data/l10n_et_chart_data.xml b/addons/l10n_et/data/l10n_et_chart_data.xml index 73daa2ad63f8..127143d6d111 100644 --- a/addons/l10n_et/data/l10n_et_chart_data.xml +++ b/addons/l10n_et/data/l10n_et_chart_data.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <odoo> - <menuitem id="account_reports_et_statements_menu" name="Ethiopia" parent="account.menu_finance_reports" sequence="0" groups="account.group_account_user"/> + <menuitem id="account_reports_et_statements_menu" name="Ethiopia" parent="account.menu_finance_reports" sequence="0" groups="account.group_account_readonly"/> <record id="l10n_et" model="account.chart.template"> <field name="name">Ethiopia Tax and Account Chart Template</field> diff --git a/addons/l10n_fr/data/account_chart_template_data.xml b/addons/l10n_fr/data/account_chart_template_data.xml index 984064056f74..be9387183c3e 100644 --- a/addons/l10n_fr/data/account_chart_template_data.xml +++ b/addons/l10n_fr/data/account_chart_template_data.xml @@ -10,7 +10,7 @@ <field name="applicability">accounts</field> </record> - <menuitem id="account_reports_fr_statements_menu" name="France" parent="account.menu_finance_reports" sequence="0" groups="account.group_account_user"/> + <menuitem id="account_reports_fr_statements_menu" name="France" parent="account.menu_finance_reports" sequence="0" groups="account.group_account_readonly"/> <record id="l10n_fr_pcg_chart_template" model="account.chart.template"> <field name="property_account_receivable_id" ref="fr_pcg_recv"/> diff --git a/addons/l10n_fr_pos_cert/views/account_sale_closure.xml b/addons/l10n_fr_pos_cert/views/account_sale_closure.xml index 24e4c14cd71c..1a94ad56a98a 100644 --- a/addons/l10n_fr_pos_cert/views/account_sale_closure.xml +++ b/addons/l10n_fr_pos_cert/views/account_sale_closure.xml @@ -37,8 +37,8 @@ <group> <field name="total_interval"/> <field name="cumulative_total"/> - <field name="last_order_id" groups="account.group_account_user"/> - <field name="last_order_hash" groups="account.group_account_user"/> + <field name="last_order_id" groups="account.group_account_readonly"/> + <field name="last_order_hash" groups="account.group_account_readonly"/> </group> <group> <field name="company_id" groups="base.group_multi_company"/> diff --git a/addons/l10n_gr/data/l10n_gr_chart_data.xml b/addons/l10n_gr/data/l10n_gr_chart_data.xml index e77991bc2c4c..6dd19e77f7e6 100644 --- a/addons/l10n_gr/data/l10n_gr_chart_data.xml +++ b/addons/l10n_gr/data/l10n_gr_chart_data.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8"?> <odoo> - <menuitem id="account_reports_gr_statements_menu" name="Greece" parent="account.menu_finance_reports" sequence="0" groups="account.group_account_user"/> + <menuitem id="account_reports_gr_statements_menu" name="Greece" parent="account.menu_finance_reports" sequence="0" groups="account.group_account_readonly"/> <record id="l10n_gr_chart_template" model="account.chart.template"> <field name="name">Î Ïότυπο Î•Î»Î»Î·Î½Î¹ÎºÎ¿Ï Î›Î¿Î³Î¹ÏƒÏ„Î¹ÎºÎ¿Ï Î£Ï‡ÎµÎ´Î¯Î¿Ï…</field> diff --git a/addons/l10n_hr/data/l10n_hr_chart_data.xml b/addons/l10n_hr/data/l10n_hr_chart_data.xml index 82ccb4abdf96..6653fe99cccb 100644 --- a/addons/l10n_hr/data/l10n_hr_chart_data.xml +++ b/addons/l10n_hr/data/l10n_hr_chart_data.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <odoo> - <menuitem id="account_reports_hr_statements_menu" name="Croatia" parent="account.menu_finance_reports" sequence="0" groups="account.group_account_user"/> + <menuitem id="account_reports_hr_statements_menu" name="Croatia" parent="account.menu_finance_reports" sequence="0" groups="account.group_account_readonly"/> <data noupdate="1"> diff --git a/addons/l10n_hu/data/l10n_hu_chart_data.xml b/addons/l10n_hu/data/l10n_hu_chart_data.xml index 0d8b0341a3b6..555d05c9bdfd 100644 --- a/addons/l10n_hu/data/l10n_hu_chart_data.xml +++ b/addons/l10n_hu/data/l10n_hu_chart_data.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <odoo> - <menuitem id="account_reports_hu_statements_menu" name="Hungary" parent="account.menu_finance_reports" sequence="0" groups="account.group_account_user"/> + <menuitem id="account_reports_hu_statements_menu" name="Hungary" parent="account.menu_finance_reports" sequence="0" groups="account.group_account_readonly"/> <record id="hungarian_chart_template" model="account.chart.template"> <field name="name">Magyar fÅ‘könyvi kivonat</field> @@ -10,4 +10,4 @@ <field name="transfer_account_code_prefix">389</field> <field name="currency_id" ref="base.HUF"/> </record> -</odoo> \ No newline at end of file +</odoo> diff --git a/addons/l10n_ie/data/account_chart_template.xml b/addons/l10n_ie/data/account_chart_template.xml index a757b06019bd..649c09d6657a 100644 --- a/addons/l10n_ie/data/account_chart_template.xml +++ b/addons/l10n_ie/data/account_chart_template.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <odoo noupdate="1"> - <menuitem id="account_reports_ie_statements_menu" name="Irish Statements" parent="account.menu_finance_reports" sequence="3" groups="account.group_account_user"/> + <menuitem id="account_reports_ie_statements_menu" name="Irish Statements" parent="account.menu_finance_reports" sequence="3" groups="account.group_account_readonly"/> <!-- Chart template --> <record id="l10n_ie" model="account.chart.template"> diff --git a/addons/l10n_lu/data/l10n_lu_chart_data.xml b/addons/l10n_lu/data/l10n_lu_chart_data.xml index 537b6210167b..4b68af3affde 100644 --- a/addons/l10n_lu/data/l10n_lu_chart_data.xml +++ b/addons/l10n_lu/data/l10n_lu_chart_data.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <odoo> - <menuitem id="account_reports_lu_statements_menu" name="Luxembourg" parent="account.menu_finance_reports" sequence="0" groups="account.group_account_user"/> + <menuitem id="account_reports_lu_statements_menu" name="Luxembourg" parent="account.menu_finance_reports" sequence="0" groups="account.group_account_readonly"/> <record id="lu_2011_chart_1" model="account.chart.template"> <field name="name">PCMN Luxembourg</field> diff --git a/addons/l10n_ma/data/l10n_ma_chart_data.xml b/addons/l10n_ma/data/l10n_ma_chart_data.xml index 76c0d2577998..5943976bab23 100644 --- a/addons/l10n_ma/data/l10n_ma_chart_data.xml +++ b/addons/l10n_ma/data/l10n_ma_chart_data.xml @@ -1,12 +1,12 @@ <?xml version="1.0" encoding="ISO-8859-15"?> <odoo> - <!-- + <!-- Plan comptable général pour le Maroc. Version du fichier : 13-10-2010 Mis en place par la société Kazacube - partenaire OpenERP au Maroc Vérifié et validé par le cabinet SEDDIK d'expertise comptable, Casablanca. - --> - <menuitem id="account_reports_ma_statements_menu" name="Morocco" parent="account.menu_finance_reports" sequence="0" groups="account.group_account_user"/> + --> + <menuitem id="account_reports_ma_statements_menu" name="Morocco" parent="account.menu_finance_reports" sequence="0" groups="account.group_account_readonly"/> <record id="l10n_kzc_temp_chart" model="account.chart.template"> <field name="name">Plan comptable marocain</field> diff --git a/addons/l10n_mn/data/account_chart_template_data.xml b/addons/l10n_mn/data/account_chart_template_data.xml index 0d24db968033..29400dfaaaf5 100644 --- a/addons/l10n_mn/data/account_chart_template_data.xml +++ b/addons/l10n_mn/data/account_chart_template_data.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8"?> <odoo> - <menuitem id="account_reports_mn_statements_menu" name="Mongolia" parent="account.menu_finance_reports" sequence="0" groups="account.group_account_user"/> + <menuitem id="account_reports_mn_statements_menu" name="Mongolia" parent="account.menu_finance_reports" sequence="0" groups="account.group_account_readonly"/> <record id="mn_chart_1" model="account.chart.template"> <field name="name">Mongolia</field> diff --git a/addons/l10n_nl/data/menuitem.xml b/addons/l10n_nl/data/menuitem.xml index 0f39553f2a06..303431e2949c 100644 --- a/addons/l10n_nl/data/menuitem.xml +++ b/addons/l10n_nl/data/menuitem.xml @@ -1,4 +1,4 @@ <?xml version="1.0" encoding="UTF-8"?> <odoo> - <menuitem id="account_reports_nl_statements_menu" name="Netherlands" parent="account.menu_finance_reports" sequence="0" groups="account.group_account_user"/> + <menuitem id="account_reports_nl_statements_menu" name="Netherlands" parent="account.menu_finance_reports" sequence="0" groups="account.group_account_readonly"/> </odoo> diff --git a/addons/l10n_no/data/l10n_no_chart_data.xml b/addons/l10n_no/data/l10n_no_chart_data.xml index 906cf42a6e82..cbc3d55993bd 100644 --- a/addons/l10n_no/data/l10n_no_chart_data.xml +++ b/addons/l10n_no/data/l10n_no_chart_data.xml @@ -1,10 +1,10 @@ <?xml version="1.0" encoding="utf-8"?> <odoo> - <menuitem id="account_reports_no_statements_menu" name="Norway" parent="account.menu_finance_reports" sequence="0" groups="account.group_account_user"/> + <menuitem id="account_reports_no_statements_menu" name="Norway" parent="account.menu_finance_reports" sequence="0" groups="account.group_account_readonly"/> <data noupdate="1"> - <menuitem id="account_reports_no_statements_menu" name="Norwegian Statements" parent="account.menu_finance_reports" sequence="0" groups="account.group_account_user"/> + <menuitem id="account_reports_no_statements_menu" name="Norwegian Statements" parent="account.menu_finance_reports" sequence="0" groups="account.group_account_readonly"/> <!-- COA Templates --> <record id="no_chart_template" model="account.chart.template"> diff --git a/addons/l10n_pl/data/l10n_pl_chart_data.xml b/addons/l10n_pl/data/l10n_pl_chart_data.xml index eabf177a7881..20afa256457e 100644 --- a/addons/l10n_pl/data/l10n_pl_chart_data.xml +++ b/addons/l10n_pl/data/l10n_pl_chart_data.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <odoo> -<menuitem id="account_reports_pl_statements_menu" name="Poland" parent="account.menu_finance_reports" sequence="0" groups="account.group_account_user"/> +<menuitem id="account_reports_pl_statements_menu" name="Poland" parent="account.menu_finance_reports" sequence="0" groups="account.group_account_readonly"/> <data noupdate="1"> diff --git a/addons/l10n_ro/data/l10n_ro_chart_data.xml b/addons/l10n_ro/data/l10n_ro_chart_data.xml index 8d89c28e74cc..e07d7167dd44 100644 --- a/addons/l10n_ro/data/l10n_ro_chart_data.xml +++ b/addons/l10n_ro/data/l10n_ro_chart_data.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <odoo> - <menuitem id="account_reports_ro_statements_menu" name="Romania" parent="account.menu_finance_reports" sequence="0" groups="account.group_account_user"/> + <menuitem id="account_reports_ro_statements_menu" name="Romania" parent="account.menu_finance_reports" sequence="0" groups="account.group_account_readonly"/> <!-- Chart template --> <record id="ro_chart_template" model="account.chart.template"> diff --git a/addons/l10n_sg/data/l10n_sg_chart_data.xml b/addons/l10n_sg/data/l10n_sg_chart_data.xml index ca5491cc2798..d5bad956b0aa 100644 --- a/addons/l10n_sg/data/l10n_sg_chart_data.xml +++ b/addons/l10n_sg/data/l10n_sg_chart_data.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <odoo> - <menuitem id="account_reports_sg_statements_menu" name="Singapore" parent="account.menu_finance_reports" sequence="0" groups="account.group_account_user"/> + <menuitem id="account_reports_sg_statements_menu" name="Singapore" parent="account.menu_finance_reports" sequence="0" groups="account.group_account_readonly"/> <record id="sg_chart_template" model="account.chart.template"> <field name="name">Singapore Chart of Accounts - Standard</field> @@ -290,7 +290,7 @@ <field name="chart_template_id" ref="sg_chart_template"/> <field name="reconcile" eval="False" /> </record> - + <record model="account.account.template" id="account_account_735"> <field name="name">Trade Receivable Account</field> <field name="code">100010</field> diff --git a/addons/l10n_si/data/l10n_si_chart_data.xml b/addons/l10n_si/data/l10n_si_chart_data.xml index 0e5c0958382d..d4392018d768 100644 --- a/addons/l10n_si/data/l10n_si_chart_data.xml +++ b/addons/l10n_si/data/l10n_si_chart_data.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <odoo> - <menuitem id="account_reports_si_statements_menu" name="Slovenia" parent="account.menu_finance_reports" sequence="0" groups="account.group_account_user"/> + <menuitem id="account_reports_si_statements_menu" name="Slovenia" parent="account.menu_finance_reports" sequence="0" groups="account.group_account_readonly"/> <!-- Chart Template --> <record id="gd_chart" model="account.chart.template"> <field name="name">Kontni naÄrt za gospodarske družbe</field> diff --git a/addons/l10n_th/data/l10n_th_chart_data.xml b/addons/l10n_th/data/l10n_th_chart_data.xml index ec18b1631eeb..36a6c23c86b0 100644 --- a/addons/l10n_th/data/l10n_th_chart_data.xml +++ b/addons/l10n_th/data/l10n_th_chart_data.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <odoo> - <menuitem id="account_reports_th_statements_menu" name="Thailand" parent="account.menu_finance_reports" sequence="0" groups="account.group_account_user"/> + <menuitem id="account_reports_th_statements_menu" name="Thailand" parent="account.menu_finance_reports" sequence="0" groups="account.group_account_readonly"/> <!-- ACCOUNT TYPES --> <record id="acc_type_reconciled" model="account.account.type"> diff --git a/addons/l10n_uk/data/l10n_uk_chart_data.xml b/addons/l10n_uk/data/l10n_uk_chart_data.xml index 4125fd23b98d..ed3d46d5c9ac 100644 --- a/addons/l10n_uk/data/l10n_uk_chart_data.xml +++ b/addons/l10n_uk/data/l10n_uk_chart_data.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <odoo> - <menuitem id="account_reports_uk_statements_menu" name="United Kingdom" parent="account.menu_finance_reports" sequence="0" groups="account.group_account_user"/> + <menuitem id="account_reports_uk_statements_menu" name="United Kingdom" parent="account.menu_finance_reports" sequence="0" groups="account.group_account_readonly"/> <!-- Chart template --> <record id="l10n_uk" model="account.chart.template"> diff --git a/addons/l10n_uy/data/l10n_uy_chart_data.xml b/addons/l10n_uy/data/l10n_uy_chart_data.xml index 4811686343d6..3a358d09960b 100644 --- a/addons/l10n_uy/data/l10n_uy_chart_data.xml +++ b/addons/l10n_uy/data/l10n_uy_chart_data.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <odoo> - <menuitem id="account_reports_uy_statements_menu" name="Uruguay" parent="account.menu_finance_reports" sequence="0" groups="account.group_account_user"/> + <menuitem id="account_reports_uy_statements_menu" name="Uruguay" parent="account.menu_finance_reports" sequence="0" groups="account.group_account_readonly"/> <data noupdate="1"> <record id="uy_chart_template" model="account.chart.template"> diff --git a/addons/l10n_vn/data/l10n_vn_chart_data.xml b/addons/l10n_vn/data/l10n_vn_chart_data.xml index 12c48e18bc48..46e14a2b571f 100644 --- a/addons/l10n_vn/data/l10n_vn_chart_data.xml +++ b/addons/l10n_vn/data/l10n_vn_chart_data.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <odoo> -<menuitem id="account_reports_vn_statements_menu" name="Vietnam" parent="account.menu_finance_reports" sequence="0" groups="account.group_account_user"/> +<menuitem id="account_reports_vn_statements_menu" name="Vietnam" parent="account.menu_finance_reports" sequence="0" groups="account.group_account_readonly"/> <data> <!-- Account Chart Templates --> diff --git a/addons/l10n_za/data/account_chart_template_data.xml b/addons/l10n_za/data/account_chart_template_data.xml index 652646a5d18d..4925dbff7df1 100644 --- a/addons/l10n_za/data/account_chart_template_data.xml +++ b/addons/l10n_za/data/account_chart_template_data.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8"?> <odoo> - <menuitem id="account_reports_za_statements_menu" name="South Africa" parent="account.menu_finance_reports" sequence="0" groups="account.group_account_user"/> + <menuitem id="account_reports_za_statements_menu" name="South Africa" parent="account.menu_finance_reports" sequence="0" groups="account.group_account_readonly"/> <record id="default_chart_template" model="account.chart.template"> <field name="name">South African Tax and Account Chart Template (by Paradigm Digital)</field> diff --git a/addons/mail/models/ir_attachment.py b/addons/mail/models/ir_attachment.py index c2dd7fe9f5bb..b0ceb6523e03 100644 --- a/addons/mail/models/ir_attachment.py +++ b/addons/mail/models/ir_attachment.py @@ -22,6 +22,8 @@ class IrAttachment(models.Model): if not self.res_model: return related_record = self.env[self.res_model].browse(self.res_id) + if not related_record.check_access_rights('write', raise_exception=False): + return # message_main_attachment_id field can be empty, that's why we compare to False; # we are just checking that it exists on the model before writing it if related_record and hasattr(related_record, 'message_main_attachment_id'): diff --git a/addons/mrp_account/security/ir.model.access.csv b/addons/mrp_account/security/ir.model.access.csv index 5762ae6cd24d..07da696c94de 100644 --- a/addons/mrp_account/security/ir.model.access.csv +++ b/addons/mrp_account/security/ir.model.access.csv @@ -1,3 +1,5 @@ id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink +access_mrp_bom_invoice_bom_readonly,mrp.bom,mrp.model_mrp_bom,account.group_account_readonly,1,0,0,0 access_mrp_bom_invoice_bom,mrp.bom,mrp.model_mrp_bom,account.group_account_invoice,1,0,0,0 +access_mrp_bom_line_invoice_bom_readonly,mrp.bom.line,mrp.model_mrp_bom_line,account.group_account_readonly,1,0,0,0 access_mrp_bom_line_invoice_bom,mrp.bom.line,mrp.model_mrp_bom_line,account.group_account_invoice,1,0,0,0 diff --git a/addons/point_of_sale/views/pos_payment_method_views.xml b/addons/point_of_sale/views/pos_payment_method_views.xml index 8dc36991f3cc..a388fcca62f1 100644 --- a/addons/point_of_sale/views/pos_payment_method_views.xml +++ b/addons/point_of_sale/views/pos_payment_method_views.xml @@ -13,7 +13,7 @@ <group name="Payment methods"> <group> <field name="hide_use_payment_terminal" invisible="1"/> - <field name="receivable_account_id" groups="account.group_account_user" /> + <field name="receivable_account_id" groups="account.group_account_readonly" /> <field name="is_cash_count" /> <field name="cash_journal_id" attrs="{'invisible': [('is_cash_count', '=', False)], 'required': [('is_cash_count', '=', True)]}" /> <field name="split_transactions" groups="base.group_no_one" /> @@ -35,7 +35,7 @@ <tree string="Payment Methods"> <field name="hide_use_payment_terminal" invisible="1"/> <field name="name" /> - <field name="receivable_account_id" groups="account.group_account_user"/> + <field name="receivable_account_id" groups="account.group_account_readonly"/> <field name="is_cash_count" /> <field name="split_transactions" groups="base.group_no_one" /> <field name="use_payment_terminal" attrs="{'invisible': [('hide_use_payment_terminal', '=', True)]}" /> @@ -50,7 +50,7 @@ <field name="arch" type="xml"> <search string="Payment Methods"> <field name="name"/> - <field name="receivable_account_id" groups="account.group_account_user" /> + <field name="receivable_account_id" groups="account.group_account_readonly" /> <group expand="1" string="Group By"> <filter name="group_by_receivable_account" string="Account" domain="[]" context="{'group_by':'receivable_account_id'}"/> </group> diff --git a/addons/point_of_sale/views/pos_session_view.xml b/addons/point_of_sale/views/pos_session_view.xml index f5370ad4a3ef..115178b61ba0 100644 --- a/addons/point_of_sale/views/pos_session_view.xml +++ b/addons/point_of_sale/views/pos_session_view.xml @@ -53,7 +53,7 @@ icon="fa-bars" string="Journal Items" attrs="{'invisible':[('move_id', '=', False)]}" - groups="account.group_account_user" + groups="account.group_account_readonly" > </button> </div> @@ -65,7 +65,7 @@ <field name="user_id"/> <field name="currency_id" invisible="1"/> <field name="config_id"/> - <field name="move_id" readonly="1" groups="account.group_account_user" /> + <field name="move_id" readonly="1" groups="account.group_account_readonly" /> <field name="start_at" attrs="{'invisible' : [('state', '=', 'opening_control')]}"/> <field name="stop_at" attrs="{'invisible' : [('state', '!=', 'closed')]}"/> </group> diff --git a/addons/purchase/security/ir.model.access.csv b/addons/purchase/security/ir.model.access.csv index 6784aa839e9d..2435fd93bb5e 100644 --- a/addons/purchase/security/ir.model.access.csv +++ b/addons/purchase/security/ir.model.access.csv @@ -1,10 +1,12 @@ id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink access_purchase_order,purchase.order,model_purchase_order,group_purchase_user,1,1,1,1 access_purchase_order_manager,purchase.order,model_purchase_order,group_purchase_manager,1,1,1,1 +access_purchase_order_invoicing_payments_readonly,purchase.order,model_purchase_order,account.group_account_readonly,1,0,0,0 access_purchase_order_invoicing_payments,purchase.order,model_purchase_order,account.group_account_invoice,1,1,0,0 access_purchase_order_portal,purchase.order.portal,purchase.model_purchase_order,base.group_portal,1,0,0,0 access_purchase_order_line,purchase.order.line user,model_purchase_order_line,group_purchase_user,1,1,1,1 access_purchase_order_line_manager,purchase.order.line,model_purchase_order_line,group_purchase_manager,1,1,1,1 +access_purchase_order_line_invoicing_payments_readonly,purchase.order.line,model_purchase_order_line,account.group_account_readonly,1,0,0,0 access_purchase_order_line_invoicing_payments,purchase.order.line,model_purchase_order_line,account.group_account_invoice,1,1,0,0 access_purchase_order_line_portal,purchase.order.line.portal,purchase.model_purchase_order_line,base.group_portal,1,0,0,0 access_account_tax_purchase_user,account.tax,account.model_account_tax,group_purchase_user,1,0,0,0 @@ -12,14 +14,14 @@ access_account_tax_purchase_user_manager,account.tax,account.model_account_tax,g access_product_product_purchase_user,product.product.purchase.user,product.model_product_product,group_purchase_user,1,0,0,0 access_product_product_purchase_manager,product.product purchase_manager,product.model_product_product,purchase.group_purchase_manager,1,1,1,1 access_product_template_purchase_user,product.template purchase_user,product.model_product_template,group_purchase_user,1,0,0,0 -access_account_move_purchase,account_move purchase,account.model_account_move,group_purchase_user,1,1,1,1 -access_account_move_purchase_manager,account_move purchase manager,account.model_account_move,group_purchase_manager,1,0,0,0 access_account_fiscal_position_purchase_user,account.fiscal.position purchase,account.model_account_fiscal_position,group_purchase_user,1,0,0,0 access_res_partner_purchase_user,res.partner purchase,base.model_res_partner,group_purchase_user,1,0,0,0 access_account_journal,account.journal,account.model_account_journal,group_purchase_user,1,0,0,0 access_account_journal_manager,account.journal,account.model_account_journal,group_purchase_manager,1,0,0,0 access_account_move,account.move,account.model_account_move,group_purchase_user,1,0,0,0 access_account_move_line,account.move.line,account.model_account_move_line,group_purchase_user,1,0,0,0 +access_account_move_manager,account.move,account.model_account_move,group_purchase_manager,1,1,1,1 +access_account_move_line_manager,account.move.line,account.model_account_move_line,group_purchase_manager,1,1,1,1 access_account_analytic_line,account.analytic.line,account.model_account_analytic_line,group_purchase_user,1,0,0,0 access_res_partner_purchase_manager,res.partner.purchase.manager,base.model_res_partner,group_purchase_manager,1,1,1,0 access_uom_category_purchase_manager,uom.category purchase_manager,uom.model_uom_category,purchase.group_purchase_manager,1,1,1,1 diff --git a/addons/purchase/views/product_views.xml b/addons/purchase/views/product_views.xml index 3bb683cfa22f..a3c470d52849 100644 --- a/addons/purchase/views/product_views.xml +++ b/addons/purchase/views/product_views.xml @@ -62,7 +62,7 @@ <field name="inherit_id" ref="account.view_category_property_form"/> <field name="arch" type="xml"> <field name="property_account_income_categ_id" position="before"> - <field name="property_account_creditor_price_difference_categ" domain="[('deprecated','=',False)]" groups="account.group_account_user"/> + <field name="property_account_creditor_price_difference_categ" domain="[('deprecated','=',False)]" groups="account.group_account_readonly"/> </field> </field> </record> @@ -109,7 +109,7 @@ <field name="inherit_id" ref="account.product_template_form_view"/> <field name="arch" type="xml"> <field name="property_account_expense_id" position="after"> - <field name="property_account_creditor_price_difference" domain="[('deprecated','=',False)]" attrs="{'readonly':[('purchase_ok', '=', 0)]}" groups="account.group_account_user"/> + <field name="property_account_creditor_price_difference" domain="[('deprecated','=',False)]" attrs="{'readonly':[('purchase_ok', '=', 0)]}" groups="account.group_account_readonly"/> </field> </field> </record> diff --git a/addons/sale/security/ir.model.access.csv b/addons/sale/security/ir.model.access.csv index 1fd42da29789..553ed2647ff5 100644 --- a/addons/sale/security/ir.model.access.csv +++ b/addons/sale/security/ir.model.access.csv @@ -1,17 +1,21 @@ id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink access_sale_order,sale.order,model_sale_order,sales_team.group_sale_salesman,1,1,1,0 access_sale_order_line,sale.order.line,model_sale_order_line,sales_team.group_sale_salesman,1,1,1,1 +access_sale_order_line_readonly,sale.order.line accountant,model_sale_order_line,account.group_account_readonly,1,0,0,0 access_sale_order_line_accountant,sale.order.line accountant,model_sale_order_line,account.group_account_user,1,1,0,0 access_sale_order_portal,sale.order.portal,sale.model_sale_order,base.group_portal,1,0,0,0 access_sale_order_line_portal,sale.order.line.portal,sale.model_sale_order_line,base.group_portal,1,0,0,0 access_account_move_salesman,account_move salesman,account.model_account_move,sales_team.group_sale_salesman,1,1,1,0 access_account_move_manager,account_move manager,account.model_account_move,sales_team.group_sale_manager,1,1,1,1 +access_account_move_line_salesman,account_move_line salesman,account.model_account_move_line,sales_team.group_sale_salesman,1,1,1,0 +access_account_move__linemanager,account_move_line manager,account.model_account_move_line,sales_team.group_sale_manager,1,1,1,1 access_account_payment_term_salesman,account_payment_term salesman,account.model_account_payment_term,sales_team.group_sale_salesman,1,0,0,0 access_account_account_tag_sale_salesman,account.account.tag.sale.salesman,account.model_account_account_tag,sales_team.group_sale_salesman,1,0,0,0 access_account_account_type_sale_salesman,account.account.type.sale.salesman,account.model_account_account_type,sales_team.group_sale_salesman,1,0,0,0 access_account_analytic_tag_sale_salesman,account.analytic.tag.sale.salesman,analytic.model_account_analytic_tag,sales_team.group_sale_salesman,1,0,0,0 access_account_analytic_account_salesman,account_analytic_account salesman,analytic.model_account_analytic_account,sales_team.group_sale_salesman,1,1,1,0 access_sale_order_manager,sale.order.manager,model_sale_order,sales_team.group_sale_manager,1,1,1,1 +access_sale_order_readonly,sale.order.accountant,model_sale_order,account.group_account_readonly,1,0,0,0 access_sale_order_accountant,sale.order.accountant,model_sale_order,account.group_account_user,1,1,0,0 access_sale_report_salesman,sale.report,model_sale_report,sales_team.group_sale_salesman,1,1,1,0 access_sale_report_manager,sale.report,model_sale_report,sales_team.group_sale_manager,1,1,1,1 @@ -32,8 +36,9 @@ access_product_supplierinfo_user,product.supplierinfo.user,product.model_product access_product_supplierinfo_sale_manager,product.supplierinfo salemanager,product.model_product_supplierinfo,sales_team.group_sale_manager,1,1,1,1 access_product_pricelist_sale_manager,product.pricelist salemanager,product.model_product_pricelist,sales_team.group_sale_manager,1,1,1,1 access_product_group_res_partner_sale_manager,res_partner group_sale_manager,base.model_res_partner,sales_team.group_sale_manager,1,1,1,0 -access_account_move_line_salesman,account.move.line invoice,account.model_account_move_line,sales_team.group_sale_salesman,1,0,0,0 +access_sale_order_invoicing_payments_readonly,sale.order,model_sale_order,account.group_account_readonly,1,0,0,0 access_sale_order_invoicing_payments,sale.order,model_sale_order,account.group_account_invoice,1,1,0,0 +access_sale_order_line_invoicing_payments_readonly,sale.order.line,model_sale_order_line,account.group_account_readonly,1,0,0,0 access_sale_order_line_invoicing_payments,sale.order.line,model_sale_order_line,account.group_account_invoice,1,1,0,0 access_product_pricelist_item_sale_manager,product.pricelist.item salemanager,product.model_product_pricelist_item,sales_team.group_sale_manager,1,1,1,1 access_product_template_sale_manager,product.template salemanager,model_product_template,sales_team.group_sale_manager,1,1,1,1 diff --git a/addons/sale/security/sale_security.xml b/addons/sale/security/sale_security.xml index 978798babf67..edf762aca517 100644 --- a/addons/sale/security/sale_security.xml +++ b/addons/sale/security/sale_security.xml @@ -158,5 +158,34 @@ <field name="model_id" ref="payment.model_payment_token"/> <field name="groups" eval="[(4, ref('sales_team.group_sale_salesman'))]"/> </record> + + <!-- Multi - Salesmen invoice and account move assignation rules --> + <record id="account_invoice_rule_see_personal" model="ir.rule"> + <field name="name">Personal Invoices</field> + <field name="model_id" ref="model_account_move"/> + <field name="domain_force">[('invoice_user_id', '=', user.id), ('type', '!=', 'entry')]</field> + <field name="groups" eval="[(4, ref('sales_team.group_sale_salesman'))]"/> + </record> + + <record id="account_invoice_rule_see_all" model="ir.rule"> + <field name="name">All Invoices</field> + <field name="model_id" ref="model_account_move"/> + <field name="domain_force">[('type', '!=', 'entry')]</field> + <field name="groups" eval="[(4, ref('sales_team.group_sale_salesman_all_leads'))]"/> + </record> + + <record id="account_invoice_line_rule_see_personal" model="ir.rule"> + <field name="name">Personal Invoice Lines</field> + <field name="model_id" ref="model_account_move_line"/> + <field name="domain_force">[('invoice_user_id', '=', user.id), ('type', '!=', 'entry')]</field> + <field name="groups" eval="[(4, ref('sales_team.group_sale_salesman'))]"/> + </record> + + <record id="account_invoice_line_rule_see_all" model="ir.rule"> + <field name="name">All Invoice Lines</field> + <field name="model_id" ref="model_account_move_line"/> + <field name="domain_force">[('type', '!=', 'entry')]</field> + <field name="groups" eval="[(4, ref('sales_team.group_sale_salesman_all_leads'))]"/> + </record> </data> </odoo> diff --git a/addons/stock_account/security/ir.model.access.csv b/addons/stock_account/security/ir.model.access.csv index 7fa47b0de0ec..bd56cc16f9af 100644 --- a/addons/stock_account/security/ir.model.access.csv +++ b/addons/stock_account/security/ir.model.access.csv @@ -1,6 +1,8 @@ id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink access_account_account_stock_manager,account.account stock manager,account.model_account_account,stock.group_stock_manager,1,0,0,0 access_account_journal_stock_manager,account.journal stock manager,account.model_account_journal,stock.group_stock_manager,1,0,0,0 +access_stock_picking_invoicing_payments_readonly,stock.picking,stock.model_stock_picking,account.group_account_readonly,1,0,0,0 access_stock_picking_invoicing_payments,stock.picking,stock.model_stock_picking,account.group_account_invoice,1,1,1,0 +access_stock_move_invoicing_payments_readonly,stock.move,model_stock_move,account.group_account_readonly,1,0,0,0 access_stock_move_invoicing_payments,stock.move,model_stock_move,account.group_account_invoice,1,1,1,0 access_stock_valuation_layer,access_stock_valuation_layer,model_stock_valuation_layer,stock.group_stock_manager,1,1,1,0 diff --git a/addons/stock_account/views/product_views.xml b/addons/stock_account/views/product_views.xml index a286dd75a195..ecf069633502 100644 --- a/addons/stock_account/views/product_views.xml +++ b/addons/stock_account/views/product_views.xml @@ -18,7 +18,7 @@ <field name="inherit_id" ref="account.view_category_property_form"/> <field name="arch" type="xml"> <group name="account_property" position="inside"> - <group name="account_stock_property" string="Account Stock Properties" groups="account.group_account_user"> + <group name="account_stock_property" string="Account Stock Properties" groups="account.group_account_readonly"> <field name="property_stock_account_input_categ_id" attrs="{'required':[ ('property_valuation', '=', 'real_time')]}" /> <field name="property_stock_account_output_categ_id" attrs="{'required':[ ('property_valuation', '=', 'real_time')]}" /> <field name="property_stock_valuation_account_id" options="{'no_create': True}" attrs="{'required':[ ('property_valuation', '=', 'real_time')]}"/> @@ -29,7 +29,7 @@ <group> <group string="Inventory Valuation"> <field name="property_cost_method"/> - <field name="property_valuation" groups="account.group_account_user,stock.group_stock_manager"/> + <field name="property_valuation" groups="account.group_account_readonly,stock.group_stock_manager"/> </group> </group> </group> diff --git a/addons/stock_account/views/stock_account_views.xml b/addons/stock_account/views/stock_account_views.xml index f7985a8137b8..dd3ddab59dc5 100644 --- a/addons/stock_account/views/stock_account_views.xml +++ b/addons/stock_account/views/stock_account_views.xml @@ -8,7 +8,7 @@ <field name="inherit_id" ref="stock.view_move_form"/> <field name="arch" type="xml"> <xpath expr="//div[@name='button_box']" position="inside" > - <button name="action_get_account_moves" icon="fa-usd" class="oe_stat_button" string="Accounting Entries" type="object" groups="account.group_account_user"/> + <button name="action_get_account_moves" icon="fa-usd" class="oe_stat_button" string="Accounting Entries" type="object" groups="account.group_account_readonly"/> </xpath> </field> </record> diff --git a/addons/website_crm_partner_assign/security/ir.model.access.csv b/addons/website_crm_partner_assign/security/ir.model.access.csv index fa992b1efba1..c400f632eee2 100644 --- a/addons/website_crm_partner_assign/security/ir.model.access.csv +++ b/addons/website_crm_partner_assign/security/ir.model.access.csv @@ -8,4 +8,5 @@ access_res_partner_grade_manager,res.partner.grade.manager,model_res_partner_gra access_res_partner_activation_user,res.partner.activation.user,model_res_partner_activation,base.group_user,1,0,0,0 access_partner_activation_manager,res.partner.activation.manager,model_res_partner_activation,base.group_partner_manager,1,1,1,1 partner_access_crm_lead,crm.lead,crm.model_crm_lead,base.group_portal,1,1,0,0 +access_res_partner_grade_invoicing_payment_readonly,res.partner.grade,model_res_partner_grade,account.group_account_readonly,1,0,0,0 access_res_partner_grade_invoicing_payment,res.partner.grade,model_res_partner_grade,account.group_account_invoice,1,0,0,0 diff --git a/odoo/addons/base/models/res_users.py b/odoo/addons/base/models/res_users.py index e428fb68b9a3..a4092160458b 100644 --- a/odoo/addons/base/models/res_users.py +++ b/odoo/addons/base/models/res_users.py @@ -1190,6 +1190,11 @@ class GroupsView(models.Model): return (app, 'selection', gs.sorted('id'), category_name) # determine sequence order: a group appears after its implied groups order = {g: len(g.trans_implied_ids & gs) for g in gs} + # We want a selection for Accounting too. Auditor and Invoice are both + # children of Accountant, but the two of them make a full accountant + # so it makes no sense to have checkboxes. + if app.xml_id == 'base.module_category_accounting_accounting': + return (app, 'selection', gs.sorted(key=order.get), category_name) # check whether order is total, i.e., sequence orders are distinct if len(set(order.values())) == len(gs): return (app, 'selection', gs.sorted(key=order.get), category_name) diff --git a/odoo/tools/convert.py b/odoo/tools/convert.py index 10b56b3fc167..c94e371106ee 100644 --- a/odoo/tools/convert.py +++ b/odoo/tools/convert.py @@ -741,7 +741,6 @@ def convert_csv_import(cr, module, fname, csvcontent, idref=None, mode='init', encoding: utf-8''' filename, _ext = os.path.splitext(os.path.basename(fname)) model = filename.split('-')[0] - reader = pycompat.csv_reader(io.BytesIO(csvcontent), quotechar='"', delimiter=',') fields = next(reader) -- GitLab