从按钮openerp中检索操作窗口

时间:2015-05-15 06:19:39

标签: python python-2.7 openerp openerp-8 odoo-8

在我的模块中,我想通过点击按钮查看表单。

这是我的按钮"推迟"与其他工作流程按钮

<header>
    <button string="Planned" type="workflow" name="action_planned" class="" icon="gtk-undo" states="postponed"/>
    <button string="Complete" type="workflow" name="action_complete" class="" icon="gtk-apply" states="planned, postponed"/>
    <button string="Postponed" type="action" name="%(timetable_postponed)d" class="" icon="gtk-jump-to"/>
    <button string="Cancel" type="workflow" name="action_cancel" class="" icon="gtk-cancel" states="planned, postponed"/>
    <field name="state" widget="statusbar" readonly="True" statusbar_visible="planned, completed, postponed, cancelled"/>
</header>

这是我的表单视图和操作

    <record id="timetable_postponed_view" model="ir.ui.view">
        <field name="name">op.timetable.postponed</field>
        <field name="model">op.timetable</field>
        <field name="arch" type="xml">
            <form string="Time Table Postponed" version="7.0">
                <field name="classroom_id" />
                <field name="period_id" />
                <field name="date" />
            </form>
        </field>
    </record>

    <act_window id="timetable_postponed"
            name="Postponed Timetable"
            res_model="op.timetable"
            view_mode="form"
            view_id="timetable_postponed_view"
            target="new"
            />

并且在更新时我收到了此错误

       raise ValueError('External ID not found in the system: %s' % (xmlid))
   ParseError: "External ID not found in the system: myschool.timetable_postponed" while parsing file:///E:/Development/MySchool-Src/OSBT_0374/myschool/op_timetable/op_timetable_view.xml:111, near
   <record id="view_op_timetable_form" model="ir.ui.view">
        <field name="name">op.timetable.form</field>
        <field name="model">op.timetable</field>
        <field name="priority" eval="8"/>
        <field name="sequence" eval="4"/>
        <field name="arch" type="xml">
            <form string="Time Table" version="7.0">
                <header>
                    <button string="Planned" type="workflow" name="action_planned" class="" icon="gtk-undo" states="postponed"/>
                    <button string="Complete" type="workflow" name="action_complete" class="" icon="gtk-apply" states="planned, postponed"/>
                    <button string="Postponed" type="action" name="%(timetable_postponed)d" class="" icon="gtk-jump-to"/>
                    <button string="Cancel" type="workflow" name="action_cancel" class="" icon="gtk-cancel" states="planned, postponed"/>
                    <field name="state" widget="statusbar" readonly="True" statusbar_visible="planned, completed, postponed, cancelled"/>
                </header>
                <sheet>
                    <separator colspan="4" string="Time Table"/>
                    <group colspan="4" col="4">
                        <field name="lecturer_id"/>
                        <field name="standard_id"/>
                        <field name="period_id"/>
                        <field name="subject_id"/>
                        <field name="classroom_id"/>
                        <field name="start_datetime"/>
                        <field name="end_datetime"/>
                        <field name="type"/>
                    </group>
                </sheet>
            </form>
        </field>
    </record>

如何在我的按钮点击事件中检索这个新窗口...?

1 个答案:

答案 0 :(得分:0)

通过按钮调用操作时遇到问题。

每当我们尝试在Button中调用操作时,我们需要在操作名称之前指定模块名称,其中实际操作ID是defind。

如果您没有指定模块名称,那么将当前模块作为名称并尝试在其中找到该ID。

这是你的代码:

<button string="Postponed" type="action" name="%(timetable_postponed)d" class="" icon="gtk-jump-to"/>

需要改变这个

name="%(module_name.timetable_postponed)d"