2016-11-16 3 views
0

のフィールドと行を非表示には、次のとおりです。dynamicly私は</p> <p>モデルコードからの結果を挿入する選手やツリービューのためのトレーニング結果を保存するためのモデルを持っているツリービューodoo 9

class GeneralFitnessDetails(Model): 

    _name = 'general_fitness_details' 
    generalFitnessDetails = Many2one("general_fitness") 
    player = Many2one('player') 
    exercise = Many2one("exercise") 
    exercise_state = Selection([('by_reps', 'By Reps'), 
           ('by_time', 'By Time'), 
           ('by_distance', 'By Distance'), 
           ('by_weight', 'By Weight')]) 
    reps = Integer(string='Reps') 
    time_sec = Integer(string='Seconds') 
    weight = Integer(string='Weight/KG') 
    distance = Integer(string='Distance/Meters') 

ここでビューのコード

です
<tree> 
<field name="player"/> 
<field name="exercise"/> 
<field name="exercise_state"/> 
<field name="reps" invisible="[('exercise_state', '=', 'by_reps')]"/> 
<field name="time_sec" invisible="[('exercise_state', '=', 'by_time')]"/> 
<field name="weight" invisible="[('exercise_state', '=', 'by_weight')]"/> 
<field name="distance" invisible="[('exercise_state', '=', 'by_distance')]"/> 
</tree> 

私が必要とするのは、それが機能するボタンを作成することです:onClickは、運動状態に応じてツリービューの表示された列の可視性をフィルタリングします。運動状態の値が "by_distance"であれば、距離による値を保持する列のみが表示されます

運動状態が "by_weight"になると自動的に視界が変更される必要があります等々 。

答えて

0

attrsを使用して、または非表示の属性でダイレクトしても、条件付きでツリービューからフィールドを非表示にすることはできません。

理由は、ツリービューには複数のレコードが含まれているため、1レコードのフィールドを非表示にすることはできず、すべてのレコードに共通のヘッダが存在するためです。そのため、不可視はツリービューで条件付きでは動作しません。

はいますが、ツリービューがeditbleある場合は、条件付きでreadonly属性を使用することができます

invisible="1" or invisible="True" 

、などそれは(ない動的に)静的に動作します。

+0

感謝します。ありがとう –

関連する問題