OpenERP V7 - как очистить содержимое родительского поля после запуска On_Change в widget="one2many_list"

Я пишу настраиваемый модуль Lab Test в OpenERP V7. Грубая идея была описана в OpenERP 7 - Создайте сообщение автоматического журнала в поле "Записать заметку" как запись журнала истории.

Как я могу выполнить шаг 2, когда любые изменения в любом поле полей one2many_list вызовут функцию очистки текста в моем поле "Reason For Change"(ROC), которое является родительским полем?

Следуйте за моим примером:

'note_change': fields.text('Reason For Change',required=True),
'lab_lines': fields.one2many('test.lab', 'lab_id', 'Lab Lines'),
'lab_id': fields.many2one('test.lab', 'Parent Lab', ondelete='cascade', select=True), 
'product_name': fields.char('Product Name', size=64),
'product_id': fields.many2one('product.product', 'Product'),  

Соответствующие функции в py будут:

def onchange_product_id(self, cr, uid, ids, product_id, name, context=None):
    b_flags = False           
    if product_id:
        prod = self.pool.get('product.product').browse(cr, uid, product_id, context=context)
        res_id = context.get('test', False)
        if res_id:                
            """
            @TO trigger the function to set reason for change as empty                 
            """
            b_flags = True
            self.fnct_trigger_onchange(cr,uid,res_id,b_flags,context)               
        else:
            #other code here         

        warning = { 'title': 'Warning!',
                    'message' : 'Please enter reason for changes.',
                  }

        return {'value': {'product_name': prod.name, 'product_uom': prod.uom_id.id, 'product_std_cost': prod.standard_price},
                'warning': warning,
                }
    return {}

Моя функция записи объекта здесь:

def fnct_trigger_onchange(self,cr,uid,ids,b_flags,context=None):
        """
        @if b_flags is true means onchange function in this object was triggered
        @if b_flags is false means onchange function in this object was not triggered
        """
        res = {} 

        """
        @if b_flags is true then reset the Note Change field to empty
        """
        if b_flags:
            lab_obj= self.pool.get('test.lab')
            strResetEmpty=" "
            if not isinstance(ids, list):
                ids = [ids]

            res_vals = {'note_change':strResetEmpty
                        }
            lab_obj.write(cr, uid, ids, res_vals, context=context)           

        return res

Мой XML здесь:

    <?xml version="1.0" encoding="utf-8"?>
   <form string="lab_form_view" version="7.0">    
   <notebook>
   <page string="Lab Products">
          <field name="lab_lines" widget="one2many_list" context="{'test':active_id}" >
             <tree string="Components" editable="bottom">                                            
                    <field name="product_id" required="1" context="{'default_supply_method':'produce'}" on_change="onchange_product_id(product_id, product_name, context)" />
                    <field name="product_name" invisible="1"/>                                    
              </tree>
          </field>                                                  
     </page>
     </notebook>

     <group colspan="4" string= "Remark Notes">
               <field name="note_change" />                   
     </group>
     </form> 

Благодаря этому я могу активировать функцию записи объекта в fnct_trigger_onchange при выборе нового продукта в списке one2many, чтобы очистить содержимое открытого текста в поле ROC. Однако это еще не то, что я хочу, проблема моего текущего кода в том, что текст (в поле ROC) был очищен на заднем плане, но не представлен / отражен в представлении пользователя. Пользователь все еще видел старый текст, даже если он действительно был очищен.

Я хотел бы добиться того, что в качестве метода on_change сделано, когда пользователь выбирает продукт, поле ROC будет немедленно пустым. Как я могу это сделать? Может ли кто-нибудь помочь мне в этом? Спасибо!!

0 ответов

Другие вопросы по тегам