2015-01-23 1 views
0

У меня есть всплывающее окно (форма) и кнопка на нем, в OpenERP, прикрепленное изображение. Когда я нажимаю на кнопку (пока она ничего не делает), моя форма закрыта. Я хочу оставить его открытым после нажатия кнопки. Как я могу это сделать? Я знаю «nodestroy» = Правда, но я не уверен, куда его поместить, если это решение.Как сохранить всплывающее окно открытым, видимым после нажатия кнопки в OpenERP?

enter image description here

Вот мой XML-код:

<record id="replace_all_in_BOM_form" model="ir.ui.view"> 
    <field name="name">replace.all.in.BOM.form</field> 
    <field name="model">product.template</field> 
    <field name="priority" eval="20"/> 
    <field name="type">form</field> 
    <field name="arch" type="xml"> 
     <label class="text-inline" for="original_name" string="Original" 
     ></label> 
     <input name="original_name" id="original_id" ></input> 
     <group> 
      <field name="default_code" string="Replacement" readonly="1" 
      invisible="0" />  
      <field name="uom_id" invisible="1" /> 
      <field name="uom_po_id" invisible="1" /> 
      <field name="type" invisible="1" /> 
      <field name="categ_id" invisible="1" /> 
      <field name="name" invisible="1" />    
     </group> 
      <button type="object" string="Replace" name="action_replace" /> 
    </field> 
    </record> 

<record id="action5" model="ir.actions.act_window"> 
    <field name="name">Replace all in BOM</field> 
    <field name="type">ir.actions.act_window</field> 
    <field name="res_model">product.template</field>   
    <field name="view_type">form</field> 
    <field name="target">new</field> 
    <field name="view_id" ref="replace_all_in_BOM_form"/> 
</record> 

<record id="ir_BOM_structure5" model="ir.values"> 
    <field eval="'client_action_multi'" name="key2"/> 
    <field eval="'product.template'" name="model"/> 
    <field name="name">Replace all in BOM</field> 
    <field eval="'ir.actions.act_window,'+str(action5)" name="value"/> 
</record> 
+0

Пожалуйста, включите код, который вы в настоящее время используется для этой формы. – ryanyuyu

+0

@ryanyuyu Я добавил код XML для всплывающей формы. – Nebojsa

ответ

1

Вы должны вернуть действие, которое вновь открыть то же всплывающее окно.

Чтобы сделать это, метод «action_replace» должен вернуть:

return { 
    'type': 'ir.actions.act_window', 
    'res_model': 'your.model', 
    'view_type': 'form', 
    'view_mode': 'form', 
    'res_id': 'id_of_the_wizard', 
    'target': 'new', 
} 
+0

Я уже пробовал это, но спасибо за ваш ответ. Проблема с этим подходом заключается в том, что при повторном открытии окна значения «Оригинал» и «Замена» теряются. Я хотел бы сохранить эти значения в форме после нажатия кнопки. – Nebojsa

+0

@Nash: для этого создайте новое поле и введите значение в нем, когда нажата кнопка action_replace. Новое поле сохранит предыдущее значение и добавит разделитель запятой после вставки значения. Вы можете отслеживать его ценность. Кнопка вернет TRUE, чтобы появилось всплывающее окно. Спасибо –

+0

@Odedra Спасибо Odedra. Когда я создаю новое поле, значит ли это, что он будет добавлен в какую-нибудь таблицу? Как я могу добавить поле, можете ли вы привести пример кода? Спасибо – Nebojsa