odoo security не позволяет компании открывать общие настройки - PullRequest
1 голос
/ 29 октября 2019

Я установил пользовательский модуль odoo, чтобы добавить общую и линейную скидку к заказам, он работал хорошо, пока я не добавил новую компанию, после добавления новой компании я должен перейти к выставлению счетов, чтобы активировать общую скидку, но odoo ограничивает меня в этом

Я пытался добавить правила, но это не работает. Я не знаю, что на самом деле правило, я должен добавить

Вот как я определил вид настройки

class KSResConfigSettings(models.TransientModel):
    _inherit = 'res.config.settings'

    ks_enable_discount = fields.Boolean(string="Activate Total Discount")
    ks_sales_discount_account = fields.Many2one('account.account', string="Sales Discount Account")
    ks_purchase_discount_account = fields.Many2one('account.account', string="Purchase Discount Account")
    ks_accounting_present = fields.Boolean(compute='ks_check_charts_of_accounts')

    def get_values(self):
        ks_res = super(KSResConfigSettings, self).get_values()
        ks_res.update(
            ks_enable_discount=self.env['ir.config_parameter'].sudo().get_param('ks_enable_discount'),
        ks_sales_discount_account=int(self.env['ir.config_parameter'].sudo().get_param('ks_sales_discount_account')),
        ks_purchase_discount_account=int(self.env['ir.config_parameter'].sudo().get_param('ks_purchase_discount_account')),)
        return ks_res

    def set_values(self):
        super(KSResConfigSettings, self).set_values()
        self.env['ir.config_parameter'].set_param('ks_enable_discount', self.ks_enable_discount)
        if self.ks_enable_discount:
            self.env['ir.config_parameter'].set_param('ks_sales_discount_account', self.ks_sales_discount_account.id)
            self.env['ir.config_parameter'].set_param('ks_purchase_discount_account',
                                                      self.ks_purchase_discount_account.id)  
odoo>
    <data>
        <record id="ks_res_config_settings_view_form" model="ir.ui.view">
            <field name="name">ks.res.config.settings.view.form.inherit.account.discount</field>
            <field name="model">res.config.settings</field>
            <field name="priority" eval="50"/>
            <field name="inherit_id" ref="base.res_config_settings_view_form"/>
            <field name="arch" type="xml">
                <xpath expr="//field[@name='has_accounting_entries']" position="after">

                    <h2 attrs="{'invisible': [('has_chart_of_accounts','==',False)]}">Total Discount</h2>
                    <div class="row mt16 o_settings_container"
                         attrs="{'invisible': [('has_chart_of_accounts','==',False)]}">
                        <div class="col-xs-12 col-md-6 o_setting_box">
                            <div class="o_setting_left_pane">
                                <field name="ks_enable_discount"/>
                            </div>
                            <div class="o_setting_right_pane">
                                <label for ='ks_enable_discount'/>
                                <div class="text-muted">
                                    Activate Total discount on all modules.
                                </div>

                            </div>
                        </div>
                        <div class="col-xs-12 col-md-6 o_setting_box" attrs="{'invisible':[('ks_enable_discount','==',False)]}">
                            <div class="o_setting_left_pane"/>
                            <div class="o_setting_right_pane">
                                <span class="o_form_label">Accounts</span>
                                <div class="text-muted">
                                        Set default Total discount accounts for sale and purchase order.
                                </div>
                                <div class="content-group">
                                    <div class="row mt16" >
                                        <label for="ks_sales_discount_account"
                                               class="col-md-3 o_light_label"/>
                                        <field name="ks_sales_discount_account"
                                               attrs="{'required': [('ks_enable_discount','==',True)]}"/>
                                    </div>
                                    <div class="row mt16" >
                                        <label for="ks_purchase_discount_account"
                                               class="col-md-3 o_light_label"/>
                                        <field name="ks_purchase_discount_account"
                                               attrs="{'required': [('ks_enable_discount','==',True)]}"/>
                                    </div>
                                </div>
                            </div>
                        </div>


                    </div>
                </xpath>
            </field>
        </record>
    </data>
</odoo>

Это то, что появляется в журнале

2019-10-29 12: 31: 26,410 16582 INFO demo odoo.models: Запрошенная операция не может быть выполнена из-за правил записи: Тип документа: account.account, Операция: чтение, Записи: 31, Пользователь: 2 enter image description here

...