1
votes

Comment utiliser le même champ plus d'une fois dans un formulaire?

À quoi ressemblerait la vue xml pour un module qui devait utiliser le même champ plus d'une fois?

Par exemple. Dans mon scénario, j'hérite de la vue et je souhaite afficher certains champs dans une nouvelle page comme vous pouvez le voir dans le code. move_lines est déjà utilisé dans la vue parente, donc je n'obtiens pas la sortie requise.

<xpath expr="/form/sheet/notebook/page[3]" position="after">
     <page string="Tracking Info">
          <field name="move_lines">
                 <tree string="Stock Moves" editable="bottom" create="false" delete="false">
                      <field name="product_id" readonly="True" required="1"/>
                      <field name="tracking_no"/>
                  </tree>
           </field>
    </page>
</xpath>

Y a-t-il une meilleure façon de faire cela?


1 commentaires

Vous pouvez trouver une réponse sur odoo.com/fr_FR/forum/aide-1/question/...


3 Réponses :


0
votes

En fait, ce n'est pas possible avec un Odoo vanille (non personnalisé), et je ne connais aucune personnalisation qui remplisse cette condition.


1 commentaires

En fait, cela est possible en créant un champ associé et en utilisant ce champ dans le xml.



0
votes
<record model="ir.ui.view" id="view_picking_form_with_double_move_lines">
  <field name="name">stark product</field>
  <field name="model">stock.picking</field>
  <field name="mode">extension</field>
  <field name="priority" eval="50"/>
  <field name="inherit_id" ref="stock.view_picking_form"/>
  <field name="arch" type="xml">
    <xpath expr="/form/sheet/notebook/page[3]" position="after">
      <page string="Tracking Info">
        <field name="move_lines" widget="one2many"/>
      </page>
    </xpath>
</field>



0 commentaires

2
votes

J'ai fait une recherche et le seul moyen d'y parvenir est de créer un champ associé.

<xpath expr="/form/sheet/notebook/page[3]" position="after">
                  <page string="Tracking Info">
                            <field name="move_lines_d">
                                <tree string="Stock Moves" editable="bottom" create="false" delete="false">
                                    <field name="state" invisible="1" readonly="0"/>
                                    <field name="product_id" readonly="True" required="1"/>

                                    <field name="moveline_partner" readonly="True"/>
                                    <field name="moveline_partner_address" readonly="True"/>
                                    <field name="tracking_no"/>

                                    <!--<field name="product_uom_qty" string="Initial Demand" readonly="True"/>-->
                                    <!--<field name="reserved_availability" string="Reserved" readonly="True"/>-->
                                    <field name="quantity_done" string="Done" readonly="True"/>
                                    <!--<field name="product_uom" readonly="True" string="Unit of Measure" groups="product.group_uom"/>-->
                                </tree>
                            </field>
                        </page>
              </xpath>

Et d'utiliser ce champ dans le xml

class stock_picking(models.Model):
    _inherit = 'stock.picking'

    move_lines_d = fields.One2many('stock.move', related='move_lines')

p>


0 commentaires