Ir al contenido
Odoo Menú
  • Identificarse
  • 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
    • Aprobaciones
    • IoT
    • VoIP
    • Conocimientos
    • 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
    • Empresa 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 de empresas
    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 empresa 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

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

  • CRM
  • e-Commerce
  • Contabilidad
  • Inventario
  • PoS
  • Proyecto
  • 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

How to invisible "Add a lines" button with conditions in order line odoo version18?

Suscribirse

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

Se marcó esta pregunta
developmentrecieptcustomizeodoo18
2 Respuestas
502 Vistas
Avatar
PhongsakornChe
I am in odoo18 and currently on the Receipt page. At the bottom section of this page, there is a tab called Operations which contains the product lines. I want to make this entire section read-only except for the hamburger icon (the “lot” action button) that allows adding lots to the products.



In hamburger button:


First, I used this code to make the entire section read-only, but it also disabled the hamburger icon, so I could not add lots at all:

<xpath expr="//field[@name='move_ids_without_package']" position="attributes">
    <attribute name="readonly">
        state == 'done' or approval_editable_has_po != 'edit_approved'
    </attribute>
    <attribute name="force_save">1</attribute>
</xpath>

Then, I changed the code by setting each individual column to read-only, leaving only the hamburger icon editable:

<xpath expr="//field[@name='move_ids_without_package']/list/field[@name='product_id']" position="attributes">
    <attribute name="readonly">parent.state == 'done' or parent.approval_editable_has_po != 'edit_approved'</attribute>
    <attribute name="force_save">1</attribute>
</xpath>

(…and similar XPaths for other columns)

The result is: all columns are read-only, so users cannot add new products — which is correct — and the hamburger icon still works, which is also what I want.

However, I also want to hide the “Add a line” button.

I tried:


<xpath expr="//field[@name='move_ids_without_package']/list" position="attributes">
    <attribute name="create">0</attribute>
</xpath>

This hides Add a line, but it disappears permanently.


Then I tried adding conditions:

<xpath expr="//field[@name='move_ids_without_package']/list" position="attributes">
    <attribute name="create">
        parent.state != 'done' or parent.approval_editable_has_po == 'edit_approved'
    </attribute>
</xpath>


But this does not work — look like the create attribute seems to accept only True/False/1/0 and ignores domain-like expressions.

My question is:

Is it possible to hide the “Add a line” button conditionally (based on state and approval fields) while still keeping the hamburger icon editable?

0
Avatar
Descartar
Avatar
Vashmitha V
Mejor respuesta

Hello there,

Check this,

<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="view_picking_form_inherit_restrict_new" model="ir.ui.view">
<field name="name">stock.picking.restrict.new</field>
<field name="model">stock.picking</field>
<field name="inherit_id" ref="stock.view_picking_form"/>
<field name="arch" type="xml">
<xpath expr="//field[@name='move_ids_without_package']" position="attributes">
<attribute name="options">{'create':[('state','not in',['done','cancel'])]}</attribute>
</xpath>
</field>
</record>
</odoo>


Hope this helps you.

0
Avatar
Descartar
Avatar
Kunjan Patel
Mejor respuesta
Hello PhongsakornChe
I hope you are doing well

Yes, but it requires JavaScript (Odoo 18)

XML alone cannot do this - create attribute only accepts True/False, not conditions.

Solution: JavaScript + XML
static/src/js/list_renderer.js
  /** @odoo-module **/
  import { patch } from "@web/core/utils/patch";
  import { ListRenderer } from "@web/views/list/list_renderer";

  patch(ListRenderer.prototype, {
      get canCreate() {
          const ctx = this.props.list.context;
          // Hide "Add a line" when state is done AND not edit_approved
          if (ctx.parent_state === 'done' && ctx.parent_approval !== 'edit_approved') {
              return false;
          }
          return super.canCreate;
      }
  });

views/stock_picking_view.xml (pass context)
  <xpath expr="//field[@name='move_line_ids']" position="attributes">
      <attribute name="context">{
          'parent_state': parent.state,
          'parent_approval': parent.approval_editable_has_po
      }</attribute>
  </xpath>

  __manifest__.py
  'assets': {
      'web.assets_backend': [
          'your_module/static/src/js/list_renderer.js',
      ],
  },

I hope this information helps you

Thanks & Regards
Kunjan Patel
0
Avatar
Descartar
¿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
Chatter in Odoo 18 Resuelto
development chatter odoo18
Avatar
Avatar
1
oct 25
7255
Delete Fields From POS receipt
development pos reciept
Avatar
Avatar
Avatar
2
oct 22
3948
Customizing Payroll Features in Odoo 17 Community Edition
development payroll customize odoo17CE
Avatar
0
ago 24
5
How to increment stock in product page Odoo 18
development stock product odooonline odoo18
Avatar
Avatar
Avatar
2
mar 25
1708
Custom Addons Odoo 17
development server addons customize odoo17
Avatar
Avatar
1
jun 24
2339
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 ภาษาไทย 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