' active_id'在看板视图中的项目?

时间:2017-03-14 20:16:01

标签: button view openerp odoo-9 kanban

我在项目看板视图中添加了备注部分。问题是当我点击它时出现错误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 个答案:

答案 0 :(得分:2)

请尝试使用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>

答案 1 :(得分:0)

好的,我调整了一下我的方法,因为上下文实际上应该在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}"/>

这完全解决了我的问题!