2016-11-16 4 views
0

У меня есть модель, чтобы сохранить результаты тренировки для спортсменов и древовидного для вставки результатовдинамически скрыть поля и строки в дереве просмотра 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 записи и отобразить для других, поскольку заголовки являются общими для всех записей. Вот почему невидимый не будет работать условно в древовидной структуре.

Да, но он будет работать статически (не динамически), как, как,

invisible="1" or invisible="True" 

Вы можете использовать атрибут только для чтения, условно, если вид дерева editble.

+0

Имеет смысл, спасибо –