2014-11-17 3 views
0

Я пишу модуль для управления некоторыми ветвями.
Каждая ветка может содержать подсечки.
Существует поле (тип), которое определяет тип ветки (суб или основной).Иерархическое дерево с узлами

_columns = { 
     'name'     : fields.char('Name',size=120,required=True), 
     'no'     : fields.char('Number'), 
     'type'     : fields.selection([('s','Sub'), ('m','Main Branch ')],'Type',help="Branch type: Main or Sub branch."), 

Мне нужно показать эту иерархию в представлении OpenERP.
я могу использовать нормальный вид дерева, как это:

<!-- Tree view of branches --> 
    <record id="view_branch_tree" model="ir.ui.view"> 
     <field name="name">branchs.branch.tree</field> 
     <field name="model">branchs.branch</field> 
     <field name="arch" type="xml"> 
      <tree string="station" > 
          <field name="name"/> 
          <field name="no"/> 
          <field name="type"/> 

Но я не знаю, как показать их в виде иерархического дерева, с основными ветвями, как узлы, как расходный график.

ответ

2

Вам нужно будет сделать следующее:

1- В .py файле добавить столбец типа (one2many), которые будут иметь идентификаторы детей и еще один, который относится к родителю:

'parent_id' : fields.many2one('branches.branch','Parent Branches'), 
'child_ids' : fields.one2many('branches.branch', 'parent_id', 'Children'), 

2- в файле XML: добавить это поле: child_ids

И в secti на смену viewtype к дереву:

    <field name="view_type">tree</field> 

Наконец, добавьте этот фильтр, чтобы показать только родители в узлах:

    <field name="domain">[('parent_id','=',False)]</field> 

Вот и все.

+0

Интересно ... и будет ли это работать без упоминания parent_id и child_ids в представлении? – tonjo

Смежные вопросы