</record>
<record model="ir.actions.act_window" id="action_partner_form">
- <field name="name">Partner</field>
+ <field name="name">Partners</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">res.partner</field>
<field name="view_type">form</field>
</field>
</record>
<record model="ir.actions.act_window" id="action_partner_category">
- <field name="name">Partner Categories Architecture</field>
+ <field name="name">Partner categories</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">res.partner.category</field>
<field name="view_type">tree</field>
</record>
<menuitem name="Partners/Configuration/Categories" action="action_partner_category" id="menu_partner_category"/>
+ <record model="ir.actions.act_window" id="action_partner_by_category">
+ <field name="res_model">res.partner</field>
+ <field name="view_type">form</field>
+ <field name="view_mode">tree,form</field>
+ <field name="domain">[('category_id','child_of', [active_id])]</field>
+ </record>
+ <record model="ir.values" id="ir_action_partner_by_category">
+ <field name="key2" eval="'tree_but_open'"/>
+ <field name="model" eval="'res.partner.category'"/>
+ <field name="name">Open partners</field>
+ <field name="value" eval="'ir.actions.act_window,%d'%action_partner_by_category"/>
+ <field name="object" eval="True"/>
+ </record>
+
+
+ <menuitem
+ name="Partners/Partners/Partners by categories"
+ action="action_partner_category"
+ id="menu_partner_category_main"/>
+
<record model="ir.actions.act_window" id="action_partner_category_form">
- <field name="name">Partner Categories</field>
+ <field name="name">Partner categories</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">res.partner.category</field>
<field name="view_type">form</field>
ids2 = [x[0] for x in self.pool.get(field._obj).name_search(cr, user, args[i][2], [], 'like')]
else:
ids2 = args[i][2]
- def _rec_get(ids):
+ def _rec_get(ids, table, parent):
+ if not ids:
+ return []
+ if 'active' in table._columns:
+ ids2 = table.search(cr, user, [(parent,'in',ids),('active','in', [True, False])])
+ else:
+ ids2 = table.search(cr, user, [(parent, 'in', ids)])
+ return ids + _rec_get(ids2, table, parent)
+ def _rec_convert(ids):
if not len(ids): return []
cr.execute('select '+field._id1+' from '+field._rel+' where '+field._id2+' in ('+','.join(map(str,ids))+')')
ids = [x[0] for x in cr.fetchall()]
- return ids + _rec_get(ids)
- args[i] = ('id','in',ids2+_rec_get(ids2))
+ return ids
+ args[i] = ('id','in',_rec_convert(ids2+_rec_get(ids2, self.pool.get(field._obj), table._parent_name)))
else:
if isinstance(args[i][2], basestring):
res_ids = [x[0] for x in self.pool.get(field._obj).name_search(cr, user, args[i][2], [], args[i][1])]