Bỏ qua để đến Nội dung
Odoo Menu
  • Đăng nhập
  • Dùng thử miễn phí
  • Ứng dụng
    Tài chính
    • Kế toán
    • Hóa đơn
    • Chi phí
    • Bảng tính (BI)
    • Tài liệu
    • Ký tên
    Bán hàng
    • CRM
    • Bán hàng
    • POS Cửa hàng
    • POS Nhà hàng
    • Đăng ký
    • Cho thuê
    Trang web
    • Trình tạo trang web
    • Thương mại điện tử
    • Blog
    • Diễn đàn
    • Trò chuyện trực tiếp
    • Học trực tuyến
    Chuỗi cung ứng
    • Tồn kho
    • Sản xuất
    • PLM
    • Mua hàng
    • Bảo dưỡng
    • Chất lượng
    Nhân sự
    • Nhân viên
    • Tuyển dụng
    • Ngày nghỉ
    • Đánh giá
    • Giới thiệu
    • Đội xe
    Marketing
    • Marketing trên MXH
    • Marketing qua email
    • Marketing qua SMS
    • Sự kiện
    • Tự động hóa Marketing
    • Khảo sát
    Dịch vụ
    • Dự án
    • Bảng chấm công
    • Dịch vụ hiện trường
    • Hỗ trợ
    • Kế hoạch
    • Lịch hẹn
    Năng suất
    • Thảo luận
    • Phê duyệt
    • IoT
    • VoIP
    • Kiến thức
    • WhatsApp
    Ứng dụng của bên thứ ba Studio Odoo Nền tảng Đám mây Odoo
  • Ngành
    Bán lẻ
    • Nhà sách
    • Cửa hàng quần áo
    • Cửa hàng nội thất
    • Cửa hàng tạp hóa
    • Cửa hàng đồ kim khí
    • Cửa hàng đồ chơi
    Ẩm thực & Dịch vụ lưu trú
    • Bar và quán rượu
    • Nhà hàng
    • Đồ ăn nhanh
    • Guest house
    • Nhà phân phối đồ uống
    • Khách sạn
    Bất động sản
    • Công ty môi giới bất động sản
    • Công ty kiến trúc
    • Xây dựng
    • Quản lý bất động sản
    • Làm vườn
    • Hiệp hội chủ sở hữu bất động sản
    Tư vấn
    • Công ty kế toán
    • Đối tác Odoo
    • Công ty marketing
    • Công ty luật
    • Tuyển dụng
    • Thanh tra & chứng nhận
    Sản xuất
    • Dệt may
    • Kim loại
    • Nội thất
    • Ẩm thực
    • Nhà máy bia
    • Quà tặng doanh nghiệp
    Sức khoẻ & fitness
    • CLB thể thao
    • Cửa hàng kính mắt
    • Trung tâm fitness
    • Chuyên gia chăm sóc sức khỏe
    • Hiệu thuốc
    • Tiệm làm tóc
    Thương mại
    • Dịch vụ sửa chữa
    • Phần cứng CNTT & Hỗ trợ
    • Hệ thống năng lượng mặt trời
    • Công ty sản xuất giày
    • Dịch vụ vệ sinh
    • Dịch vụ HVAC
    Khác
    • Tổ chức phi lợi nhuận
    • Cơ quan môi trường
    • Cho thuê biển quảng cáo
    • Nhiếp ảnh
    • Cho thuê xe đạp
    • Đại lý phần mềm
    Xem tất cả ngành
  • Cộng đồng
    Học tập
    • Khóa học
    • Tài liệu
    • Chứng chỉ
    • Đào tạo
    • Blog
    • Podcast
    Thúc đẩy đào tạo
    • Chương trình đào tạo
    • Trò chơi kinh doanh Scale Up!
    • Tham quan Odoo
    Nhận phần mềm
    • Tải xuống
    • So sánh các phiên bản
    • Phiên bản
    Hợp tác
    • Github
    • Diễn đàn
    • Sự kiện
    • Dịch thuật
    • Trở thành đối tác
    • Dịch vụ dành cho Đối tác
    • Đăng ký công ty kế toán của bạn
    Nhận dịch vụ
    • Tìm đối tác
    • Tìm kế toán
    • Gặp chuyên gia hỗ trợ
    • Dịch vụ Triển khai
    • Khách hàng tham khảo
    • Hỗ trợ
    • Nâng cấp
    Github Youtube Twitter Linkedin Instagram Facebook Spotify
    +1 (650) 691-3277
    Nhận một buổi demo
  • Bảng giá
  • Trợ giúp

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

  • CRM
  • e-Commerce
  • Kế toán
  • Tồn kho
  • PoS
  • Dự án
  • MRP
All apps
Bạn cần phải đăng ký để tương tác với cộng đồng.
Tất cả bài viết Người Huy hiệu
Thẻ (Xem tất cả)
odoo accounting v14 pos v15
Về diễn đàn này
Bạn cần phải đăng ký để tương tác với cộng đồng.
Tất cả bài viết Người Huy hiệu
Thẻ (Xem tất cả)
odoo accounting v14 pos v15
Về diễn đàn này
Hỗ trợ

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

Đăng ký nhận tin

Nhận thông báo khi có hoạt động trên bài viết này

Câu hỏi này đã bị gắn cờ
writeaccessreadodoo8
19 Trả lời
13130 Lượt xem
Ảnh đại diện
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
Ảnh đại diện
Huỷ bỏ
Ảnh đại diện
Atchuthan - Technical Consultant, Sodexis Inc
Câu trả lời hay nhất

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
Ảnh đại diện
Huỷ bỏ
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
Tác giả

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
Tác giả

getting KeyError: 'product.product'

Atchuthan - Technical Consultant, Sodexis Inc

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

Sankar
Tác giả

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
Tác giả

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
Tác giả

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

Ảnh đại diện
Ivan Elizaryev
Câu trả lời hay nhất

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
Ảnh đại diện
Huỷ bỏ
Sankar
Tác giả

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.

Ảnh đại diện
Rihene
Câu trả lời hay nhất

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
Ảnh đại diện
Huỷ bỏ
Sankar
Tác giả

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

Ảnh đại diện
Sankar
Tác giả Câu trả lời hay nhất

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
Ảnh đại diện
Huỷ bỏ
Ảnh đại diện
Qutechs, Ahmed M.Elmubarak
Câu trả lời hay nhất

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
Ảnh đại diện
Huỷ bỏ
Sankar
Tác giả

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
Tác giả

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.

Bạn có hứng thú với cuộc thảo luận không? Đừng chỉ đọc, hãy tham gia nhé!

Tạo tài khoản ngay hôm nay để tận hưởng các tính năng độc đáo và tham gia cộng đồng tuyệt vời của chúng tôi!

Đăng ký
Bài viết liên quan Trả lời Lượt xem Hoạt động
how to read and write data from the .doc file using python? Đã xử lý
write read file
Ảnh đại diện
Ảnh đại diện
1
thg 12 19
28565
Get and write: where is the problem?
write get odoo8
Ảnh đại diện
0
thg 9 15
4100
Odoo v8 - splitting read/write transactions to PostgreSQL
write transactions read split
Ảnh đại diện
Ảnh đại diện
1
thg 4 21
7630
how can limit write access to a field with one group? Đã xử lý
field group write access
Ảnh đại diện
Ảnh đại diện
1
thg 1 20
5775
field not exist in vals after modifing with self._model.write()
python xml write odoo8
Ảnh đại diện
Ảnh đại diện
1
thg 12 16
5588
Cộng đồng
  • Khóa học
  • Tài liệu
  • Diễn đàn
Open source
  • Tải xuống
  • Github
  • Runbot
  • Dịch thuật
Dịch vụ
  • Lưu trữ Odoo.sh
  • Hỗ trợ
  • Nâng cấp
  • Phát triển tùy chỉnh
  • Đào tạo
  • Tìm kế toán
  • Tìm đối tác
  • Trở thành đối tác
Giới thiệu công ty
  • Công ty của chúng tôi
  • Tài sản thương hiệu
  • Liên hệ
  • Việc làm
  • Sự kiện
  • Podcast
  • Blog
  • Khách hàng
  • Pháp lý • Riêng tư
  • Bảo mật
الْعَرَبيّة 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 là bộ ứng dụng kinh doanh có open source đáp ứng tất cả các nhu cầu của công ty bạn: CRM, thương mại điện tử, kế toán, tồn kho, POS, quản lý dự án, v.v.

Định hướng giá trị riêng biệt của Odoo là tích hợp hoàn toàn và dễ dàng sử dụng.

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