'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>
Другие вопросы по тегам