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
    • TPV para tiendas
    • TPV para restaurantes
    • Suscripciones
    • Alquiler
    Sitios web
    • Creador de sitios web
    • Comercio electrónico
    • Blog
    • Foro
    • Chat en directo
    • e-learning
    Cadena de suministro
    • Inventario
    • Fabricación
    • PLM
    • Compra
    • Mantenimiento
    • Calidad
    Recursos Humanos
    • Empleados
    • Reclutamiento
    • Ausencias
    • Evaluación
    • Referencias
    • Flota
    Marketing
    • Marketing social
    • Marketing por correo electrónico
    • Marketing por SMS
    • Eventos
    • Automatización de marketing
    • Encuestas
    Servicios
    • Proyecto
    • Partes de horas
    • Servicio de campo
    • Servicio de asistencia
    • Planificación
    • Citas
    Productividad
    • Conversaciones
    • Inteligencia artificial
    • IoT
    • VoIP
    • Información
    • WhatsApp
    Aplicaciones de terceros Studio de Odoo Plataforma de Odoo Cloud
  • Industrias
    Comercio al por menor
    • Librería
    • Tienda de ropa
    • Tienda de muebles
    • Tienda de ultramarinos
    • Ferretería
    • Juguetería
    Alimentación y hostelería
    • Bar y pub
    • Restaurante
    • Comida rápida
    • Casa de huéspedes
    • Distribuidor de bebidas
    • Hotel
    Inmueble
    • Agencia inmobiliaria
    • Estudio de arquitectura
    • Construcción
    • Gestión inmobiliaria
    • Jardinería
    • Asociación de propietarios
    Consultoría
    • Asesoría contable
    • Partner de Odoo
    • Agencia de marketing
    • Bufete de abogados
    • Adquisición de talentos
    • Auditorías y certificaciones
    Fabricación
    • Textil
    • Metal
    • Muebles
    • Alimentos
    • Cervecería
    • Regalos corporativos
    Salud y bienestar
    • Club deportivo
    • Óptica
    • Gimnasio
    • Terapeutas
    • Farmacia
    • Peluquería
    Oficios
    • Handyman
    • Hardware y soporte técnico
    • Sistemas de energía solar
    • Zapatero
    • Servicios de limpieza
    • Servicios de calefacción, ventilación y aire acondicionado
    Otros
    • Organización sin ánimo de lucro
    • Agencia de protección del medio ambiente
    • Alquiler de paneles publicitarios
    • Estudio fotográfico
    • Alquiler de bicicletas
    • Distribuidor de software
    Explorar todos los sectores
  • Comunidad
    Aprender
    • Tutoriales
    • Documentación
    • Certificaciones
    • Formación
    • Blog
    • Podcast
    Potenciar la educación
    • Programa de formación
    • Scale Up! El juego empresarial
    • Visita Odoo
    Obtener el software
    • Descargar
    • Comparar ediciones
    • Versiones
    Colaborar
    • GitHub
    • Foro
    • Eventos
    • Traducciones
    • Convertirse en partner
    • Servicios para partners
    • Registrar tu asesoría contable
    Obtener servicios
    • Encontrar un partner
    • Encontrar un asesor fiscal
    • Contacta con un experto
    • Servicios de implementación
    • Referencias de clientes
    • Ayuda
    • Actualizaciones
    GitHub YouTube Twitter Linkedin Instagram Facebook Spotify
    +1 (650) 691-3277
    Solicitar una demostración
  • Precios
  • Ayuda
Debe estar registrado para interactuar con la comunidad.
Todas las publicaciones Personas Insignias
Etiquetas (Ver todo)
odoo accounting v14 pos v15
Sobre este foro
Debe estar registrado para interactuar con la comunidad.
Todas las publicaciones Personas Insignias
Etiquetas (Ver todo)
odoo accounting v14 pos v15
Sobre este foro
Ayuda

How to add a Javascript function to object through inheritance

Suscribirse

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

Esta pregunta ha sido marcada
javascriptinheritancemenuitemwebmodule
1 Responder
13570 Vistas
Avatar
Eric

How can I create a custom javascript file that adds a new property and function to an inherited object, so that my custom menu item will open a new website?

So far, I created a custom web module that inherits from the original web module in Openerp 7.  

I added a new menu item in the User Menu by extending from the UserMenu template in the base.xml file.

Here is my custom xml code that adds a new menu item to the User Menu template.

(custom xml file.  This new menu item does appear in the User Menu )

<templates>

    <t t-extend="UserMenu">

        <t t-jquery="ul" t-operation="append">

           <li><a href="#" data-menu="website">Website Menu Item</a></li>

        </t>

    </t>

</templates>


base.xml (original)

<t t-name="UserMenu">

    <span class="oe_user_menu oe_topbar_item oe_dropdown_toggle oe_dropdown_arrow">

        <img class="oe_topbar_avatar" t-att-data-default-src="_s + '/web/static/src/img/user_menu_avatar.png'"/>

        <span class="oe_topbar_name"/>

        <ul class="oe_dropdown_menu">

            <li><a href="#" data-menu="settings">Preferences</a></li>

            <li><a href="#" data-menu="account">My OpenERP.com account</a></li>

            <li><a href="#" data-menu="about">About OpenERP</a></li>

            <li><a href="#" data-menu="help">Help</a></li>

            <li><a href="#" data-menu="logout">Log out</a></li>

        </ul>

    </span>

</t>


What I want to do now is inherit the UserMenu object that is defined in the web module's chrome.js file, into my custom javascript file.   Then I want to add a property to the UserMenu object so that a new website is opened when the menu item is clicked

Here is what I have so far:

 

openerp.web_custom = function(instance){

     // Add the on_menu_website property to the UserMenu object

     instance.web.UserMenu.on_menu_website = function() {

         //open the website  ...  its not working though

         window.open('http://www.website.com', '_blank');

     }

}


Here is the original js file code:

instance.web.UserMenu = instance.web.Widget.extend({

    template: "UserMenu",

    init: function(parent) {

       ... some code here ...

    },

    start: function() {

        ... some code here ...

    },

    do_update: function () {

        ... some code here ...

    },

    on_menu_help: function() {

        ... some code here ...

    },

    on_menu_logout: function() {

        ... some code here ...

    },

    on_menu_settings: function() {

        ... some code here ...

    },

    on_menu_account: function() {

        ... some code here ...

    },

    on_menu_about: function() {

        ... some code here ...

    },

});


One thing to note, if I add my new code the the original web module files (base.xml, chrome.js) then it works fine.  But I want to be able to create a custom web module so that I can add new functionality without modifying the original web module.  So my question is, how can I create a custom javascript file that adds a new property and function so that my menu item will open the new website?  Thank you for your help

0
Avatar
Descartar
Avatar
Eric
Autor Mejor respuesta

I changed my custom javascript file to this. Then it worked


openerp.web_custom = function(instance){

     instance.web.UserMenu.include({

          on_menu_website: function () {

               window.open('http://www.website.com', '_blank');

          },

     });

}

2
Avatar
Descartar
SHIV SHANKAR

Saved my day!! Thanks :)

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

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

Inscribirse
Publicaciones relacionadas Respuestas Vistas Actividad
Change onclick kanban project view (JS file)
javascript inheritance
Avatar
Avatar
1
mar 22
8600
How to create custom menu which has default menu items customer , products and customer invoice ?
inheritance menuitem
Avatar
Avatar
Avatar
2
dic 21
10883
Inheriting NumberBuffercof pos to add 1000; 5000;10000 in PaymentScreen Resuelto
javascript pos inheritance
Avatar
Avatar
Avatar
2
jul 24
4138
override method in javascript class class in odoo 16 Resuelto
javascript inheritance odoo16
Avatar
Avatar
Avatar
3
may 24
5250
Trouble Importing JavaScript Between Custom Odoo Modules
javascript inheritance js
Avatar
0
may 24
4852
Comunidad
  • Tutoriales
  • Documentación
  • Foro
Código abierto
  • Descargar
  • GitHub
  • Runbot
  • Traducciones
Servicios
  • Alojamiento Odoo.sh
  • Ayuda
  • Actualizar
  • Desarrollos personalizados
  • Educación
  • Encontrar un asesor fiscal
  • Encontrar un partner
  • Convertirse en partner
Sobre nosotros
  • Nuestra empresa
  • Activos de marca
  • Contacta con nosotros
  • Puestos de trabajo
  • Eventos
  • Podcast
  • Blog
  • Clientes
  • Información 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 Svenska ภาษาไทย Türkçe українська Tiếng Việt

Odoo es un conjunto de aplicaciones empresariales de código abierto que cubre 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