Ir al contenido
Odoo Menú
  • Iniciar sesión
  • Pruébalo gratis
  • Aplicaciones
    Finanzas
    • Contabilidad
    • Facturación
    • Gastos
    • Hoja de cálculo (BI)
    • Documentos
    • Firma electrónica
    Ventas
    • CRM
    • Ventas
    • PdV para tiendas
    • PdV para restaurantes
    • Suscripciones
    • Alquiler
    Sitios web
    • Creador de sitios web
    • Comercio electrónico
    • Blog
    • Foro
    • Chat en vivo
    • eLearning
    Cadena de suministro
    • Inventario
    • Manufactura
    • PLM
    • Compras
    • Mantenimiento
    • Calidad
    Recursos humanos
    • Empleados
    • Reclutamiento
    • Vacaciones
    • Evaluaciones
    • Referencias
    • Flotilla
    Marketing
    • Redes sociales
    • Marketing por correo
    • Marketing por SMS
    • Eventos
    • Automatización de marketing
    • Encuestas
    Servicios
    • Proyectos
    • Registro de horas
    • Servicio externo
    • Soporte al cliente
    • Planeación
    • Citas
    Productividad
    • Conversaciones
    • Aprobaciones
    • IoT
    • VoIP
    • Artículos
    • WhatsApp
    Aplicaciones externas Studio de Odoo Plataforma de Odoo en la nube
  • Industrias
    Venta minorista
    • Librería
    • Tienda de ropa
    • Mueblería
    • Tienda de abarrotes
    • Ferretería
    • Juguetería
    Alimentos y hospitalidad
    • Bar y pub
    • Restaurante
    • Comida rápida
    • Casa de huéspedes
    • Distribuidora de bebidas
    • Hotel
    Bienes inmuebles
    • Agencia inmobiliaria
    • Estudio de arquitectura
    • Construcción
    • Gestión de bienes inmuebles
    • Jardinería
    • Asociación de propietarios
    Consultoría
    • Firma contable
    • Partner de Odoo
    • Agencia de marketing
    • Bufete de abogados
    • Adquisición de talentos
    • Auditorías y certificaciones
    Manufactura
    • Textil
    • Metal
    • Muebles
    • Comida
    • Cervecería
    • Regalos corporativos
    Salud y ejercicio
    • Club deportivo
    • Óptica
    • Gimnasio
    • Especialistas en bienestar
    • Farmacia
    • Peluquería
    Trades
    • Personal de mantenimiento
    • Hardware y soporte de TI
    • Sistemas de energía solar
    • Zapateros y fabricantes de calzado
    • Servicios de limpieza
    • Servicios de calefacción, ventilación y aire acondicionado
    Otros
    • Organización sin fines de lucro
    • Agencia para la protección del medio ambiente
    • Alquiler de anuncios publicitarios
    • Fotografía
    • Alquiler de bicicletas
    • Distribuidor de software
    Descubre todas las industrias
  • Odoo Community
    Aprende
    • Tutoriales
    • Documentación
    • Certificaciones
    • Capacitación
    • Blog
    • Podcast
    Fortalece la educación
    • Programa educativo
    • Scale Up! El juego empresarial
    • Visita Odoo
    Obtén el software
    • Descargar
    • Compara ediciones
    • Versiones
    Colabora
    • GitHub
    • Foro
    • Eventos
    • Traducciones
    • Conviértete en partner
    • Servicios para partners
    • Registra tu firma contable
    Obtén servicios
    • Encuentra un partner
    • Encuentra un contador
    • Contacta a un consultor
    • Servicios de implementación
    • Referencias de clientes
    • Soporte
    • Actualizaciones
    GitHub YouTube Twitter LinkedIn Instagram Facebook Spotify
    +1 (650) 691-3277
    Solicita una demostración
  • Precios
  • Ayuda

Odoo is the world's easiest all-in-one management software.
It includes hundreds of business apps:

  • CRM
  • e-Commerce
  • Contabilidad
  • Inventario
  • PoS
  • Proyectos
  • MRP
All apps
Debe estar registrado para interactuar con la comunidad.
Todas las publicaciones Personas Insignias
Etiquetas (Ver todo)
odoo accounting v14 pos v15
Acerca de este foro
Debe estar registrado para interactuar con la comunidad.
Todas las publicaciones Personas Insignias
Etiquetas (Ver todo)
odoo accounting v14 pos v15
Acerca de este foro
Ayuda

Odoo 15 - client side input for function triggered by button

Suscribirse

Reciba una notificación cuando haya actividad en esta publicación

Se marcó esta pregunta
functionbuttonsbuttoninputv15
1 Responder
4831 Vistas
Avatar
Fred Nunes

Hi everyone,

I want to have a button on one of my form views that triggers a function in the backend. This function has a couple of parameters, and I want these parameters to be passed live by the user, when clicking the button.

Is there a way to implement this on Odoo? The perfect scenario would be:

  • the user clicks the "Trigger Function" button
  • a prompt opens up with two fields (can be a TransientModel, although I never want the user input to be stored in the database, so ideally it should be passed directly to the backend)
  • the function runs with these two parameters, and the output of the function is used to fill a field in the original record
  • the original form view stays open

Any ideas would be greatly appreciated


1
Avatar
Descartar
Avatar
Amr Abd-Alkrim (FireBits)
Mejor respuesta

Yes you can do this through Odoo Wizards here is my full code in github gists.

To make a wizard you have to use the TransientModel witch will store the data temporarily in the database and it will be vacuumed after a while 

in your_module/wizards/wizard.py

class PopupWizard(models.TransientModel):
    _name = 'popup.wizard'
    
    title = fields.Char()
    start_date = fields.Datetime()
    
    def confirm(self):
      # to get the title value
      your_variable = self.title       # do what you want with the self.env to update any record you want    
      return {
            'name': "Your action name",
            'type': "ir.actions.act_window",
            'res_model': "your_model,
            'view_type': "form",
            'view_mode': "tree,form",
            'form_view_id': "your_form_external_id"
            'help': "help text",
       }


then in your form you can create a button that takes the action id with the %d function 


Happy to help :) an upvote will be awesome

2
Avatar
Descartar
Fred Nunes
Autor

Hi, I really appreciate your comment :-) this is the approach I was thinking about following, as I've written a few wizards, but at the time I didn't understand how to avoid having to write the input to the database (which can easily be prevented by overriding the create method).

My situation at the moment is the following: I have my model (Model X) and this model has a button in each record's form view. This button needs to:

* open the form view for the PopupWizard, which I believe can be done be returning the right action in the Python code
* the user inserts some input into the popup wizard and presses the confirm button (as you have done in your gist)
* upon pressing the confirm button, the code needs to go back to the original record of Model X and modify it in a certain way

My question is: how do I keep track of the ID of the original record? Is it possible to do this by passing context to the Popup Wizard action?

Thanks!

Amr Abd-Alkrim (FireBits)

When you click on the done button on your wizard you can return an action from your wizard method and it will open the form again for you just like refresh i updated my answer with the action

¿Le interesa esta conversación? ¡Participe en ella!

Cree una cuenta para poder utilizar funciones exclusivas e interactuar con la comunidad.

Registrarse
Publicaciones relacionadas Respuestas Vistas Actividad
send email button does not send immediately odoo15 Resuelto
function community email buttons v15
Avatar
Avatar
1
jun 23
2243
i want to know about buttons in odoo Resuelto
buttons v15
Avatar
Avatar
1
jun 22
3935
How to add a button to the bar from the top ?
buttons button
Avatar
Avatar
Avatar
2
jul 15
7432
api request
function api button
Avatar
0
dic 24
2072
How to add button under action?
form buttons v15
Avatar
Avatar
1
abr 23
112
Comunidad
  • Tutoriales
  • Documentación
  • Foro
Código abierto
  • Descargar
  • GitHub
  • Runbot
  • Traducciones
Servicios
  • Alojamiento en Odoo.sh
  • Soporte
  • Actualizaciones del software
  • Desarrollos personalizados
  • Educación
  • Encuentra un contador
  • Encuentra un partner
  • Conviértete en partner
Sobre nosotros
  • Nuestra empresa
  • Activos de marca
  • Contáctanos
  • Empleos
  • Eventos
  • Podcast
  • Blog
  • Clientes
  • Legal • Privacidad
  • Seguridad
الْعَرَبيّة Català 简体中文 繁體中文 (台灣) Čeština Dansk Nederlands English Suomi Français Deutsch हिंदी Bahasa Indonesia Italiano 日本語 한국어 (KR) Lietuvių kalba Język polski Português (BR) română русский язык Slovenský jazyk slovenščina Español (América Latina) Español ภาษาไทย Türkçe українська Tiếng Việt

Odoo es un conjunto de aplicaciones de código abierto que cubren todas las necesidades de tu empresa: CRM, comercio electrónico, contabilidad, inventario, punto de venta, gestión de proyectos, etc.

La propuesta única de valor de Odoo es ser muy fácil de usar y estar totalmente integrado.

Website made with

Odoo Experience on YouTube

1. Use the live chat to ask your questions.
2. The operator answers within a few minutes.

Live support on Youtube
Watch now