[FIX] add partner categories in partner kanban view

It must be done outside module 'base' because some javascript is needed,
and that introduces some dependency on module 'web_kanban'.

bzr revid: rco@openerp.com-20120720132238-7044u13lbxau9x4i
This commit is contained in:
Raphael Collet 2012-07-20 15:22:38 +02:00
parent 93f24defa8
commit 127d09181a
3 changed files with 51 additions and 4 deletions

View File

@ -33,13 +33,18 @@ Shows you a list of applications features to install from.
""",
'author': 'OpenERP SA',
'website': 'http://www.openerp.com',
'depends': ['base'],
'init_xml': [],
'update_xml': ['security/ir.model.access.csv', 'base_setup_views.xml', 'res_config_view.xml'],
'demo_xml': [],
'depends': ['base', 'web_kanban'],
'data': [
'security/ir.model.access.csv',
'base_setup_views.xml',
'res_config_view.xml',
'res_partner_view.xml',
],
'demo': [],
'installable': True,
'auto_install': False,
'certificate': '0086711085869',
'images': ['images/base_setup1.jpeg','images/base_setup2.jpeg','images/base_setup3.jpeg','images/base_setup4.jpeg',],
'js': ['static/src/js/base_setup.js'],
}
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -0,0 +1,19 @@
<openerp>
<data>
<!-- Add partner categories in partner kanban view -->
<record id="res_partner_kanban_view" model="ir.ui.view">
<field name="name">res.partner.kanban.inherit</field>
<field name="model">res.partner</field>
<field name="inherit_id" ref="base.res_partner_kanban_view"/>
<field name="arch" type="xml">
<xpath expr="//div[@class='oe_kanban_partner_categories']" position="inside">
<t t-foreach="record.category_id.raw_value" t-as="category">
<span class="oe_tag" t-att-data-category_id="category"/>
</t>
</xpath>
</field>
</record>
</data>
</openerp>

View File

@ -0,0 +1,23 @@
openerp.base_setup = function(openerp) {
/* extend kanban to include the names of partner categories in the kanban view of partners */
openerp.web_kanban.KanbanView.include({
on_groups_started: function() {
var self = this;
self._super.apply(this, arguments);
if (this.dataset.model === 'res.partner') {
/* Set names for partner categories */
var category_ids = [];
this.$element.find('.oe_kanban_partner_categories span').each(function() {
category_ids.push($(this).data('category_id'));
});
var dataset = new openerp.web.DataSetSearch(this, 'res.partner.category',
self.session.context, [['id', 'in', _.uniq(category_ids)]]);
dataset.read_slice(['id', 'name']).then(function(result) {
_.each(result, function(v, k) {
self.$element.find('.oe_kanban_partner_categories span[data-category_id=' + v.id + ']').html(v.name);
});
});
}
}
});
};