[IMP] base: add partner categories in partner kanban view
authorRaphael Collet <rco@openerp.com>
Fri, 20 Jul 2012 08:30:59 +0000 (10:30 +0200)
committerRaphael Collet <rco@openerp.com>
Fri, 20 Jul 2012 08:30:59 +0000 (10:30 +0200)
bzr revid: rco@openerp.com-20120720083059-q1bdcupzuge088jf

openerp/addons/base/__openerp__.py
openerp/addons/base/res/res_partner_view.xml
openerp/addons/base/static/src/js/base.js [new file with mode: 0644]

index 31e237a..fff01e4 100644 (file)
@@ -96,6 +96,7 @@
     'installable': True,
     'auto_install': True,
     'certificate': '0076807797149',
-    "css": [ 'static/src/css/modules.css' ],
+    'css': ['static/src/css/modules.css'],
+    'js': ['static/src/js/base.js'],
 }
 # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
index e64fcb3..a2185a8 100644 (file)
                     <field name="country_id"/>
                     <field name="mobile"/>
                     <field name="state_id"/>
+                    <field name="category_id"/>
                     <templates>
                         <t t-name="kanban-box">
                             <div class="oe_kanban_vignette">
                                     <img t-att-src="kanban_image('res.partner', 'photo', record.id.value)" class="oe_kanban_image"/>
                                 </a>
                                 <div class="oe_kanban_details">
-                                      <h4 class="oe_partner_heading"><a type="edit"><field name="name"/></a>
-                                      </h4>
-                                      <ul>
-                                          <li t-if="record.parent_id.raw_value and !record.function.raw_value"><field name="parent_id"/></li>
-                                          <li t-if="!record.parent_id.raw_value and record.function.raw_value"><field name="function"/></li>
-                                          <li t-if="record.parent_id.raw_value and record.function.raw_value"><field name="function"/> at <field name="parent_id"/></li>
-                                          <li t-if="record.city.raw_value and !record.country.raw_value"><field name="city"/></li>
-                                          <li t-if="!record.city.raw_value and record.country.raw_value"><field name="country"/></li>
-                                          <li t-if="record.city.raw_value and record.country.raw_value"><field name="city"/>, <field name="country"/></li>
-                                          <li t-if="record.mobile.raw_value"><field name="mobile"/></li>
-                                          <li t-if="record.phone.raw_value">Tel: <field name="phone"/></li>
-                                          <li t-if="record.mobile.raw_value">Mobile: <field name="mobile"/></li>
-                                          <li t-if="record.email.raw_value"><a t-attf-href="mailto:#{record.email.raw_value}"><field name="email"/></a></li>
-                                      </ul>
+                                    <h4 class="oe_partner_heading"><a type="edit"><field name="name"/></a></h4>
+                                    <div>
+                                        <t t-foreach="record.category_id.raw_value" t-as="category">
+                                            <span class="oe_kanban_partner_category oe_tag"
+                                                t-att-data-category_id="category"/>
+                                        </t>
+                                    </div>
+                                    <div class="oe_kanban_partner_links"/>
+                                    <ul>
+                                        <li t-if="record.parent_id.raw_value and !record.function.raw_value"><field name="parent_id"/></li>
+                                        <li t-if="!record.parent_id.raw_value and record.function.raw_value"><field name="function"/></li>
+                                        <li t-if="record.parent_id.raw_value and record.function.raw_value"><field name="function"/> at <field name="parent_id"/></li>
+                                        <li t-if="record.city.raw_value and !record.country.raw_value"><field name="city"/></li>
+                                        <li t-if="!record.city.raw_value and record.country.raw_value"><field name="country"/></li>
+                                        <li t-if="record.city.raw_value and record.country.raw_value"><field name="city"/>, <field name="country"/></li>
+                                        <li t-if="record.mobile.raw_value"><field name="mobile"/></li>
+                                        <li t-if="record.phone.raw_value">Tel: <field name="phone"/></li>
+                                        <li t-if="record.mobile.raw_value">Mobile: <field name="mobile"/></li>
+                                        <li t-if="record.email.raw_value"><a t-attf-href="mailto:#{record.email.raw_value}"><field name="email"/></a></li>
+                                    </ul>
                                 </div>
                             </div>
 
diff --git a/openerp/addons/base/static/src/js/base.js b/openerp/addons/base/static/src/js/base.js
new file mode 100644 (file)
index 0000000..d4c6fad
--- /dev/null
@@ -0,0 +1,23 @@
+openerp.base = 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_category').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_category[data-category_id=' + v.id + ']').html(v.name);
+                    });
+                });
+            }
+        }
+    });
+};