Я добавил новую кнопку рядом с созданной в FormView.Odoo 10 - передать контекст мастеру, вызванному кнопкой внутри шаблона FormView.buttons
<t t-extend="FormView.buttons">
<t t-jquery="button.o_form_button_create" t-operation="after">
<t t-if="widget.fields_view.name == 'site.form'">
<button type="button"
class="btn btn-primary btn-sm oe_create_customer_button_form">
Create Customer Site
</button>
</t>
</t>
</t>
Я связала действие на него, чтобы открыть форму мастера.
Теперь я передам значения из записи, отображаемой в форме в момент вызова мастера, но у меня возникают проблемы. Он содержит только ссылку на первую открытую запись, поэтому, когда я вызываю мастера из другой записи, он будет отображать данные из первого.
instance.web.FormView.include({
render_buttons: function() {
var self = this
this._super.apply(this, arguments)
// GET BUTTON REFERENCE
if (this.$buttons) {
var btn = this.$buttons.find('.oe_create_customer_button_form')
}
self.do_query(btn)
},
do_query: function(btn) {
var self = this
var context = {}
// QUERY THE MODEL -- DOES NOT WORK PROPERLY
// TO PASS PARENT
new instance.web.Model('broadband.site')
.query()
.filter([['id', '=', self.dataset.ids[0]]])
.first()
.done(function(res) {
if(res) {
context = {
'default_parent_id': res.id
}
}
self.do_new_button(context, btn)
})
},
do_new_button: function (context, btn) {
var self = this
var action = ({
type: 'ir.actions.act_window',
res_model: 'broadband.wizard',
view_type: 'form',
view_mode: 'form',
views: [[false, 'form']],
target: 'new',
context: context
})
btn.on('click', function() {
self.do_action(action)
})
}
})