How to dynamically add new fields to a osv model depending on the number of records of another osv model in openerp? For example I have a model which is for planning purchases. I need to show total order qty that came in each shop.so i need to add new field each time a new record in sale.shop is created.
Odoo is the world's easiest all-in-one management software.
It includes hundreds of business apps:
- CRM
- e-Commerce
- Accounting
- Inventory
- PoS
- Project
- MRP
This question has been flagged
3
Replies
6691
Views
Use __init__
function of your class to dynamically add the sales shop to _columns
.
class planning(osv.osv):
def __init__(self, pool, cr):
shop_ids = pool.get('sale.shop').search(cr,SUPERUSER_ID,[])
for shop in pool.get('sale.shop').browse(cr, SUPERUSER_ID,shop_ids):
self._columns['shop_qty_%s'%shop.id] = fields.float(
'%s Order Qty'%shop.name)
return super(planning,self).__init__(pool, cr)
This is impossible with the current osv model. And it is bad software design.
Better, add a new model: purchase_shop_quantity and make a one2many relation from your current model to the new one
Enjoying the discussion? Don't just read, join in!
Create an account today to enjoy exclusive features and engage with our awesome community!
Sign upRelated Posts | Replies | Views | Activity | |
---|---|---|---|---|
|
3
May 21
|
2952 | ||
|
0
May 24
|
1248 | ||
|
0
Oct 24
|
852 | ||
|
2
Sep 21
|
21581 | ||
|
0
Dec 15
|
5891 |