Overslaan naar inhoud
Odoo Menu
  • Aanmelden
  • Probeer het gratis
  • Apps
    Financiën
    • Boekhouding
    • Facturatie
    • Onkosten
    • Spreadsheet (BI)
    • Documenten
    • Ondertekenen
    Verkoop
    • CRM
    • Verkoop
    • Kassasysteem winkel
    • Kassasysteem Restaurant
    • Abonnementen
    • Verhuur
    Websites
    • Websitebouwer
    • E-commerce
    • Blog
    • Forum
    • Live Chat
    • eLearning
    Bevoorradingsketen
    • Voorraad
    • Productie
    • PLM
    • Inkoop
    • Onderhoud
    • Kwaliteit
    Personeelsbeheer
    • Werknemers
    • Werving & Selectie
    • Verlof
    • Evaluaties
    • Aanbevelingen
    • Wagenpark
    Marketing
    • Social media Marketing
    • E-mailmarketing
    • SMS Marketing
    • Evenementen
    • Marketingautomatisering
    • Enquêtes
    Diensten
    • Project
    • Urenstaten
    • Buitendienst
    • Helpdesk
    • Planning
    • Afspraken
    Productiviteit
    • Chat
    • Goedkeuringen
    • IoT
    • VoIP
    • Kennis
    • WhatsApp
    Apps van derden Odoo Studio Odoo Cloud Platform
  • Bedrijfstakken
    Detailhandel
    • Boekhandel
    • kledingwinkel
    • Meubelzaak
    • Supermarkt
    • Bouwmarkt
    • Speelgoedwinkel
    Food & Hospitality
    • Bar en Pub
    • Restaurant
    • Fastfood
    • Gastenverblijf
    • Drankenhandelaar
    • Hotel
    Vastgoed
    • Makelaarskantoor
    • Architectenbureau
    • Bouw
    • Vastgoedbeheer
    • Tuinieren
    • Vereniging van eigenaren
    Consulting
    • Accountantskantoor
    • Odoo Partner
    • Marketingbureau
    • Advocatenkantoor
    • Talentenwerving
    • Audit & Certificering
    Productie
    • Textiel
    • Metaal
    • Meubels
    • Eten
    • Brewery
    • Relatiegeschenken
    Gezondheid & Fitness
    • Sportclub
    • Opticien
    • Fitnesscentrum
    • Wellness-medewerkers
    • Apotheek
    • Kapper
    Trades
    • Klusjesman
    • IT-hardware & support
    • Zonne-energiesystemen
    • Schoenmaker
    • Schoonmaakdiensten
    • HVAC-diensten
    Andere
    • Non-profitorganisatie
    • Milieuagentschap
    • Verhuur van Billboards
    • Fotograaf
    • Fietsleasing
    • Softwareverkoper
    Browse all Industries
  • Community
    Leren
    • Tutorials
    • Documentatie
    • Certificeringen
    • Training
    • Blog
    • Podcast
    Versterk het onderwijs
    • Onderwijs- programma
    • Scale Up! Business Game
    • Bezoek Odoo
    Download de Software
    • Downloaden
    • Vergelijk edities
    • Releases
    Werk samen
    • Github
    • Forum
    • Evenementen
    • Vertalingen
    • Word een Partner
    • Services for Partners
    • Registreer je accountantskantoor
    Diensten
    • Vind een partner
    • Vind een boekhouder
    • Een adviseur ontmoeten
    • Implementatiediensten
    • Klantreferenties
    • Ondersteuning
    • Upgrades
    Github Youtube Twitter Linkedin Instagram Facebook Spotify
    +1 (650) 691-3277
    Vraag een demo aan
  • Prijzen
  • Help

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

  • CRM
  • e-Commerce
  • Boekhouding
  • Voorraad
  • PoS
  • Project
  • MRP
All apps
Je moet geregistreerd zijn om te kunnen communiceren met de community.
Alle posts Personen Badges
Labels (Bekijk alle)
odoo accounting v14 pos v15
Over dit forum
Je moet geregistreerd zijn om te kunnen communiceren met de community.
Alle posts Personen Badges
Labels (Bekijk alle)
odoo accounting v14 pos v15
Over dit forum
Help

is it possible to Make all fields read only except one ?

Inschrijven

Ontvang een bericht wanneer er activiteit is op deze post

Deze vraag is gerapporteerd
writeaccessreadodoo8
19 Antwoorden
13129 Weergaven
Avatar
Sankar

how to make  for one all fileds  should read only or hidden expect one field . that field should be writable.


how to achieve this ??

1
Avatar
Annuleer
Avatar
Atchuthan - Technical Consultant, Sodexis Inc
Beste antwoord

You could try to get your desired output by making few changes in fields_view_get().  (It is similar to a hack) 

 from lxml import etree
 from openerp.osv.orm import setup_modifiers
 class product_template(orm.Model):
    _inherit = "product.template"
    def fields_view_get(self, cr, uid, view_id=None, view_type=False, context=None, toolbar=False, submenu=False):
           if context is None:
               context = {}
           res = super(product_template, self).fields_view_get(cr, uid, view_id=view_id, view_type=view_type, context=context, toolbar=toolbar, submenu=submenu)
           if view_type == 'form' and self.pool.get('res.users').has_group(cr, uid, 'YOUR_GROUP_ID'):
               doc = etree.XML(res['arch'])
               method_nodes = doc.xpath("//field")
               for node in method_nodes:
                   node.set('readonly', "1")
                   if node.get('name', False) and node.get('name', False) not in ['name','image_medium']:  #Add fields to skip readonly
                       setup_modifiers(node, res['fields'][node.get('name', False)])
               res['arch'] = etree.tostring(doc)
           return res

CREATE 3 groups YOUR_GROUP_ID YOUR_GROUP_CHILD1_ID --> inherits YOUR_GROUP_ID group YOUR_GROUP_CHILD2_ID --> inherits YOUR_GROUP_ID group
You can check whether the user has access for a particular group by doing this self.pool.get('res.users').has_group(cr, uid, 'YOUR_GROUP_CHILD1_ID')
3
Avatar
Annuleer
Atchuthan - Technical Consultant, Sodexis Inc

I have edited my code to help you in case of having different groups with different field edit access

Sankar
Auteur

Nice idea. .And By using this function is it possible to control one2many or many2many fields too ?

Atchuthan - Technical Consultant, Sodexis Inc

I didn't have an opportunity to check whether this works for one2many or many2many. I'll let you know if it works for these 2 fields.

Sankar
Auteur

getting KeyError: 'product.product'

Atchuthan - Technical Consultant, Sodexis Inc

then add product module as a dependent module in your __openerp__.py file

Sankar
Auteur

Thanks it works and it throws NameError: global name 'etree' is not defined error

Atchuthan - Technical Consultant, Sodexis Inc

add this import statement: from lxml import etree

Sankar
Auteur

You rocks it works. . product.product did not worked for me. so i used product.template. What about security ? is it a just view modification ?

Atchuthan - Technical Consultant, Sodexis Inc

Yes, you need to use product.template for v8 and you need to create security.xml file with security records in it and add it to __openerp__.py

Sankar
Auteur

It it possible to make UI for this instead hard coding groups and field name. ?

Avatar
Ivan Elizaryev
Beste antwoord

You can make whole model readonly and add a button "Edit FIELD", which would launch wizard to modify field you need to be writable. That wizard will update a record as SUPERUSER_ID 

1
Avatar
Annuleer
Sankar
Auteur

Thanks Ivan, I want to make multiple groups. each groups has write access to specific fields only and other fields should be readonly. Thats why i asked how to make write access to specific fields only and other fields readonly. is it possible make a fine access control like ACL or Record Rules. so it can be applied to any model.

Avatar
Rihene
Beste antwoord

As far as i m concerned, either in front of every field you make readonly=True for those you need to make readonly and those you need them writable, dont put anything or you can make a function that transform your fields either readonly or writable.

Regards!!

1
Avatar
Annuleer
Sankar
Auteur

HI , Can you tell how to make a function that transform fields either readonly or writable.

Avatar
Sankar
Auteur Beste antwoord

Thanks for your tip. @ Dress Far. readonly makes a field read  only to all groups. i need it for specific group only.


can you give example to make a function that transform fields either readonly or writable.

0
Avatar
Annuleer
Avatar
Qutechs, Ahmed M.Elmubarak
Beste antwoord

Hello,

If you'd like to add a readonly attribute to specific group you can inherit that view, 
kindly check this , also you can give a group a read access right . BTW the question is not clear also the title is ambiguous.

Regards .... 

0
Avatar
Annuleer
Sankar
Auteur

Since the question not clear for you . let me explain. lets take products. i want to make a group that is allowed only edit the title of the product. other than title all fields should be read only. hope you can help me.

Qutechs, Ahmed M.Elmubarak

So I think the first link is helpful, You'll need to inherit the product's view then specify the groups_id the change the attribute of the field that you want to change ...

Sankar
Auteur

Sorry i cant get you. . how it will make only one field writable. because . odoo applies Access rights for all fields (whole model ). if you can please explain me.

Geniet je van het gesprek? Blijf niet alleen lezen, doe ook mee!

Maak vandaag nog een account aan om te profiteren van exclusieve functies en deel uit te maken van onze geweldige community!

Aanmelden
Gerelateerde posts Antwoorden Weergaven Activiteit
how to read and write data from the .doc file using python? Opgelost
write read file
Avatar
Avatar
1
dec. 19
28562
Get and write: where is the problem?
write get odoo8
Avatar
0
sep. 15
4096
Odoo v8 - splitting read/write transactions to PostgreSQL
write transactions read split
Avatar
Avatar
1
apr. 21
7628
how can limit write access to a field with one group? Opgelost
field group write access
Avatar
Avatar
1
jan. 20
5775
field not exist in vals after modifing with self._model.write()
python xml write odoo8
Avatar
Avatar
1
dec. 16
5588
Community
  • Tutorials
  • Documentatie
  • Forum
Open Source
  • Downloaden
  • Github
  • Runbot
  • Vertalingen
Diensten
  • Odoo.sh Hosting
  • Ondersteuning
  • Upgrade
  • Gepersonaliseerde ontwikkelingen
  • Onderwijs
  • Vind een boekhouder
  • Vind een partner
  • Word een Partner
Over ons
  • Ons bedrijf
  • Merkelementen
  • Neem contact met ons op
  • Vacatures
  • Evenementen
  • Podcast
  • Blog
  • Klanten
  • Juridisch • Privacy
  • Beveiliging
الْعَرَبيّة 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 is een suite van open source zakelijke apps die aan al je bedrijfsbehoeften voldoet: CRM, E-commerce, boekhouding, inventaris, kassasysteem, projectbeheer, enz.

Odoo's unieke waardepropositie is om tegelijkertijd zeer gebruiksvriendelijk en volledig geïntegreerd te zijn.

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