コンテンツへスキップ
Odoo メニュー
  • サインイン
  • 無料で15日試す
  • アプリ
    財務
    • 会計
    • 請求
    • 経費
    • スプレッドシート(BI)
    • ドキュメント管理
    • 署名
    販売
    • CRM
    • 販売
    • POS店舗
    • POSレストラン
    • サブスクリプション
    • レンタル
    ウェブサイト
    • ウェブサイトビルダー
    • eコマース
    • ブログ
    • フォーラム
    • ライブチャット
    • eラーニング
    サプライチェーン
    • 在庫
    • 製造
    • 製品ライフサイクル管理 (PLM)
    • 購買
    • 整備
    • 品質
    人事業務
    • 従業員管理
    • 採用
    • 休暇管理
    • 人事評価
    • リファラル
    • フリート
    マーケティング
    • ソーシャルマーケティング
    • メールマーケティング
    • SMSマーケティング
    • イベント
    • マーケティングオートメーション
    • アンケート調査
    サービス
    • プロジェクト管理
    • タイムシート
    • フィールドサービス
    • ヘルプデスク
    • 計画
    • アポイントメント
    生産性向上ツール
    • ディスカッション
    • 承認
    • IoT
    • VoIP
    • ナレッジ
    • WhatsApp
    サードパーティアプリ Odooスタジオ Odooクラウドプラットホーム
  • インダストリー(業種別ソリューション)
    小売
    • 書店
    • アパレルショップ
    • 家具専門店
    • 食料品店
    • 金物店
    • 玩具店
    飲食・ホスピタリティ業界
    • バー・パブ
    • レストラン
    • ファストフード
    • ゲストハウス
    • 飲料販売代理店
    • ホテル
    不動産
    • 不動産会社
    • 建築事務所
    • 建設
    • 不動産管理
    • 造園
    • 住宅所有者組合
    コンサルティング
    • 会計事務所
    • Odooパートナー
    • マーケティングエージェンシー
    • 法律事務所
    • 人材派遣
    • 監査・認証
    製造
    • テキスタイル
    • 金属
    • 家具
    • 飲食
    • 醸造所
    • コーポレートギフト
    ヘルス & フィットネス
    • スポーツクラブ
    • 眼鏡店
    • フィットネスセンター
    • ウェルネス専門家
    • 薬局
    • ヘアサロン
    業種
    • 便利屋
    • IT ハードウェア・サポート
    • 太陽エネルギーシステム
    • 靴メーカー
    • クリーニングサービス
    • 空調設備サービス
    その他
    • 非営利団体
    • 環境機関
    • ビルボードレンタル
    • 写真
    • 自転車リース
    • ソフトウェアリセラー
    すべての業種を見る
  • コミュニティ
    学ぶ
    • チュートリアル
    • ドキュメンテーション
    • 認定
    • トレーニング
    • ブログ
    • ポッドキャスト
    教育サポート
    • 教育プログラム
    • Scale Up! ビジネスゲーム
    • Odooオフィス訪問
    ソフトを入手
    • ダウンロード
    • エディションを比較
    • リリース
    コラボレーション
    • Github
    • フォーラム
    • イベント
    • 翻訳
    • パートナーになる
    • パートナー様向けサービス
    • 会計事務所を登録
    サービス利用
    • パートナー一覧
    • 会計事務所一覧
    • 今すぐ相談する
    • 導入支援サービス
    • お客様一覧
    • サポート
    • アップグレード
    Github Youtube Twitter Linkedin Instagram Facebook Spotify
    +1 (650) 691-3277
    製品デモを利用する
  • 料金
  • ヘルプ

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

  • CRM
  • e-Commerce
  • 会計
  • 在庫
  • PoS
  • プロジェクト
  • MRP
All apps
コミュニティで交流するには登録する必要があります。
全てのポスト 人々 バッジ
タグ (全て表示)
odoo accounting v14 pos v15
このフォーラムについて
コミュニティで交流するには登録する必要があります。
全てのポスト 人々 バッジ
タグ (全て表示)
odoo accounting v14 pos v15
このフォーラムについて
ヘルプ

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

購読

この投稿に活動があった際に通知を受け取ります

この質問にフラグが付けられました
writeaccessreadodoo8
19 返信
13118 ビュー
アバター
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
アバター
破棄
アバター
Atchuthan - Technical Consultant, Sodexis Inc
最善の回答

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
アバター
破棄
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
著作者

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
著作者

getting KeyError: 'product.product'

Atchuthan - Technical Consultant, Sodexis Inc

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

Sankar
著作者

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
著作者

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
著作者

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

アバター
Ivan Elizaryev
最善の回答

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
アバター
破棄
Sankar
著作者

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.

アバター
Rihene
最善の回答

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
アバター
破棄
Sankar
著作者

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

アバター
Sankar
著作者 最善の回答

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
アバター
破棄
アバター
Qutechs, Ahmed M.Elmubarak
最善の回答

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
アバター
破棄
Sankar
著作者

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
著作者

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.

ディスカッションを楽しんでいますか?読むだけでなく、参加しましょう!

今すぐアカウントを作成して、限定機能を利用したり、素晴らしいコミュニティと交流しましょう!

登録
関連投稿 返信 ビュー 活動
how to read and write data from the .doc file using python? 解決済
write read file
アバター
アバター
1
12月 19
28557
Get and write: where is the problem?
write get odoo8
アバター
0
9月 15
4090
Odoo v8 - splitting read/write transactions to PostgreSQL
write transactions read split
アバター
アバター
1
4月 21
7626
how can limit write access to a field with one group? 解決済
field group write access
アバター
アバター
1
1月 20
5769
field not exist in vals after modifing with self._model.write()
python xml write odoo8
アバター
アバター
1
12月 16
5582
コミュニティ
  • チュートリアル
  • ドキュメンテーション
  • フォーラム
オープンソース
  • ダウンロード
  • Github
  • Runbot
  • 翻訳
サービス
  • Odoo.shホスティング
  • サポート
  • アップグレード
  • カスタム開発
  • 教育プログラム
  • 会計事務所一覧
  • パートナー一覧
  • パートナーになる
企業情報
  • 会社概要
  • ブランドアセット
  • お問い合わせ
  • 採用情報
  • イベント
  • ポッドキャスト
  • ブログ
  • お客様一覧
  • リーガル情報 • プライバシーポリシー
  • セキュリティ
الْعَرَبيّة 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(オドゥー)は、CRM、eコマース、会計、在庫管理、POS、プロジェクト管理など、企業のさまざまな業務を一つのシステムで管理できる、ベルギー発のオープンソースのERPソフトウェアです。

高機能で使いやすく、完全に統合されたERPとして、ユニークな価値を提供しています。

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