[IMP] add attribute filters in attribute view

This commit is contained in:
David Beal
2016-03-16 18:29:40 +01:00
parent b0110ca542
commit 3e702f0186
3 changed files with 45 additions and 1 deletions

View File

@@ -0,0 +1 @@
from . import attribute

View File

@@ -8,7 +8,8 @@
'category': 'Product', 'category': 'Product',
'summary': "Attribute views improved", 'summary': "Attribute views improved",
'description': """ 'description': """
Add a form view to Attribute and Attribute Value views - Create filter dynamically for each attributes in attribute values search view
- Add a form view to Attribute and Attribute Value views
Contributors: David BEAL Contributors: David BEAL
""", """,

View File

@@ -0,0 +1,42 @@
# coding: utf-8
# © 2016 David BEAL @ Akretion
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from openerp import models, fields, api
from lxml import etree
class ProductAttributeValue(models.Model):
_inherit = 'product.attribute.value'
@api.model
def _get_attributes_to_filter(self):
""" Inherit if you want reduce the list """
return [(x.id, x.name)
for x in self.env['product.attribute'].search([])]
@api.model
def _customize_attribute_filters(self, my_filter):
""" Inherit if you to customize search filter display"""
return {
'string': "%s" % my_filter[1],
'help': 'Filtering by Attribute',
'domain': "[('attribute_id','=', %s)]" % my_filter[0]}
@api.model
def fields_view_get(self, view_id=None, view_type='form',
toolbar=False, submenu=False):
""" customize xml output
"""
res = super(ProductAttributeValue, self).fields_view_get(
view_id=view_id, view_type=view_type, toolbar=toolbar,
submenu=submenu)
if view_type == 'search':
filters_to_create = self._get_attributes_to_filter()
doc = etree.XML(res['arch'])
for my_filter in filters_to_create:
elm = etree.Element(
'filter', **self._customize_attribute_filters(my_filter))
doc[0].addprevious(elm)
res['arch'] = etree.tostring(doc, pretty_print=True)
return res