[WIP] Add search view for quant packages and put store on related field location_id

bzr revid: jco@openerp.com-20130722093252-v3qqqadxibyrxdma
This commit is contained in:
Josse Colpaert 2013-07-22 11:32:52 +02:00
parent 795ae67052
commit f85da509e3
2 changed files with 28 additions and 2 deletions

View File

@ -2292,6 +2292,13 @@ class stock_package(osv.osv):
""" return all sublocations of the given stock locations (included) """
return self.search(cr, uid, [('id', 'child_of', ids)], context=context)
def _get_packages(self, cr, uid, ids, context=None):
"""Returns packages from quants for store"""
res = set()
for quant in self.browse(cr, uid, ids, context=context):
res.add(quant.package_id.id)
return list(res)
_columns = {
'name': fields.char('Package Reference', size=64, select=True),
'complete_name': fields.function(_complete_name, type='char', string="Package Name",
@ -2299,7 +2306,8 @@ class stock_package(osv.osv):
'parent_left': fields.integer('Left Parent', select=1),
'parent_right': fields.integer('Right Parent', select=1),
'packaging_id': fields.many2one('product.packaging', 'Type of Packaging'),
'location_id': fields.related('quant_ids', 'location_id', type='many2one', relation='stock.location', string='Location', readonly=True),
'location_id': fields.related('quant_ids', 'location_id', type='many2one', relation='stock.location', string='Location',
store = {'stock.quant': (_get_packages, ['location_id'], 10)}, readonly=True),
'quant_ids': fields.one2many('stock.quant', 'package_id', 'Bulk Content'),
'parent_id': fields.many2one('stock.quant.package', 'Container Package', help="The package containing this item"),
'children_ids': fields.one2many('stock.quant.package', 'parent_id', 'Contained Packages'),

View File

@ -1769,11 +1769,29 @@
</tree>
</field>
</record>
<record id="quant_package_search_view" model="ir.ui.view">
<field name="name">stock.quant.package.search</field>
<field name="model">stock.quant.package</field>
<field eval="10" name="priority"/>
<field name="arch" type="xml">
<search string="Package">
<field name="name" string="Package Name" filter_domain="['|',('name','ilike',self),('default_code','ilike',self)]"/>
<field name="location_id"/>
<field name="packaging_id"/>
<group expand='0' string='Group by...'>
<filter string='Location' icon="terp-stock_symbol-selection" domain="[]" context="{'group_by' : 'location_id'}"/>
<filter string='Name' icon="terp-mrp" domain="[]" context="{'group_by' : 'name'}"/>
<filter string='Packaging' icon="terp-stock_symbol-selection" domain="[]" context="{'group_by' : 'packaging_id'}"/>
<!--<filter string='Company' icon="terp-go-home" domain="[]" context="{'group_by' : 'company_id'}" groups="base.group_multi_company"/>-->
</group>
</search>
</field>
</record>
<record model="ir.actions.act_window" id="action_package_view">
<field name="context">{}</field>
<field name="name">Packages</field>
<field name="res_model">stock.quant.package</field>
</record>
<menuitem id="menu_package" name="Packages" parent="stock.menu_stock_configuration" action="action_package_view"/>
<menuitem id="menu_package" name="Packages" parent="menu_stock_product" action="action_package_view"/>
</data>
</openerp>