Из различных сообщений на этом сайте у меня есть следующий код (ниже разделителя), который работает для создания глобальной переменной. Однако вся онлайн-справка, такая как https://odoo-development.readthedocs.io/en/latest/dev/py/res.config.settings.html#default -xxx , содержит инструкции по настройке TODO.
Часть первая вопроса, как мне установить default_paper_markup из файла запуска, на который ссылаются как data / pse_data. xml в манифесте? Я хотел бы, чтобы этот набор был таким любой будущий импорт мог бы извлечь из этого выгоду.
Вторая часть вопроса, когда я хочу применить default_paper_markup в формуле
т.е. total_price = total_cost * default_paper_markup?
Использую ли я default_paper_markup (поскольку, как мне кажется, для полей default_ * не требуется get_value () / set_value () для извлечения / сохранения), или я использую paper_markup из моего модуля как глобальный переменная? То же самое относится и к копированию его в поле позиции оценки (например, заказа на продажу), чтобы оно стало историческим?
ОБНОВЛЕНИЕ: С https://github.com/odoo/odoo/blob/11.0/odoo/addons/base/res/res_config.py, "Метод default_get
извлекает значения, которые отражают текущее состояние полей, таких как 'default_XXX ',' group_XXX 'и' module_XXX '. Он также вызывает все методы с именем, которое начинается с' get_default_ '; такие методы могут быть определены для предоставления текущих значений для других полей. " Означает ли это, что я должен записать default_get(how?)
или get_default_paper_markup(how?)
в локальную переменную, прежде чем использовать ее в методе, выполняющем вычисления? / UPDATE
Часть третья вопроса , как примечание, при поиске в Odoo 12 CE значения default_ во всех res_config_settings. * Ничего не возвращает. Это сейчас устарело или просто не используется? Я не должен использовать это и только использовать функции? Например, используя соответствующее поле, выполните поиск quotation_validity_days в следующем формате: addons / sale / models /
res_config_settings.py
class ResConfigSettings(models.TransientModel):
_inherit = 'res.config.settings'
default_paper_markup = fields.Float(
default_model='pse.paper'
)
res_config_settings_views. xml
<record id="res_config_settings_view_form" model="ir.ui.view">
<field name="name">res.config.settings.view.form.inherit.pse</field>
<field name="model">res.config.settings</field>
<field name="priority" eval="70"/>
<field name="inherit_id" ref="base.res_config_settings_view_form"/>
<field name="arch" type="xml">
<xpath expr="//div[hasclass('settings')]" position="inside">
<div class="app_settings_block" data-string="PSE Data-String" string="PSE" data-key="pse" groups="pse.group_pse_manager">
<h2>Paper</h2>
<div class="row mt16 o_settings_container">
<div class="col-xs-12 col-md-6 o_setting_box">
<div class="o_setting_right_pane">
<label for="default_paper_markup"/>
<div class="row">
<div class="text-muted col-lg-8">
Markup of cost for reselling paper
</div>
</div>
<div class="content-group">
<div class="mt16">
<field name="default_paper_markup" class="o_light_label"/>
</div>
</div>
</div>
</div>
</div>
</div>
</xpath>
</field>
</record>
<record id="pse_config_settings_action" model="ir.actions.act_window">
<field name="name">Settings</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">res.config.settings</field>
<field name="view_mode">form</field>
<field name="target">inline</field>
<field name="context">{'module' : 'pse'}</field>
</record>
<menuitem id="pse_menu_configuration"
name="Settings"
parent="menu_pse_configuration"
sequence="0"
action="pse_config_settings_action"
groups="base.group_system"/>
</odoo>
my_model.py
paper_markup = fields.Float(string='Markup')