diff --git a/addons/account/data/payment_receipt_data.xml b/addons/account/data/payment_receipt_data.xml index 7a72e51099334497f6feae1477f1095acfd83569..6159af2e6c63625fda3d510d88e7eb384a902bba 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 166f2d5dc9b68bb217f3e6a587794f99a5bd3bf5..197cababb0d0fb12533d8d61ef81c4cafd06f3d6 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 99678c3aee4fa9e4be977c608e5bb9dd3eea4aa2..e9fbcfc910a7c1718e7b269bc4049ab8ab70d7d8 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 986c3563b212e8adf9b19509ed3d61e3fdbe47bf..3fbc524f785c4bac00acce598e5921c6b4eac6d7 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 8d89ca0ec9096de6bf6c9df8c627cc9321f60ef0..bc5f6536810691aa74c370bd8922e925960e2969 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 0658aaac5b932b760384054857daa19319dadeb3..7f6cbc7b8d39a8916bcfcfcd5855822c4c38a57b 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 108736d492fbd62844acf8b99cd639fd430c0226..9f585044054c743bcabc32472f0b8a83d2a86e6b 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 7309c1193f738989fa2b30f138ffbdc5461bacb7..e6bae7df5c5f5f78ce306f8f9be9600460715b90 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 7fc2b3d27af4e9614d8440326b5d0e5ea7597615..4a56c48e14100709c3025fd5ebfc1e3b03c905b2 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 09a6dc6327520a1d04febdb9e7957172cf02e280..2c8b746ba1fcba4912854c86487303fe5ba91011 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 34ac96f894b965bc4f60644d850a16c132cec53c..cf4239940670d94ec22fc478e90c0f6b78d5622c 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 e597561d5b7c533946b23ddccf53accde39b1c35..9e15c8c37737a0da6adf29e798faf73f0a323b88 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 deff73f9ebf388b6fc299238b175692ff6744070..5be631c873a3ba70e7cc2d348ebb810d16b2da33 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 034e0a5303c1e7f5dbd3f57ce8d73fd93ba18837..70a793113f2217eec136ea7aab3f7b6b34f52a86 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 f9313188b6009f63f5a364d8af3c48e0710e1220..69982c3538566c06036a479c36eeafd007146085 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 ebccc1925ac17f67383e8be0efd80313ec375d31..1a706e80aa313ab94b591454406024444f471901 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 d7c4b77e3835aec15e92123a6eb800aeb5cb8dfe..8f000c0c714edae7827e8c6d9103039de88f584a 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 3c8fbffd5097634cb91a8f26e6db5a2476318eb9..e27e635023b744d896bb3fdd7b1c9fa5a0c2156f 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 28371f68c9083ad4dfeaad8a22b8509d2324a3b3..00da15247201d13f616b269a34f14954c85e0168 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 5a6a1ae9b9d3505c55b294ed2ad29077b3c84cba..c1175301193f94e859c09ddc5ae3c905603edecb 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 062a2e5838e667fb396654906f7955e85d3b4a90..c6439570c6b0ebef85eb2751b1a263de06d30437 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 0189037ca4588df66cb7e79bd545d353c5c9b6c5..3e0535f96c7abae4676a9dec76ebfb836f9a1545 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 9f3fd4ded037f613aae53173891b7c242f180bd0..923e61cef2944428a3162ca9b99d32f62b70042f 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 15db591d01eba080e8bb790ab173d226b52ca9ab..545d30c1e921a0ee875f270ad6d692d116ab2ed8 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 eb6481643862ab8a0a3657fe945ba1a55b43c8e2..337ef71fea70dc9f96d2e41f622665f3c0bd9bef 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 f5227d6c076483e3fab1d095a9467b6c4693f96c..24a82b56b1b63ba5ecb4ea75c6f1b7085dcebf9a 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 6af473a6b51e7c1fe60eb85c86821a60befb51b0..97e565781ace512ece9e152a74a3b1b3c5aa9c88 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 90ca464cae4e192b3af0e07a19be2b2831db9c5b..4ab0bdd17285ccfd729e58410e3a22d6108e98c0 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 08e4e2991dca4ab281051378612a594dffbe2dbd..d7547019cef2777d53a0b05a784da5f07605934a 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 e64fbc31a26ea1db631cc6e094a8418a83493c21..2cd7ead995ab2b33c3c2f94831f96de90246b69d 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 05ec37f20872cc60747d50493360964d1cc8872a..fda672e894cb81d1b91eb7a4106389c11286d6a4 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 484af4b7ee25620ecff10f446d0185a47dcbfdf1..7fba5530b7a329080d56b1ec91f28b93e24c4293 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 d5b35a26022598550164f5dcd9e4535f38c5348e..effb0ee9ba4dafe6add68e5bb1a7e724f79b9c93 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 62cae3454977f89daf0ede15613965e655fdffac..50e31aec84b45f822e55a5170d1041fd93de0edd 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 1ab90dd1b7fc5bcf9f7df0a3d2aaf1eb761e592d..bcf3165a4428cafdd12bfec97024665d79f72f4b 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 13e4cdf8969b818e4e92daaff3c25c9284d4bed5..3b24155542f65ccafa7398ba7cf0501689dba54b 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 73daa2ad63f8e44f3fb7bb3d2e7ce397c095c012..127143d6d111320ff207529cbe5ac612eb54d7c1 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 984064056f74d059c8938ef40dafdcfde5348991..be9387183c3e8dc9b0239b5e90d980141093af63 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 24e4c14cd71cf8d6d5a3b3d5011f1e757c311735..1a94ad56a98af99345d1fb4ee52a7a21cdb193b1 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 e77991bc2c4cbd9d907297e3db42a68df6c3b18e..6dd19e77f7e62caed019e39a54ac00e18e2c1b18 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 82ccb4abdf96e29467a254c3f85f1ed87bb17e43..6653fe99cccbcb981637c425453421bfaa8d06bb 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 0d8b0341a3b64d0aad931b7eb0a2d45be9176e83..555d05c9bdfd489de2df618aa98cb510898610f3 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 a757b06019bddf56fa517f6da8728083d29f2e94..649c09d6657a4c33548eb972be141f0da58e1693 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 537b6210167b54a47b4c1bc826b4eaddfae7dee3..4b68af3affde22ab5b8bc54bf3f1f6abf54f5a37 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 76c0d257799800690ef165fbf4f80c193219edfb..5943976bab2372f7ae20965114b74bfe2f1a1811 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 0d24db96803315e41ab539005051f2ec9e62fe34..29400dfaaaf597558668f9b52f418d798d3b1dcc 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 0f39553f2a062b5675606295f65b5ff6c915fd2b..303431e2949cec0733e1c67817640c4d14eaa0f0 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 906cf42a6e826ac0c63a7f4e42a957a755b4fd40..cbc3d55993bd850dc0871c718d46b7870902192f 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 eabf177a7881074c122aea900d306181f4b5789e..20afa256457e2bdd76e2f52c222443293eca7309 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 8d89c28e74cc050c328adceccced93f72d061d62..e07d7167dd44668617a3d6139df4f98febb2a19e 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 ca5491cc2798de59afd0c42ac9b74fed535137c5..d5bad956b0aa2bf0dc5493b5e140bbcad3d2c528 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 0e5c0958382dc5601d197c0e347ce84602247069..d4392018d76844c778793aece7c7c4d10bc04790 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 ec18b1631eeb41561ef23da93dccc67abbd43b85..36a6c23c86b0529da388458080fa439fc5ec9d2a 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 4125fd23b98d40e7b998ebb49f6d914ede4eda42..ed3d46d5c9ace1efa023d35d3b5e5bd2b56ccfa7 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 4811686343d60f9cfb9c1d15736b2a3bac378e75..3a358d09960bbd21aa790f45e8f0a1976f0b77ca 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 12c48e18bc48e3345955a284b0237107582d486d..46e14a2b571f94d4e9d604603bf15ea8fc69d09b 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 652646a5d18d94abc77aa8ac346c535b3ed6a624..4925dbff7df1f823657ba3490c039d3e4b9bd29f 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 c2dd7fe9f5bbb353e1665280a5f2d31ed3d57bcc..b0ceb6523e03a6e513e74f4b812d7c664c1bfdda 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 5762ae6cd24db190dcec3741e3eabeaeb9bc69b3..07da696c94de04dbebfe56b934be330ebe43a5d1 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 8dc36991f3cc03eab61c9a5de29741da32270de4..a388fcca62f1c205740e7f43b00c5cd4940200be 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 f5370ad4a3ef801cae447e0ffa21d5fa5f6cc848..115178b61ba0c586068b74066b5673677cb8950b 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 6784aa839e9d3d2459f8c2d913c45ea585fe955d..2435fd93bb5e92f5676db3e799da58c89833396c 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 3bb683cfa22f66f029949551182d263dc92ff364..a3c470d528495ccadf4e9856767e9b43b56f2c92 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 1fd42da29789dc4f98533dc40139499ae43588f1..553ed2647ff5877b0557fa14b7ce78f35574a239 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 978798babf677735fbb5d151acc79414d0f2e178..edf762aca5176ecb3ff518ab51a8f0f16c902020 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 7fa47b0de0ec5ec7003c174acd9f9c6e698d8bff..bd56cc16f9af1378a6ae80ca40ff716b3bb8fad1 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 a286dd75a195aab3935f993c066d3189fcd06dd6..ecf069633502325278b08f85e8c94bf86415c02a 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 f7985a8137b805d3f4d2b40115b1c6aa75b95b41..dd3ddab59dc55a77c940bf1e91728e8391b3c4fc 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 fa992b1efba1dcd8e6b1362a97a32298afb5787e..c400f632eee27e173fcec420bce83d6c8bd263ed 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 e428fb68b9a3a5754c6525b4c15c9f806fb6924d..a4092160458bd504a4adfcf0ace439a5829d0794 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 10b56b3fc1671802195985d99373528a96d7e4a8..c94e371106ee35ad4df45544b1e1a72b8d24d3a1 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)