This question has been flagged

I want to filter the values from another database table as i am not able to fit the condition on it.

Here my scenario is i have product options and its values so for single product we have assigned some options amongst product options and when ordering the product in sale order the options should be there which i have assigned in product.


The view for product options :

<record model="ir.ui.view" id="product_option_form">

      <field name="name">sale.product.options</field>

      <field name="model">product.options</field>

      <field name="arch" type="xml">

        <tree editable="top">

          <field name="name" />

          <field name="types" />

        </tree>

      </field>

    </record>


The view for product options values :

    <record model="ir.ui.view" id="product_option_values_form">

      <field name="name">sale.product.options</field>

      <field name="model">product.options.values</field>

      <field name="arch" type="xml">

        <tree editable="top">

          <field name="option_name" />

          <field name="name" />

        </tree>

      </field>

    </record>



In the product master we have created the tree view to select some options from product options:

<record id="product_options" model="ir.ui.view">

        <field name="name">product.template.product.form</field>

        <field name="model">product.template</field>

        <field name="inherit_id" ref="product.product_template_only_form_view"/>

        <field name="arch" type="xml">

          <xpath expr="//page[@name='variants']" position="after">

            <page name="options" string="Options">

                <field name="options_line_ids">

                  <tree string="Options" editable="bottom">

                    <field name="opt_names" string="Options"/>

                    <field name="opt_values" string="Option Values" widget="many2many_tags" domain="[('option_name', '=', opt_names)]"/>

                  </tree>

                </field>

            </page>

          </xpath>

        </field>

    </record>


In the sale order the product options and values view:

<page name="option" String="Options">

              <field name="option_sale_line_ids">

                <tree editable="bottom">

                  <field name="names"/>

                  <field name="values" widget="many2many_tags" domain="[('option_name', '=', names)]"/>

                </tree>

              </field>

            </page>


Here is .py file code:

class product_options(models.Model):

 _name = 'product.options'


 name = fields.Char()

 types = fields.Selection([('radio', 'Radio'), ('select', 'Select')],required=True)


class product_options_values(models.Model):

 _name = 'product.options.values'


 option_name = fields.Many2one('product.options')

 name = fields.Char()


class product_option_line(models.Model):

 _name = 'product.options.line'

 opt_names = fields.Many2one('product.options')

 opt_values = fields.Many2many('product.options.values')

 product_id = fields.Many2one('product.template') 


class create_product_options_(models.Model):

 _inherit = 'product.template'

 options_line_ids = fields.One2many('product.options.line', 'product_id')



class sale_product_options(models.Model):

 _name = 'sale.options'


 product_ids = fields.Many2one('sale.order.line')

 names = fields.Many2one('product.options' )

        values = fields.Many2many('product.options.values')

    

class sale_option_line(models.Model):

 _inherit = 'sale.order.line'

 option_sale_line_ids = fields.One2many('sale.options', 'product_ids')


how can i add either domain or some python code for filter out the product options which should come from product master where i had selected some options..

Avatar
Discard