working with development developers developer create book python models odoo odoo-10 odoo-view

with - odoo python



Activar Odoo fields_view_get dinámicamente después de que todos los registros se carguen y la función fields_view_get se llame (1)

Me gustaría activar la función fields_view_get dinámicamente después de hacer algunas funciones. fields_view_get la función fields_view_get y devuelvo mis resultados. Esto se ve afectado en la vista XML solo la primera vez que se llama la función real. Así que necesito actualizar la vista para obtener nuevos valores en el arco .

¿Hay alguna manera de hacer que la vista de odoo se cambie con la función fields_view_get incluso después de que se haya llamado a la función por primera vez?

Mi intento:

# here fields view get changes the button string from getting arch # I overrided the fields_view_get on event model and its get affected and works # perfectly when I click on main menu Event.but not after the records loaded. @api.multi def send_mail_event(self): x = self.event_id.fields_view_get(view_id=None, view_type=''form'', toolbar=False, submenu=False) self.send_mail_event_reg_link(test=True) return x


El fields_view_get se llama desde load_views en https://github.com/odoo/odoo/blob/10.0/odoo/models.py#L1334 y load_views es llamado por el administrador de vistas del cliente web en https://github.com/odoo/odoo/blob/10.0/addons/web/static/src/js/view_manager.js#L130

Ahora, vea en view_manager.js dónde se llama a load_view desde y cuándo. Podemos ver que se llama en https://github.com/odoo/odoo/blob/10.0/addons/web/static/src/js/view_manager.js#L182 que es el llamado que nos interesa.

La función willStart si ve en el widget.js se llama cuando el widget se adjunta en el DOM que administra. El archivo adjunto ocurre solo una vez cuando se carga el dom.

Entonces, para fields_view_get , fields_view_get se ejecuta una vez cuando se carga la página y si desea volver a llamar, deberá hacerlo desde el lado del cliente js / web de las cosas llamando a la función load_views javascript.

Pero generalmente en Odoo, intente evitar las extensiones de cliente web si es posible. Si desea realizar cambios en la vista actual en función de las acciones del usuario, puede utilizar onchange o cualquier otro enganche de fondo.