'active_id' для проекта в представлении Канбан?
Я добавил раздел заметок в окне просмотра проекта. Проблема в том, что, когда я нажимаю на нее, я получаю ошибку NameError: name 'active_id' is not defined
Я использовал этот метод для создания интеллектуальных кнопок в представлениях проекта, контакта и формы продукта, и он хорошо работает. Когда вы нажимаете умную кнопку, она перенаправляется на предварительно отфильтрованную страницу заметок. Я боюсь, что, поскольку на самом деле нет "активного" открытого проекта, не будет active_id. Если это так, как я могу отфильтровать по тому, на который нажал?
Канбан вид
<record id="view_project_notes_kanban" model="ir.ui.view">
<field name="name">triangle.project.note.kanban</field>
<field name="model">project.project</field>
<field name="inherit_id" ref="project.view_project_kanban"/>
<field name="arch" type="xml">
<data>
<xpath expr="//div[@class='o_project_kanban_boxes']" position="inside">
<div class="o_project_kanban_box">
<a name="%(note.action_note_note)d" type="action" context="{'search_default_project': active_id, 'default_project': active_id}">
<span class="o_value"><field name="note_count"/></span>
<span class="o_label">Notes</span>
</a>
</div>
</xpath>
</data>
</field>
</record>
Форма просмотра (который работает)
<record id="view_project_notes_form" model="ir.ui.view">
<field name="name">triangle.project.note.form</field>
<field name="model">project.project</field>
<field name="inherit_id" ref="project.edit_project"/>
<field name="arch" type="xml">
<data>
<xpath expr="//div[@name='button_box']" position="inside">
<button class="oe_stat_button" type="action" name="%(note.action_note_note)d"
icon="fa-sticky-note" context="{'search_default_project': active_id, 'default_project': active_id}">
<field string="Notes" name="note_count" widget="statinfo"/>
</button>
</xpath>
</data>
</field>
</record>
2 ответа
Хорошо, я немного скорректировал свой метод, потому что контекст должен быть на самом деле в действии note.note, а не в представлении project.project.
Новый проект Канбан:
<record id="view_project_notes_kanban" model="ir.ui.view">
<field name="name">triangle.project.note.kanban</field>
<field name="model">project.project</field>
<field name="inherit_id" ref="project.view_project_kanban"/>
<field name="arch" type="xml">
<data>
<xpath expr="//div[@class='o_project_kanban_boxes']" position="inside">
<a name="%(triangle.act_project_2_note)d" type="action" class="o_project_kanban_box">
<span class="o_value"><field name="note_count"/></span>
<span class="o_label">Notes</span>
</a>
</xpath>
</data>
</field>
</record>
Новое действие окна заметки:
<act_window id="act_project_2_note"
name="Notes"
res_model="note.note"
view_mode="kanban,tree,form"
context="{'search_default_project': [active_id], 'default_project': active_id}"/>
Это полностью решило мою проблему!
Пожалуйста, попробуйте record.id вместо active_id, то есть:-
<record id="view_project_notes_kanban" model="ir.ui.view">
<field name="name">triangle.project.note.kanban</field>
<field name="model">project.project</field>
<field name="inherit_id" ref="project.view_project_kanban"/>
<field name="arch" type="xml">
<data>
<xpath expr="//div[@class='o_project_kanban_boxes']" position="inside">
<div class="o_project_kanban_box">
<a name="%(note.action_note_note)d" type="action" context="{'search_default_project': record.id, 'default_project': record.id}">
<span class="o_value"><field name="note_count"/></span>
<span class="o_label">Notes</span>
</a>
</div>
</xpath>
</data>
</field>
</record>