Cursos Odoo - Cómo modificar CSS y JavaScript del Website

แชร์
ฝัง
  • เผยแพร่เมื่อ 26 ธ.ค. 2024

ความคิดเห็น • 42

  • @programacionbluehat
    @programacionbluehat ปีที่แล้ว

    amigo no tienes este proceso para Odoo 16? eso seria excelente

  • @leonelfernandogn8246
    @leonelfernandogn8246 4 ปีที่แล้ว

    Muy bueno mi pana.. saludos

  • @ferco057
    @ferco057 4 ปีที่แล้ว

    Muy buen video, gracias. Te quería pregunta, cómo podría colocar un filtro y poder asignarle dos campos tipo fecha en el frontend ?

  • @anthonycordova2168
    @anthonycordova2168 3 ปีที่แล้ว

    Hola amigo, tengo una duda. Entiendo que este modulo custom solo se usa para modificar el frontend de la app Website, pero como podría yo modificar elementos CSS de Odoo en general, ponte que quiero modificar los colores primarios o el tipo de fuente de todo Odoo. ¿Me podrías explicar como hacer eso?

    • @moldeointeractive
      @moldeointeractive  3 ปีที่แล้ว

      De forma similar, solamente que en lugar de heredar el assets_frontend tendrías que heredar el assetis_backend.

  • @martinsalcedoapps
    @martinsalcedoapps 4 ปีที่แล้ว

    Hola Ignacio. Gracias por tu aporte. Tengo una consulta. Hay forma de pasar valores de color a un style CSS como variables?. Mi idea es por ejemplo tener en un campo de configuración de estilos de Odoo el valor por ejemplo res_partner.color = "#77AABB" y con este valor al momento de renderizar el template que lo tome como un style, por ejemplo style="color:%s;" %(res_partner.color), me explico? Quiero crear dentro de odoo mis plantillas y que el usuario pueda crearlos con los colores que necesite para los reportes. Gracias por tu ayuda de antemano.

    • @moldeointeractive
      @moldeointeractive  4 ปีที่แล้ว +1

      Variables en CSS con SCSS (Odoo lo sporta). Pero según entiendo necesitas pasar los valores desde Odoo a algun template de Odoo. Eso es algo más complejo, con Javascript se puede hacer, todavía no explicamos mucho del JS de Odoo (es bastante enroscado) pero vamos a ir haciendolo pronto (primero queremos explicar los Snippets básicos antes de pasar a JS). En principio tu idea de style="color:%s;" %(res_partner.color) es posible pero debería ser t-att-style=" 'color:' %s; %(res_partner.color)". En este caso simplemente corregí las comillas y puse el t-att- delante de style que es la propiedad que las plantillas reconocen como de modificación. No lo probé, pero se supone que algo así tiene que funcionar sin recurrir a JS. Saludos!

    • @martinsalcedoapps
      @martinsalcedoapps 4 ปีที่แล้ว

      @@moldeointeractive Gracias estimado, lo pruebo.

  • @Edd_Elric
    @Edd_Elric 5 ปีที่แล้ว

    Y no se podria modificar los campos de mi modulo simplemente poniendo algo asi (dentro de las vistas)?

    • @moldeointeractive
      @moldeointeractive  5 ปีที่แล้ว +1

      Si, algo así te funcionaría, las vistas aceptan el style interno así como el script. Sin embargo se suele recomendar que las hojas de estilo se encuentren en un archivo externo, así como los scripts. No es algo de Odoo, es de HTML en general, por un tema de escalabilidad. Pero si es un cambio rápido o incluso una prueba va bien. Eso si, en ese ejemplo lo estás poniendo con la tag field y esa tag es de QWeb, puede que el motor de render no lo interprete bien. Si te fijás en la vista creada al momento de inspeccionar con el navegador vas a notar que no existe la tag field, sino que se encuentran dentro de una tag de HTML. Por ejemplo, si es un campo de tipo char figura esta clase: o_field_char o_field_widget. Ahi si es mucho mejor hacer modificaciones desde un archivo a parte, si se quiere modificar como se ve un campo en particular se puede localizar por el name. Saludos!

  • @FreddyRamirez77
    @FreddyRamirez77 5 ปีที่แล้ว

    Hola..¿como estas?
    Soy muy nuevo en odoo, lamentablemente nunca lo he usado pero me toco un cliente de esos que solo usan este sistema .,. y tengo un problema (o dudas).
    En la sección "blocking" uno puede crear bloques personalizados, en mi caso tengo un hmtl con css JQ y JS.
    coloco su html, coloco su css y su JS cada quien en su sección. (odoo 11)
    pero no funciona, ¿odoo no trabaja con librerias extrenas tipo code.jquery.com/jquery-3.2.1.js en esos blocking?
    si quiero agregar un blocke nuevo en el site con JS etc.. ¿hay un paso extra para que funcione?.-.
    Mil gracias igual.

    • @moldeointeractive
      @moldeointeractive  5 ปีที่แล้ว

      ¡Bienvenido a Odoo! Es un aprendizaje que puede tener sus idas y vueltas, pero es un gran framework. Para incluir librerías externas se hace como se explica en este video (habría que agregar el ), aunque en el caso de jQuery ya está incluido por defecto en Odoo, así que es posible usarlo sin necesidad de agregarlo. Hay que tener en cuenta que en este video agregamos un bloque de JS a la vista "website.assets_frontend" que interviene solo en el website de odoo, pero no en la plataforma del backend. Para eso hay que modificarlo por "website.assets_backend". No sabría donde es que estás agregando, la mejor forma es haciendo un módulo personalizado en el servidor (como explicamos acá: th-cam.com/video/CrTFAg4qBdI/w-d-xo.html ) y después seguir los pasos de este video, tiene que funcionar para Odoo 11. Good coding!

    • @FreddyRamirez77
      @FreddyRamirez77 5 ปีที่แล้ว

      @@moldeointeractive Hola ¡ gracias por responder, muy agradecido.. (te asumo que odoo o no se deja querer o de verdad tomare la palabra de varios que me dicen que no es muy amigable y regrese a wp, jommla magento y shopify..) :(
      Odoo 11 tiene para crear los block, ahí cuando se crea un nuevo tiene html - css y js .
      Tengo mi html, mi css y js. y los coloco en su sitio tl cual como los tengo . (aunque lei que hay que quitarles las etiquetas etc y colocarlos en sus sitios en el block..
      Luego tome tus palabras y fui a website.assets_backend y les coloque ahi los link externos (
      Luego que hago esos pasos el bloque o la seccion donde estaba dicho nuevo bloque ni abre..es mas..ni abre el editor ...luego de esto..¿que estoy haciendo mal?
      Odoo es tan dificil como para dejarlo asi y seguir con mis otros cms?
      MIl gracias :)

    • @moldeointeractive
      @moldeointeractive  5 ปีที่แล้ว

      @@FreddyRamirez77 Lo que pasa con los demás CSM es que cuando una empresa escala ya no le sirven tanto, por supuesto es cuestión de gustos. Acá el problema es que esos CMS se basan principalmente en PHP, que es un lenguaje muy poco eficiente para grandes bases de datos, y dentro del paradigma de los últimos 5 años se está tendiendo a no utilizar. Odoo utiliza Python (backbone) y se está empezando a integrar Angular (por lo tanto, hasta jQuery se está quedando atrás). Nosotros no vamos a decir que se tiene o no que usar, pero empleamos Odoo desde 2010, hemos usado Wordpress, Joomla, Drupal, incluso vendíamos nuestro propio CMS, y desde hace 3 años que la tendencia está marcada en abandonar sistemas basados en PHP, Odoo empezó a tener un éxito increible desde Odoo 10. Quizás un error que se comete a veces es pensar que Odoo es un CMS, cuando en realidad es un ERP al cual le han dado posibilidades de CMS. A veces hay clientes que lo piden y no aprovechan todo su potencial, pero las empresas tienden a escalar.
      Respecto a tu pregunta, creo que lo que estás haciendo es un Snippet, que en algunas versiones de Odoo se traduce como "Bloqueo". Son unas cajas que se arrastran y se ponen sobre el website. No es la mejor forma de agregar un CSS y un JS. Si tenés acceso al servidor lo mejor es hacer un módulo (como en el link que te dejé previamente) y luego seguir estos pasos. También hay un botón del lado del website que es "Personalizar" en el menú de arriba, y ahí una opción que dice "Editar HTML/CSS". Se te va a abrir una caja de edición con un desplegable de todas las vistas (odoo se maneja con vistas, para que se puedan reutilizar acorde a los datos). Ahí vas a poder agregar contenido HTML como en cualquier sitio normal, incluyendo tags de LINK y SCRIPT. No es lo más recomendable, insisto en la opción del módulo personalizado. Pero si tenés prisa a lo mejor te sirve.
      Odoo no es dificil, pero tiene una curva de aprendizaje un poco lenta (calculamos que un buen desarrollador de Python aprenderá Odoo en unos 6 meses). Si es tan solo para un CMS, y tenés constancia de que no va a escalar mucho ni a necesitar cuestiones de contabilidad, facturación, trazabilidad, inventario, etc; entonces lo mejor son CMS del estilo Drupal o Joomla. Ahora, en el caso de tiendas, Odoo tiene uno de los ecommerce más eficientes, sin contar que debe ser el más fácil de integrar con otros servicios (nosotros por ejemplo desarrollamos y mantenemos un conector con MercadoLibre, Mercadopago y Producteca). Saludos!

  • @angelavilas5328
    @angelavilas5328 5 ปีที่แล้ว

    muchas gracias por el video, una pregunta, por que el javascrip me funciona un aler() o un console.log() me funcionan, pero al momento de selecciona algun id="" o una class="" el java script no los detecta? como si no estuvieran gracias un saludo

    • @moldeointeractive
      @moldeointeractive  5 ปีที่แล้ว +1

      Debería funcionar, lo que pasa es que cada ecosistema es un mundo. Si funciona un alert tiene que poder utilizar un document.getElemenytById('mi-id') o sino con jQuerry que actualmente Odoo lo sigue manteniendo de esta manera $("#mi-id"). Yo para descartar cualquier cosa probaría primero usando algo de eso en un console.log. Si sale un null en la consola es que algo raro está pasando, a lo mejor el elemento no existe o algo pasa. Saludos.

  • @fractalcaos7006
    @fractalcaos7006 5 ปีที่แล้ว

    Para incluir Jquery hace falta toda la parte del modulo JS?

    • @moldeointeractive
      @moldeointeractive  5 ปีที่แล้ว +1

      Depende de la ruta del jQuery, en odoo 10, 11 y 12 está en web/static/lib/jquery/jquery.js por lo tanto sería asi:
      Todo lo que esté en static se puede acceder desde cualquier módulo respetando la ruta (siempre y cuando dicho módulo esté instalado).

  • @fedegregori318
    @fedegregori318 5 ปีที่แล้ว

    Buenas, es genial tu video. Me estoy iniciando en el desarrollo de Odoo. Pregunta, el HTML también podría hacerlo dentro de static o cómo manejaría el marcado? Disculpa las molestias y muchas gracias por su tiempo!

    • @moldeointeractive
      @moldeointeractive  5 ปีที่แล้ว

      Hola, bienvenido a Odoo. El HTML es un tanto más complejo, Odoo utiliza un sistema de vistas por medio de Templates en formato XML (lo cual soporta HTML) y un sistema llamado QWeb. Los templates se pueden crear o heredar uno ya existente para modificarlo (esto último es más habitual). Te aconsejo nuestra lista de reproducción de Odoo, especialmente estos videos:
      th-cam.com/video/YkE9YqB5VPA/w-d-xo.html
      th-cam.com/video/3jdLDqxwLnk/w-d-xo.html
      th-cam.com/video/HVZKqyMiv5c/w-d-xo.html
      Saludos y good coding!

    • @fedegregori318
      @fedegregori318 5 ปีที่แล้ว +1

      Estoy en shock por tu pronta y buenísima respuesta. Muchas gracias. Estuve mirando la documentación y vi que se pasa cód HTML dentro de , veremos cómo me va. Saludos y buenas energías!

  • @sanreikaj
    @sanreikaj 5 ปีที่แล้ว

    Hola, muy buena explicación, me gusto bastante. Una pregunta... Cómo puedo cargar una libreria JS, en concreto? Me gustaría utilizar la librería Waypoints, pero en general cúal es el método para cargar librerías de manera exitosa?
    Nota:
    Estoy intentando cargar dicha librería pero en consola siempre obtengo el mensaje de error que no fue posible cargar el modulo, sin embargo un modulo personalizado con código de prueba si lo carga y ejecuta sin problema como tu lo haces en el video.

    • @sanreikaj
      @sanreikaj 5 ปีที่แล้ว

      Al final era un error de esos que te quitan todo el tiempo del mundo y cuando te das cuenta dan vergüenza jejeje. Cometí un error al escribir el nombre del modulo.

    • @moldeointeractive
      @moldeointeractive  5 ปีที่แล้ว

      Bueno, la librería tendría que encontrarse en la carpeta y la ruta tiene que ser correcta, o se puede usar el link proporcionado por algún CDN. El método no debería ser muy distinto al mostrado acá, no sé que error te estará dando.

  • @jorgeblanco1221
    @jorgeblanco1221 5 ปีที่แล้ว

    Saludos gracias por el tutorial lo que no entendi es de donde sacas el nombre website.website cuando agregas el js gracias

    • @moldeointeractive
      @moldeointeractive  5 ปีที่แล้ว +1

      Buenas, la función define() de Odoo JavaScript requiere que le pasemos los datos de la vista donde se va a ejecutar nuestro código de JavaScript (aunque en rigor lo va a ejecutar en todas las vistas que hereden assets_frontend). Nos sirve para que se le pueda hacer un return a una vista, pero eso es tema para otro video. El nombre website.website es el nombre de la vista. Para ubicar cualquier vista en Odoo necesitamos el nombre del módulo donde se encuentra y el nombre del ID de la vista. En este caso, como no necesitaba una vista personalizada para el JavaScript, optamos por usar la vista "website" del módulo website de Odoo (se puede buscar en la parte de Ajustes -> Tecnico -> Vistas o directamente en la carpeta addons/website). Saludos.

    • @jorgeblanco1221
      @jorgeblanco1221 5 ปีที่แล้ว

      @@moldeointeractive gracias estoy aprendiendo mucho contigo como sugerencia si deseas hacer otro video por favor , que se trate de como hacer un menú personalizado que imprima dinámicamente las páginas que que cargamos en Odoo seria genial gracias por todo

    • @moldeointeractive
      @moldeointeractive  5 ปีที่แล้ว

      Es una buena idea, la tendremos en cuenta para futuros videos.

  • @jvcsan
    @jvcsan 5 ปีที่แล้ว

    Excelente video! en el caso de multi-website... ¿cómo se haría para separar el css y js aplicado a cada uno de los websites? muchas gracias!

    • @moldeointeractive
      @moldeointeractive  4 ปีที่แล้ว +1

      Es una gran pregunta, la respuesta no es sencilla por desgracia. Justo estamos haciendo unos trabajos de multi-website y pensabamos contar algunas cosas al respecto, asi que veremos de incluirlo. Te puedo adelantar algo, cuando se crea un segundo sitio con el módulo multi-website de Odoo los ID de las homepage pasan a ser asi: website.home-1 website.home-2. De esta forma se pueden detectar las vistas para agregar cosas de HTML, y ahí hay opciones de agregar CSS o JS para un homepage distinto. Saludos!

  • @feelapp873
    @feelapp873 4 ปีที่แล้ว

    Hola comunidad de interactive, la ubicación de JQUERY en odoo 12 esta en la siguiente ruta:
    web/static/lib/jquery/jquery.js ?
    Para actualizar mi librería de jquery puedo utilizar la librería del cdn de google?

    • @moldeointeractive
      @moldeointeractive  4 ปีที่แล้ว

      La dirección es correcta, pero cuidado con actualizar librerías como jquery porque es una dependencia directa de Odoo, si Odoo no la actualiza de forma automática es porque no la tienen probada. Y si, la podes actualizar usando el CDN como se muestra en este video. Saludos!

    • @feelapp873
      @feelapp873 4 ปีที่แล้ว

      @@moldeointeractive tienes un vídeo de como actualizar jquery ?

    • @moldeointeractive
      @moldeointeractive  4 ปีที่แล้ว

      @@feelapp873 No, es que en realidad si vamos a la forma "correcta", Odoo es un Framework, si se quiere actualizar jQuery que es una dependencia hay que actualizar Odoo completo.

    • @JOSEROJAS-hu3wv
      @JOSEROJAS-hu3wv 4 ปีที่แล้ว

      @@moldeointeractive pero solo seria el modulo "web" que abría que actualizar porque odoo 13 usa jquery 3 y no todos los modulos usan jquery

    • @moldeointeractive
      @moldeointeractive  4 ปีที่แล้ว

      @@JOSEROJAS-hu3wv El módulo web de Odoo, así como el base, son parte del motor de Odoo. No se puede utilizar un módulo web de Odoo 13 en, por ejemplo, Odoo 8. jQuery se usa tanto en el backend como en el frontend. Si lo que se quiere es actualizar jQuery en el website (módulo website) entonces se puede incluir el CDN, aunque hay riesgos de que se pueda romper algo no compatible. Para actualizar Odoo hay que instalar una versión nueva y pasar la base de datos (salvo que se usen sistemas como OdooSH). Saludos.

  • @eicuervo
    @eicuervo 5 ปีที่แล้ว

    No dejaron los archivos :(