diff options
| author | wan <wan@odoo.com> | 2019-10-28 14:58:01 +0000 |
|---|---|---|
| committer | qdp-odoo <qdp@odoo.com> | 2020-01-22 11:23:16 +0000 |
| commit | d8c5cc1335806d379134866262840fcafb05b643 (patch) | |
| tree | 3d963a0fbae843cfa56a892c720f1ac0a043e8a2 | |
| parent | 76a35c125c1314303f95335e9d252240b5e64f6e (diff) | |
[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>
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 7a72e510993..6159af2e6c6 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 166f2d5dc9b..197cababb0d 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 99678c3aee4..e9fbcfc910a 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 986c3563b21..3fbc524f785 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 8d89ca0ec90..bc5f6536810 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 0658aaac5b9..7f6cbc7b8d3 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 108736d492f..9f585044054 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 7309c1193f7..e6bae7df5c5 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 7fc2b3d27af..4a56c48e141 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 09a6dc63275..2c8b746ba1f 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 34ac96f894b..cf423994067 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 e597561d5b7..9e15c8c3773 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 deff73f9ebf..5be631c873a 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 034e0a5303c..70a793113f2 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 f9313188b60..69982c35385 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 ebccc1925ac..1a706e80aa3 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 d7c4b77e383..8f000c0c714 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 3c8fbffd509..e27e635023b 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 28371f68c90..00da1524720 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 5a6a1ae9b9d..c1175301193 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 062a2e5838e..c6439570c6b 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 0189037ca45..3e0535f96c7 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 9f3fd4ded03..923e61cef29 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 15db591d01e..545d30c1e92 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 eb648164386..337ef71fea7 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 f5227d6c076..24a82b56b1b 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 6af473a6b51..97e565781ac 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 90ca464cae4..4ab0bdd1728 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 08e4e2991dc..d7547019cef 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 e64fbc31a26..2cd7ead995a 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 05ec37f2087..fda672e894c 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 484af4b7ee2..7fba5530b7a 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 d5b35a26022..effb0ee9ba4 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 62cae345497..50e31aec84b 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 1ab90dd1b7f..bcf3165a442 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 13e4cdf8969..3b24155542f 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 73daa2ad63f..127143d6d11 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 984064056f7..be9387183c3 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 24e4c14cd71..1a94ad56a98 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 e77991bc2c4..6dd19e77f7e 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 82ccb4abdf9..6653fe99ccc 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 0d8b0341a3b..555d05c9bdf 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 a757b06019b..649c09d6657 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 537b6210167..4b68af3affd 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 76c0d257799..5943976bab2 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 0d24db96803..29400dfaaaf 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 0f39553f2a0..303431e2949 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 906cf42a6e8..cbc3d55993b 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 eabf177a788..20afa256457 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 8d89c28e74c..e07d7167dd4 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 ca5491cc279..d5bad956b0a 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 0e5c0958382..d4392018d76 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 ec18b1631ee..36a6c23c86b 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 4125fd23b98..ed3d46d5c9a 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 4811686343d..3a358d09960 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 12c48e18bc4..46e14a2b571 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 652646a5d18..4925dbff7df 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 c2dd7fe9f5b..b0ceb6523e0 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 5762ae6cd24..07da696c94d 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 8dc36991f3c..a388fcca62f 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 f5370ad4a3e..115178b61ba 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 6784aa839e9..2435fd93bb5 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 3bb683cfa22..a3c470d5284 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 1fd42da2978..553ed2647ff 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 978798babf6..edf762aca51 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 7fa47b0de0e..bd56cc16f9a 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 a286dd75a19..ecf06963350 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 f7985a8137b..dd3ddab59dc 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 fa992b1efba..c400f632eee 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 e428fb68b9a..a4092160458 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 10b56b3fc16..c94e371106e 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) |
