Pular para o conteúdo
Odoo Menu
  • Entrar
  • Experimente grátis
  • Aplicativos
    Finanças
    • Financeiro
    • Faturamento
    • Despesas
    • Planilhas (BI)
    • Documentos
    • Assinar Documentos
    Vendas
    • CRM
    • Vendas
    • PDV Loja
    • PDV Restaurantes
    • Assinaturas
    • Locação
    Websites
    • Criador de Sites
    • e-Commerce
    • Blog
    • Fórum
    • Chat ao Vivo
    • e-Learning
    Cadeia de mantimentos
    • Inventário
    • Fabricação
    • PLM - Ciclo de Vida do Produto
    • Compras
    • Manutenção
    • Qualidade
    Recursos Humanos
    • Funcionários
    • Recrutamento
    • Folgas
    • Avaliações
    • Indicações
    • Frota
    Marketing
    • Redes Sociais
    • Marketing por E-mail
    • Marketing por SMS
    • Eventos
    • Automação de Marketing
    • Pesquisas
    Serviços
    • Projeto
    • Planilhas de Horas
    • Serviço de Campo
    • Central de Ajuda
    • Planejamento
    • Compromissos
    Produtividade
    • Mensagens
    • Aprovações
    • Internet das Coisas
    • VoIP
    • Conhecimento
    • WhatsApp
    Aplicativos de terceiros Odoo Studio Plataforma Odoo Cloud
  • Setores
    Varejo
    • Loja de livros
    • Loja de roupas
    • Loja de móveis
    • Mercearia
    • Loja de ferramentas
    • Loja de brinquedos
    Comida e hospitalidade
    • Bar e Pub
    • Restaurante
    • Fast Food
    • Hospedagem
    • Distribuidor de bebidas
    • Hotel
    Imóveis
    • Imobiliária
    • Escritório de arquitetura
    • Construção
    • Administração de propriedades
    • Jardinagem
    • Associação de proprietários de imóveis
    Consultoria
    • Escritório de Contabilidade
    • Parceiro Odoo
    • Agência de marketing
    • Escritório de advocacia
    • Aquisição de talentos
    • Auditoria e Certificação
    Fabricação
    • Têxtil
    • Metal
    • Móveis
    • Alimentação
    • Cervejaria
    • Presentes corporativos
    Saúde e Boa forma
    • Clube esportivo
    • Loja de óculos
    • Academia
    • Profissionais de bem-estar
    • Farmácia
    • Salão de cabeleireiro
    Comércio
    • Handyman
    • Hardware e Suporte de TI
    • Sistemas de energia solar
    • Sapataria
    • Serviços de limpeza
    • Serviços de climatização
    Outros
    • Organização sem fins lucrativos
    • Agência Ambiental
    • Aluguel de outdoors
    • Fotografia
    • Aluguel de bicicletas
    • Revendedor de software
    Navegar por todos os setores
  • Comunidade
    Aprenda
    • Tutoriais
    • Documentação
    • Certificações
    • Treinamento
    • Blog
    • Podcast
    Empodere a Educação
    • Programa de educação
    • Scale Up! Jogo de Negócios
    • Visite a Odoo
    Obtenha o Software
    • Baixar
    • Comparar edições
    • Releases
    Colaborar
    • Github
    • Fórum
    • Eventos
    • Traduções
    • Torne-se um parceiro
    • Serviços para parceiros
    • Cadastre seu escritório contábil
    Obtenha os serviços
    • Encontre um parceiro
    • Encontre um Contador
    • Conheça um consultor
    • Serviços de Implementação
    • Referências de Clientes
    • Suporte
    • Upgrades
    Github YouTube Twitter Linkedin Instagram Facebook Spotify
    +1 (650) 691-3277
    Faça uma demonstração
  • Preços
  • Ajuda

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

  • CRM
  • e-Commerce
  • Financeiro
  • Inventário
  • PoS
  • Projeto
  • MRP
All apps
É necessário estar registrado para interagir com a comunidade.
Todas as publicações Pessoas Emblemas
Marcadores (Ver tudo)
odoo accounting v14 pos v15
Sobre este fórum
É necessário estar registrado para interagir com a comunidade.
Todas as publicações Pessoas Emblemas
Marcadores (Ver tudo)
odoo accounting v14 pos v15
Sobre este fórum
Ajuda

Is it possible to hide delete button for some rows in a tree view ?

Inscrever

Seja notificado quando houver atividade nesta publicação

Esta pergunta foi sinalizada
xmlviewdelete
5 Respostas
30741 Visualizações
Avatar
user0780987

Hi,

I have a view like this :

    <field name="product_line_ids" nolabel="1">
      <tree version="7.0">
        <field name="product_id" context="{'product_name_display': 'short'}" />
        <field name="name" />
        <field name="price_unit" />
        <field name="product_qty" />
        <field name="uom_id" />
        <field name="total" />
        <field name="is_included" />
        <field name="avg_price" />
        <field name="is_bought" />
        <field name="origin" />
        <field name="budget_line_id" />
        <field name="purchase_order_id" />
        <field name="type" invisible="1" />
      </tree>
      <form version="7.0">
        <group col="4">
          ...
        </group>
      </form>
    </field>

Depending if purchase_order_id is False or not, I would like to enable / disable the delete button on my view.

How can I achieve this ?

Thank you very much

0
Avatar
Cancelar
user0780987
Autor

Thank you Bole, This is an acceptable workaround, indeed. Too bad it's not possible to have this behaviour because with your solution, an error will appear on screen. I prefer to restrict user's actions instead of having error messages. Do you know if it's possible to create some function in javascript or jquery to realize client-side validation?

Avatar
Aksana Ivanova
Melhor resposta

You always can do:

<tree string="XX" editable="top"  delete="false">

...

    <button name="unlink" icon="gtk-cancel" type="object" string="Delete"

                                        attrs="{'invisible': [('your_condition', '=', 0)]}"/>

1
Avatar
Cancelar
Avatar
Bole
Melhor resposta

Normaly if you need to restrict deletion on objects you would define a view like:
<field name="product_line_ids" nolabel="1">
      <tree version="7.0" delete="false">.....

This will disable delete option completly on view 

There is no way of putting condition on delete function, it is enabled or disabled....

Workaround is...

If you need to check for some value and accordingly allow or not deletion....
You need to define an unlink method in your .py file for that class like:
 

def unlink(self, cr, uid, ids, context=None):
    for line in self.browse(cr, uid, ids):
        if line.purchase_order_id:
            raise osv.except_osv('error!', 'not allowed to delete record with purchase_line_id')
    return super(name_of_class, self).unlink(cr, uid, ids)

This way delete function is enabled, but before actual deletion some data check is made, and if certain condition is met 
(in this case existing purchase_order_id) system will raise error and will not allow deletion of selected records
Instead of raising error you may also remove id wich contains purchase_order_id from ids list and continue with unlinking (deleting) other records that are ok to be deleted... 

hope this helps...
p.s. the syntax of unlink method if for v7, but should work in v8 also 

look for other examles of unlink methods in some classes and expand to your needs

3
Avatar
Cancelar
Avatar
Agile
Melhor resposta

You can use this function this is working for me.
def unlink(self, cr, uid, ids, context=None):
    for line in self.browse(cr, uid, ids):
        if line.purchase_order_id:
            raise osv.except_osv('error!', 'not allowed to delete record with purchase_line_id')
    return super(name_of_class, self).unlink(cr, uid, ids)

0
Avatar
Cancelar
Avatar
caterjohn1@gmail.com
Melhor resposta
def unlink ( self ): 
"" "
Purpose: to prevent deleting of a YOUR_OBJECT in status NAME_OF_YOUR_STATUS
" ""
for order in self : if order.YOUR_CONDTION in ( ' NAME_OF_YOUR_STATUS_1','NAME_OF_YOUR_STATUS_2', 'CAN_HAVE_MULITPLE_CONDITIONS_OR_YOU_CAN_JUST_HAVE_ONE):raiseUserError ('TYPE_YOUR_ERROR_MESSAGE_HERE_FOR_USER_TO_SEE')returnsuper(YOUR_CLASS_NAME,self) .unlink ()



0
Avatar
Cancelar
Está gostando da discussão? Não fique apenas lendo, participe!

Crie uma conta hoje mesmo para aproveitar os recursos exclusivos e interagir com nossa incrível comunidade!

Inscreva-se
Publicações relacionadas Respostas Visualizações Atividade
How do I remove a button from the sale.order.form? Resolvido
xml view
Avatar
Avatar
Avatar
Avatar
Avatar
6
set. 17
9512
How do I change default text from a module view?
xml view
Avatar
Avatar
1
mar. 15
7019
XML from module not loaded after changes.
xml view
Avatar
Avatar
2
mar. 15
10996
display view if user is anonymous
xml view
Avatar
Avatar
1
mar. 15
5257
view xml, attrs use variable with attribute Resolvido
attrs xml view
Avatar
Avatar
1
mar. 24
11660
Comunidade
  • Tutoriais
  • Documentação
  • Fórum
Open Source
  • Baixar
  • Github
  • Runbot
  • Traduções
Serviços
  • Odoo.sh Hosting
  • Suporte
  • Upgrade
  • Desenvolvimentos personalizados
  • Educação
  • Encontre um Contador
  • Encontre um parceiro
  • Torne-se um parceiro
Sobre nós
  • Nossa empresa
  • Ativos da marca
  • Contato
  • Empregos
  • Eventos
  • Podcast
  • Blog
  • Clientes
  • Legal • Privacidade
  • Segurança
الْعَرَبيّة 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 é um conjunto de aplicativos de negócios em código aberto que cobre todas as necessidades de sua empresa: CRM, comércio eletrônico, contabilidade, estoque, ponto de venda, gerenciamento de projetos, etc.

A proposta de valor exclusiva Odoo é ser, ao mesmo tempo, muito fácil de usar e totalmente integrado.

Site feito com

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