Skip to Content
Odoo Menu
  • Log ind
  • Prøv gratis
  • Apps
    Økonomi
    • Bogføring
    • Fakturering
    • Udgifter
    • Regneark (BI)
    • Dokumenter
    • e-Signatur
    Salg
    • CRM
    • Salg
    • POS Butik
    • POS Restaurant
    • Abonnementer
    • Udlejning
    Hjemmeside
    • Hjemmesidebygger
    • e-Handel
    • Blog
    • Forum
    • LiveChat
    • e-Læring
    Forsyningskæde
    • Lagerbeholdning
    • Produktion
    • PLM
    • Indkøb
    • Vedligeholdelse
    • Kvalitet
    HR
    • Medarbejdere
    • Rekruttering
    • Fravær
    • Medarbejdersamtaler
    • Anbefalinger
    • Flåde
    Marketing
    • Markedsføring på sociale medier
    • E-mailmarketing
    • SMS-marketing
    • Arrangementer
    • Automatiseret marketing
    • Spørgeundersøgelser
    Tjenester
    • Projekt
    • Timesedler
    • Udkørende Service
    • Kundeservice
    • Planlægning
    • Aftaler
    Produktivitet
    • Dialog
    • Godkendelser
    • IoT
    • VoIP
    • Vidensdeling
    • WhatsApp
    Tredjepartsapps Odoo Studio Odoo Cloud-platform
  • Brancher
    Detailhandel
    • Boghandel
    • Tøjforretning
    • Møbelforretning
    • Dagligvarebutik
    • Byggemarked
    • Legetøjsforretning
    Mad og værtsskab
    • Bar og pub
    • Restaurant
    • Fastfood
    • Gæstehus
    • Drikkevareforhandler
    • Hotel
    Ejendom
    • Ejendomsmægler
    • Arkitektfirma
    • Byggeri
    • Ejendomsadministration
    • Havearbejde
    • Boligejerforening
    Rådgivning
    • Regnskabsfirma
    • Odoo-partner
    • Marketingbureau
    • Advokatfirma
    • Rekruttering
    • Audit & certificering
    Produktion
    • Tekstil
    • Metal
    • Møbler
    • Fødevareproduktion
    • Bryggeri
    • Firmagave
    Heldbred & Fitness
    • Sportsklub
    • Optiker
    • Fitnesscenter
    • Kosmetolog
    • Apotek
    • Frisør
    Håndværk
    • Handyman
    • IT-hardware og support
    • Solenergisystemer
    • Skomager
    • Rengøringsservicer
    • VVS- og ventilationsservice
    Andet
    • Nonprofitorganisation
    • Miljøagentur
    • Udlejning af billboards
    • Fotografi
    • Cykeludlejning
    • Softwareforhandler
    Gennemse alle brancher
  • Community
    Få mere at vide
    • Tutorials
    • Dokumentation
    • Certificeringer
    • Oplæring
    • Blog
    • Podcast
    Bliv klogere
    • Udannelselsesprogram
    • Scale Up!-virksomhedsspillet
    • Besøg Odoo
    Få softwaren
    • Download
    • Sammenlign versioner
    • Udgaver
    Samarbejde
    • Github
    • Forum
    • Arrangementer
    • Oversættelser
    • Bliv partner
    • Tjenester til partnere
    • Registrér dit regnskabsfirma
    Modtag tjenester
    • Find en partner
    • Find en bogholder
    • Kontakt en rådgiver
    • Implementeringstjenester
    • Kundereferencer
    • Support
    • Opgraderinger
    Github Youtube Twitter LinkedIn Instagram Facebook Spotify
    +1 (650) 691-3277
    Få en demo
  • Prissætning
  • Hjælp

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

  • CRM
  • e-Commerce
  • Bogføring
  • Lager
  • PoS
  • Projekt
  • MRP
All apps
Du skal være registreret for at interagere med fællesskabet.
All Posts People Emblemer
Tags (View all)
odoo accounting v14 pos v15
Om dette forum
Du skal være registreret for at interagere med fællesskabet.
All Posts People Emblemer
Tags (View all)
odoo accounting v14 pos v15
Om dette forum
Hjælp

Is there any way that I can make a entire form Readonly?

Tilmeld

Få besked, når der er aktivitet på dette indlæg

Dette spørgsmål er blevet anmeldt
readonlyformviewattributeodoo11
3 Besvarelser
26942 Visninger
Avatar
venugopal voraganti

I know that we can make a complete form by placing the read-only attribute on each field. But my requirement is to make the complete form read-only based on status (As I have too many fields in my form view).

1
Avatar
Kassér
Avatar
Jose Gpe Osuna
Bedste svar

You can set all fields to readony, using a context value and overriding the fields_view_get() method of your model

Example:

If you want to turn the entire account.invoice form to readonly, you can use the next code, using a context value:

Calling from any specific button, menu or field set a context value. I choose 'turn_view_readonly' value to True
from a the sale order view xml button.

<button name="action_view_invoice" string="View Invoice" type="object" class="oe_highlight"        
context="{'turn_view_readonly':True}"/>


And  inherit  account.invoice code model, checking for this value

from odoo import models, api
from lxml import etree
import simplejson

class AccountInvoice(models.Model):
_inherit = 'account.invoice'
@api.model
def fields_view_get(self, view_id=None, view_type=False, toolbar=False, submenu=False):
context = self._context
res = super(AccountInvoice, self).fields_view_get(view_id=view_id, view_type=view_type, toolbar=toolbar,
submenu=submenu)

if context.get('turn_view_readonly'): # Check for context value
doc = etree.XML(res['arch'])
if view_type == 'form': # Applies only for form view
for node in doc.xpath("//field"): # All the view fields to readonly
node.set('readonly', '1')
node.set('modifiers', simplejson.dumps({"readonly": True}))

res['arch'] = etree.tostring(doc)
return res

You can also look for 'active_id' or 'active_ids' value in context, and check the state field of the recordset and turn the fields to readonly..

if context.get('active_id') and self.browse(context.get('active_id')).state == 'X':
doc = etree.XML(res['arch'])
# ... etc

  

5
Avatar
Kassér
Zahid Mehmood

fields_view_get
This method only gets call when page get refresh, not when you open any record.

Avatar
Maher Khalil
Bedste svar

You can make a boolean field and make a function to turn it true if status achieved then make view read only if that field is true

0
Avatar
Kassér
Avatar
Sushma
Bedste svar

Hi,

Can try to add security rule, disable rights to create and edit, grant only read access. 

0
Avatar
Kassér
venugopal voraganti
Forfatter

Dear Sushma. Thank you for your answer. But this is not I'm looking at. I need to make readonly in a specific status for all groups.

Sushma

Hi Venu,

Indeed, but this is only way you can achieve, with group tag readonly won't work. This need to be added only to fields.

Thanks !

Enjoying the discussion? Don't just read, join in!

Create an account today to enjoy exclusive features and engage with our awesome community!

Tilmeld dig
Related Posts Besvarelser Visninger Aktivitet
Odoo 11: readonly bypass module Løst
readonly odoo11
Avatar
Avatar
2
jun. 20
9480
How to make whole form view readonly (rather than put readonly attribute to each field)?
readonly formview
Avatar
Avatar
1
mar. 18
7534
Editable tree view inside a form view is not saving.
treeview formview odoo11
Avatar
Avatar
Avatar
2
okt. 18
8504
How can I set all form fields readonly in Odoo 17 depending on a field?
readonly fields_view_get formview odoo17
Avatar
0
sep. 24
4424
How to Make an Entire Form View Readonly in Odoo 15? Løst
form readonly formview v15
Avatar
Avatar
Avatar
2
jun. 24
12077
Community
  • Tutorials
  • Dokumentation
  • Forum
Open Source
  • Download
  • Github
  • Runbot
  • Oversættelser
Tjenester
  • Odoo.sh-hosting
  • Support
  • Opgradere
  • Individuelt tilpasset udvikling
  • Uddannelse
  • Find en bogholder
  • Find en partner
  • Bliv partner
Om os
  • Vores virksomhed
  • Brandaktiver
  • Kontakt os
  • Stillinger
  • Arrangementer
  • Podcast
  • Blog
  • Kunder
  • Juridiske dokumenter • Privatlivspolitik
  • Sikkerhedspolitik
الْعَرَبيّة 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 er en samling open source-forretningsapps, der dækker alle dine virksomhedsbehov – lige fra CRM, e-handel og bogføring til lagerstyring, POS, projektledelse og meget mere.

Det unikke ved Odoo er, at systemet både er brugervenligt og fuldt integreret.

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