Skip to Content
Menu
This question has been flagged
1 Reply
646 Views

Hi, 

I have module that taking list of regions from External system,

If I set sql_conn to be valid before installing the module, fields.Secection is populated, but I need to have several records mapping to different connections, sql_conn will be valid after record is saved.


Currently the fields.Selection is empty, how to repopulate list of values ?

I'm fine witch saving the record after configuring sql_conn, and opening it again to add regions.


My module

Accounts(models.Model):

   _name = 'company.accounts'

   name = fields.Char('Name', required=True, translate=True)
   sql_conn = fields.Many2one('company.connections', 'SQL Connections')
   regions = fields.One2many(comodel_name='company.accounts.regions',inverse_name='config_id', string='Regions')

class AccountsRegions(models.Model):

   _name = 'company.accounts.regions'

   def _get_regions(self):
       sql_conn = self.sql_connection()
       if sql_conn == None:  # if new record sql_conn is not defined
           return []
       cursor = sql_conn.cursor()
       query = """select AccountCategoryCode,[Description] from AccountCategories where CategoryID = 7"""
       cursor.execute(query)
       row = cursor.fetchall()
       sql_conn.close()
       selection = []
       for r in row:
           selection += [('%s' % r['AccountCategoryCode'], '%s' % r['Description'])]
       return selection

   config_id = fields.Many2one('company.accounts', 'Config')
   sql_regions = fields.Selection(_get_regions, string="Regions")

    def sql_connection(self):
        try:
            sql_conn = self.config_id.sql_conn
            return pymssql.connect(sql_conn.server,sql_conn.username,sql_conn.password,sql_conn.database,as_dict=True,autocommit=True)
        except Exception as e:
            return None

XML



   
        company.accounts.config.form
        company.accounts
       
           
               
                   
                   
               
                   
                       
                                                            name="regions"
                                widget="section_one2many"
                                mode="tree,form"
                            >
                           
                                   
                           
                           
                                   
                           
                           
                       
                   
           
       
   

Avatar
Discard
Author Best Answer

Sorry for Mangled XML


    <record id="company_accounts_config_form" model="ir.ui.view">
        <field name="name">company.accounts.config.form</field>
        <field name="model">company.accounts</field>
        <field name="arch" type="xml">
            <form string="Accounts">
                <group>
                    <field name="name"/>
                    <field name="sql_conn" ref="company.connections"/>
                </group>
                    <notebook>
                        <page string="Regions" name="regions">
                            <field
                                name="regions"
                                widget="section_one2many"
                                mode="tree,form"
                            >
                            <form>
                                    <field name="sql_regions"/>
                            </form>
                            <tree>
                                    <field name="sql_regions"/>
                            </tree>
                            </field>
                        </page>
                    </notebook>
            </form>
        </field>
    </record>

Avatar
Discard
Related Posts Replies Views Activity
1
Nov 22
5041
1
Oct 21
2981
2
Nov 18
9911
4
Mar 15
4983
1
Mar 15
5812