[imp] implemented quick_create_enabled an create_enabled
authorniv-openerp <nicolas.vanhoren@openerp.com>
Mon, 21 May 2012 09:59:41 +0000 (11:59 +0200)
committerniv-openerp <nicolas.vanhoren@openerp.com>
Mon, 21 May 2012 09:59:41 +0000 (11:59 +0200)
bzr revid: nicolas.vanhoren@openerp.com-20120521095941-qukymjtik97s5d1h

addons/web_kanban/static/src/js/kanban.js
addons/web_kanban/static/src/xml/web_kanban.xml

index 2a14393..1b06fd9 100644 (file)
@@ -12,7 +12,7 @@ instance.web_kanban.KanbanView = instance.web.View.extend({
     view_type: "kanban",
     init: function (parent, dataset, view_id, options) {
         this._super(parent, dataset, view_id, options);
-        _.defaults(this.options, {"quick_creatable": true});
+        _.defaults(this.options, {"quick_creatable": true, "creatable": true});
         this.fields_view = {};
         this.fields_keys = [];
         this.group_by = null;
@@ -35,6 +35,7 @@ instance.web_kanban.KanbanView = instance.web.View.extend({
         this.add_group_mutex = new $.Mutex();
     },
     on_loaded: function(data) {
+        this.fields_view = data;
         this.$buttons = $(QWeb.render("KanbanView.buttons", {'widget': this}));
         if (this.options.$buttons) {
             this.$buttons.appendTo(this.options.$buttons);
@@ -44,12 +45,25 @@ instance.web_kanban.KanbanView = instance.web.View.extend({
         this.$buttons
             .on('click','button.oe_kanban_button_new', this.do_add_record);
         this.$groups = this.$element.find('.oe_kanban_groups tr');
-        this.fields_view = data;
         this.fields_keys = _.keys(this.fields_view.fields);
         this.add_qweb_template();
         this.has_been_loaded.resolve();
         return $.when();
     },
+    _is_quick_create_enabled: function() {
+        if (! this.options.quick_creatable)
+            return false;
+        if (this.fields_view.arch.attrs.quick_create !== undefined)
+            return JSON.parse(this.fields_view.arch.attrs.quick_create);
+        return !! this.group_by;
+    },
+    _is_create_enabled: function() {
+        if (! this.options.creatable)
+            return false;
+        if (this.fields_view.arch.attrs.create !== undefined)
+            return JSON.parse(this.fields_view.arch.attrs.create);
+        return true;
+    },
     add_qweb_template: function() {
         for (var i=0, ii=this.fields_view.arch.children.length; i < ii; i++) {
             var child = this.fields_view.arch.children[i];
index 9ab0895..4a19332 100644 (file)
@@ -12,7 +12,9 @@
 </t>
 <div t-name="KanbanView.buttons" class="oe_kanban_buttons">
     <t t-if="widget.options.action_buttons !== false">
-        <button type="button" class="oe_button oe_kanban_button_new oe_form_button_hi">Create</button>
+        <t t-if="widget._is_create_enabled()">
+            <button type="button" class="oe_button oe_kanban_button_new oe_form_button_hi">Create</button>
+        </t>
     </t>
 </div>
 <t t-name="KanbanView.group_header">
@@ -20,7 +22,7 @@
         <t t-if="widget.view.group_by">
             <div class="oe_kanban_group_header">
                 <div class="oe_kanban_fold_icon"></div>
-                <t t-if="widget.view.options.quick_creatable">
+                <t t-if="widget.view._is_quick_create_enabled()">
                     <div class="oe_kanban_add"></div>
                 </t>
                 <div class="oe_fold_column">
@@ -37,7 +39,7 @@
                 <p t-if="widget.title" class="oe_kanban_group_title_vertical"><t t-esc="widget.title"/></p>
             </div>
         </t>
-        <t t-if="! widget.view.group_by &amp;&amp; widget.view.options.quick_creatable">
+        <t t-if="! widget.view.group_by &amp;&amp; widget.view._is_quick_create_enabled()">
             <span class="oe_kanban_no_group_qc_placeholder"/>
         </t>
     </td>