Использование формы и дерева в openerp one2many список сразу - PullRequest
3 голосов
/ 06 октября 2011

У меня небольшой вопрос. Модуль, над которым я сейчас работаю, требует, чтобы я вставил набор полей и древовидное представление, которое обновляется при вводе данных в форму.

<field name="lines" widget="one2many_list" colspan="4" nolabel="1">
    <tree>
        <field name="product_id"/>
        <field name="product_qty"/>                                
    </tree>
    <form>
        <field name="product_id"/>
        <field name="product_qty"/>
    </form>
</field>

Выше приведен фрагмент кода, можно ли отобразить вид формы выше и вид дерева в одном на той же странице.

Для экземпляра

==============

Поля формы

Вид дерева

Чтобы без необходимости щелкать значок новой записи, я мог добавлять записи в древовидное представление и сохранять их из формы, показанной выше.

Пожалуйста, сообщите.

Спасибо!

Ответы [ 5 ]

4 голосов
/ 29 ноября 2011

В древовидной структуре есть атрибут, который называется «редактируемый». Вы можете использовать editable = 'top' или editable = 'bottom'

<field name="lines" widget="one2many_list" colspan="4" nolabel="1">
    <tree editable='bottom'>
        <field name="product_id"/>
        <field name="product_qty"/>                                
    </tree>
    <form>
        <field name="product_id"/>
        <field name="product_qty"/>
    </form>
</field>
3 голосов
/ 21 октября 2011

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

Некоторые виды имеют древовидные представления, которые можно редактировать на месте. Одним из примеров, который я могу вспомнить, является прайс-лист поставщика на экране продукта. Другое - это «Кодирование записей по перемещению» в разделе «Бухгалтерский учет». Если вы посмотрите на исходный код, вы, вероятно, сможете понять, как они это делают.

1 голос
/ 29 марта 2013

Вы можете использовать эту структуру для своих требований.

<field name='selected_tea_workers_line_ids' nolabel='1'>
<tree string='List' readonly='1'>
<field name='tea_line_worker_id' invisible="0" />
<field name='worker_id' />
<field name='is_selected' />
</tree>
</field>

, но кто-нибудь знает, как закодировать заданные значения для этих дочерних полей .?

1 голос
/ 23 января 2013

Сначала вы создадите поле one2many в поле родительской формы, например:

       class parent_temp(osv.osv)
            _name='parent.temp'
            _columns={
                'name' : fields.char('Parent Note',size=32),
                'temp_ids' : fields.one2many('temp.check', 'temp_id','temp note'),
                    }

       class temp_check(osv.osv)
           _name='temp.check
           _columns={
                   'name':fields.char('temp',size=32),
                   'temp_id':fields.many2one('parent.temp','temp note'),
                   }

Хорошо, это объявление py, теперь мы создадим представление для поля one2many с обновлением дерева:

       #form view 
       <form string="Temp Notes">
            <field name='name'/>   #parent field
            <field colspan="4" name="temp_ids" nolabel="1">
                    <tree string="Notes" editable="top">
                        """
                             write field here which u want to show in tree view
                            """
                            <field name='name'/>  #child field
                     </tree>
        </field>
       </form>

      #here editable option top or bottom
1 голос
/ 06 октября 2011

Это просто идея, но, возможно, этот дизайн может решить вашу проблему. Если у вас есть объект «заказ» со многими «линиями продуктов»:

  1. Создайте поле many2many в «линейке продуктов», ссылаясь на себя, используя parent_id
  2. Создание формы для объекта "линейка продуктов" с помощью product_id и product_qty
  3. Добавьте к форме базу списка деревьев в поле many2many.

Это поможет?

...