From 929be8938956583b4318cd64a63e72a5c47907cd Mon Sep 17 00:00:00 2001 From: Markus Schneider Date: Fri, 14 Nov 2014 16:37:43 +0100 Subject: [PATCH 01/12] first release of web_dashboard_tile --- web_dashboard_tile/__init__.py | 1 + web_dashboard_tile/__openerp__.py | 46 ++++++++ .../security/ir.model.access.csv | 2 + web_dashboard_tile/security/rules.xml | 13 ++ web_dashboard_tile/static/src/css/tile.css | 75 ++++++++++++ web_dashboard_tile/static/src/js/custom_js.js | 105 +++++++++++++++++ .../static/src/xml/custom_xml.xml | 12 ++ web_dashboard_tile/tile.py | 97 +++++++++++++++ web_dashboard_tile/tile.xml | 111 ++++++++++++++++++ 9 files changed, 462 insertions(+) create mode 100644 web_dashboard_tile/__init__.py create mode 100644 web_dashboard_tile/__openerp__.py create mode 100644 web_dashboard_tile/security/ir.model.access.csv create mode 100644 web_dashboard_tile/security/rules.xml create mode 100644 web_dashboard_tile/static/src/css/tile.css create mode 100644 web_dashboard_tile/static/src/js/custom_js.js create mode 100644 web_dashboard_tile/static/src/xml/custom_xml.xml create mode 100644 web_dashboard_tile/tile.py create mode 100644 web_dashboard_tile/tile.xml diff --git a/web_dashboard_tile/__init__.py b/web_dashboard_tile/__init__.py new file mode 100644 index 00000000..386e21ce --- /dev/null +++ b/web_dashboard_tile/__init__.py @@ -0,0 +1 @@ +from . import tile diff --git a/web_dashboard_tile/__openerp__.py b/web_dashboard_tile/__openerp__.py new file mode 100644 index 00000000..02ca929d --- /dev/null +++ b/web_dashboard_tile/__openerp__.py @@ -0,0 +1,46 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# Copyright (C) 2010-2013 OpenERP s.a. (). +# Copyright (C) 2014 initOS GmbH & Co. KG (). +# Author Markus Schneider +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +############################################################################## +{ + "name": "Dashboard Tile", + "version": "0.3", + "depends": ['web', 'board'], + 'author': 'initOS GmbH & Co. KG', + "category": "", + 'license': 'AGPL-3', + "description": """ + + """, + "summary": "Add tile to dashboard", + 'data': ['tile.xml', + 'security/ir.model.access.csv', + 'security/rules.xml'], + 'css': ['static/src/css/tile.css'], + 'demo': [ + ], + 'test': [ + ], + 'installable': True, + 'auto_install': False, + 'js': ['static/src/js/custom_js.js'], + 'qweb': ['static/src/xml/custom_xml.xml'], +} diff --git a/web_dashboard_tile/security/ir.model.access.csv b/web_dashboard_tile/security/ir.model.access.csv new file mode 100644 index 00000000..aedacd2e --- /dev/null +++ b/web_dashboard_tile/security/ir.model.access.csv @@ -0,0 +1,2 @@ +id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink +tile_user,tile_user,model_tile,base.group_user,1,1,1,1 \ No newline at end of file diff --git a/web_dashboard_tile/security/rules.xml b/web_dashboard_tile/security/rules.xml new file mode 100644 index 00000000..ff28cbc1 --- /dev/null +++ b/web_dashboard_tile/security/rules.xml @@ -0,0 +1,13 @@ + + + + + + tile.owner + + + [('user_id','in',[False,user.id])] + + + + diff --git a/web_dashboard_tile/static/src/css/tile.css b/web_dashboard_tile/static/src/css/tile.css new file mode 100644 index 00000000..06c23705 --- /dev/null +++ b/web_dashboard_tile/static/src/css/tile.css @@ -0,0 +1,75 @@ +.openerp .oe_kanban_view .oe_dashbaord_tile{ + width: 150px; + height: 150px; + border: 0; + border-radius: 0; +} +.openerp .oe_kanban_view .oe_dashbaord_tile .tile_count{ + font-size: 48px; + font-weight: bold; + position: absolute; + left: 9px; + bottom: 9px; +} +.openerp .oe_kanban_view .oe_dashbaord_tile .tile_label{ + padding: 9px; + font-size: 15px; +} +.openerp .oe_kanban_view .oe_dashbaord_tile a{ + color: #fff; +} +.openerp .oe_kanban_view .oe_dashbaord_tile.oe_tile_color_, +.openerp .oe_kanban_view .oe_dashbaord_tile.oe_tile_color_ a, +.openerp .oe_kanban_view .oe_dashbaord_tile .oe_dropdown_menu a{ + color: #000; +} +.openerp .oe_kanban_view .oe_tile_color_1, +.openerp .oe_dashbaord_tile a.oe_kanban_color_1{ + background: #CD2513; + color: #fff; +} +.openerp .oe_kanban_view .oe_tile_color_2, +.openerp .oe_dashbaord_tile a.oe_kanban_color_2{ + background: #CDC713; + color: #fff; +} +.openerp .oe_kanban_view .oe_tile_color_3, +.openerp .oe_dashbaord_tile a.oe_kanban_color_3{ + background: #57158A; + color: #fff; +} +.openerp .oe_kanban_view .oe_tile_color_4, +.openerp .oe_dashbaord_tile a.oe_kanban_color_4{ + background: #0E9B2D; + color: #fff; +} +.openerp .oe_kanban_view .oe_tile_color_5, +.openerp .oe_dashbaord_tile a.oe_kanban_color_5{ + background: #7F0C00; + color: #fff; +} +.openerp .oe_kanban_view .oe_tile_color_6, +.openerp .oe_dashbaord_tile a.oe_kanban_color_6{ + background: #7F7B00; + color: #fff; +} +.openerp .oe_kanban_view .oe_tile_color_7, +.openerp .oe_dashbaord_tile a.oe_kanban_color_7{ + background: #320455; + color: #fff; +} +.openerp .oe_kanban_view .oe_tile_color_8, +.openerp .oe_dashbaord_tile a.oe_kanban_color_8{ + background: #CD6E13; + color: #fff; +} +.openerp .oe_kanban_view .oe_tile_color_9, +.openerp .oe_dashbaord_tile a.oe_kanban_color_9{ + background: #0E6C7E; + color: #fff; +} +.openerp .oe_kanban_view .oe_tile_color_0, +.openerp .oe_dashbaord_tile a.oe_kanban_color_0{ + background: #006015; + color: #fff; +} \ No newline at end of file diff --git a/web_dashboard_tile/static/src/js/custom_js.js b/web_dashboard_tile/static/src/js/custom_js.js new file mode 100644 index 00000000..f5a80538 --- /dev/null +++ b/web_dashboard_tile/static/src/js/custom_js.js @@ -0,0 +1,105 @@ +// @@@ web_dashboard_tile custom JS @@@ +//############################################################################# +// +// Copyright (C) 2010-2013 OpenERP s.a. () +// Copyright (C) 2014 initOS GmbH & Co. KG () +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published +// by the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . +// +//############################################################################# + +openerp.web_dashboard_tile = function (instance) +{ +var QWeb = instance.web.qweb, + _t = instance.web._t, + _lt = instance.web._lt; +_.mixin({ + sum: function (obj) { return _.reduce(obj, function (a, b) { return a + b; }, 0); } +}); + var module = instance.board.AddToDashboard; + + module.include({ + start: function () { + this._super(); + var self = this; + this.$('#add_dashboard_tile').on('click', this, function (){ + self.save_tile(); + }) + }, + render_data: function(dashboard_choices){ + var selection = instance.web.qweb.render( + "SearchView.addtodashboard.selection", { + selections: dashboard_choices}); + this.$("form input").before(selection) + }, + save_tile: function () { + var self = this; + var getParent = this.getParent(); + var view_parent = this.getParent().getParent(); + if (! view_parent.action || ! this.$el.find("select").val()) { + this.do_warn("Can't find dashboard action"); + return; + } + + var $name = this.$('#dashboard_tile_new_name'); + + this.tile = new instance.web.Model('tile'); + + var private_filter = !this.$('#oe_searchview_custom_public').prop('checked'); + if (_.isEmpty($name.val())){ + this.do_warn(_t("Error"), _t("Filter name is required.")); + return false; + } + var search = this.view.build_search_data(); + var context = new instance.web.CompoundContext(getParent.dataset.get_context() || []); + var domain = new instance.web.CompoundDomain(getParent.dataset.get_domain() || []); + _.each(search.contexts, context.add, context); + _.each(search.domains, domain.add, domain); + + var c = instance.web.pyeval.eval('context', context); + for(var k in c) { + if (c.hasOwnProperty(k) && /^search_default_/.test(k)) { + delete c[k]; + } + } + // TODO: replace this 6.1 workaround by attribute on + c.dashboard_merge_domains_contexts = false; + var d = instance.web.pyeval.eval('domain', domain); + + context.add({ + group_by: instance.web.pyeval.eval('groupbys', search.groupbys || []) + }); + // Don't save user_context keys in the custom filter, otherwise end + // up with e.g. wrong uid or lang stored *and used in subsequent + // reqs* + var ctx = context; + _(_.keys(instance.session.user_context)).each(function (key) { + delete ctx[key]; + }); + var filter = { + name: $name.val(), + user_id: private_filter ? instance.session.uid : false, + model_id: self.view.model, + //context: context, + domain: d, + action_id: view_parent.action.id, + }; + // FIXME: current context? + return self.tile.call('add', [filter]).done(function (id) { + self.do_warn(_t("Success"), _t("Tile is created")); + }); + + } + }); +} diff --git a/web_dashboard_tile/static/src/xml/custom_xml.xml b/web_dashboard_tile/static/src/xml/custom_xml.xml new file mode 100644 index 00000000..124f2446 --- /dev/null +++ b/web_dashboard_tile/static/src/xml/custom_xml.xml @@ -0,0 +1,12 @@ + + + + +
+ + + +
+
+
+
diff --git a/web_dashboard_tile/tile.py b/web_dashboard_tile/tile.py new file mode 100644 index 00000000..323db992 --- /dev/null +++ b/web_dashboard_tile/tile.py @@ -0,0 +1,97 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# Copyright (C) 2010-2013 OpenERP s.a. (). +# Copyright (C) 2014 initOS GmbH & Co. KG (). +# Author Markus Schneider +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +############################################################################## + +from openerp.osv import orm, fields +import random + + +class tile(orm.Model): + _name = 'tile' + + def _get_tile_count(self, cr, uid, ids, field_name, field_value, + arg, context=None): + result = {} + records = self.browse(cr, uid, ids) + for r in records: + model = self.pool.get(r.model_id.model) + result[r.id] = model.search_count(cr, uid, eval(r.domain), context) + return result + + _columns = { + 'name': fields.char('Tile Name'), + 'model_id': fields.many2one('ir.model', 'Model'), + 'user_id': fields.many2one('res.users', 'User'), + 'domain': fields.text('Domain'), + 'action_id': fields.many2one('ir.actions.act_window', 'Action'), + 'count': fields.function(_get_tile_count, type='int', String='Count', + readonly=True), + 'color': fields.char('Kanban Color') + } + + _defaults = { + 'domain': '[]', + 'color': 0, + } + + def open_link(self, cr, uid, ids, context=None): + + tile_id = ids[0] + tile_object = self.browse(cr, uid, tile_id, context=context) + + if not context: + context = {} + + if tile_object.action_id: + act_obj = self.pool.get('ir.actions.act_window') + result = act_obj.read(cr, uid, [tile_object.action_id.id], + context=context)[0] + #FIXME: restore original Domain + Filter would be better + result['domain'] = tile_object.domain + return result + + # we have no action_id stored, + # so try to load a default tree view + return { + 'name': tile_object.name, + 'view_type': 'form', + 'view_mode': 'tree', + 'view_id': [False], + 'res_model': tile_object.model_id.model, + 'type': 'ir.actions.act_window', + 'context': context, + 'nodestroy': True, + 'target': 'current', + 'domain': tile_object.domain, + } + + def add(self, cr, uid, vals, context=None): + #TODO: check if string + if 'model_id' in vals: + # need to relace model_name with its id + model_ids = self.pool.get('ir.model').search(cr, uid, + [('model', '=', + vals['model_id'])]) + vals['model_id'] = model_ids[0] + if 'color' not in vals: + vals['color'] = random.randint(1, 10) + return self.create(cr, uid, vals, context) diff --git a/web_dashboard_tile/tile.xml b/web_dashboard_tile/tile.xml new file mode 100644 index 00000000..07274a26 --- /dev/null +++ b/web_dashboard_tile/tile.xml @@ -0,0 +1,111 @@ + + + + + tile.tree + tile + tree + + + + + + + + + + + + + tile.form + tile + form + +
+ + + + + + + + +
+
+
+ + + + tile.kanban + tile + kanban + + + + + + + + + + +
+
+ í +
+ +
+
+
+
+
+
+
+ + + Dashboard + tile + form + tree,kanban,form + + + + + + + Dashboard + tile + form + kanban + ['|',('user_id','=',False),('user_id','=',uid)] + + + + + Dashboard + + + + + +
+
From 4726c966fe4136baccb0c1f076d6075adfabe84f Mon Sep 17 00:00:00 2001 From: Markus Schneider Date: Thu, 20 Nov 2014 10:09:46 +0100 Subject: [PATCH 02/12] fix install by commandline --- web_dashboard_tile/__openerp__.py | 2 +- web_dashboard_tile/tile.xml | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/web_dashboard_tile/__openerp__.py b/web_dashboard_tile/__openerp__.py index 02ca929d..7cf2cac5 100644 --- a/web_dashboard_tile/__openerp__.py +++ b/web_dashboard_tile/__openerp__.py @@ -23,7 +23,7 @@ { "name": "Dashboard Tile", "version": "0.3", - "depends": ['web', 'board'], + "depends": ['web', 'board', 'mail'], 'author': 'initOS GmbH & Co. KG', "category": "", 'license': 'AGPL-3', diff --git a/web_dashboard_tile/tile.xml b/web_dashboard_tile/tile.xml index 07274a26..a686b820 100644 --- a/web_dashboard_tile/tile.xml +++ b/web_dashboard_tile/tile.xml @@ -79,7 +79,7 @@ - + Dashboard tile form @@ -89,9 +89,9 @@ + action="action_tree_dashboard_tile" sequence="50"/> - + Dashboard tile form @@ -103,7 +103,7 @@ Dashboard - + From 581bfbed26b8b1abb1b78e6315da6e66e7785f88 Mon Sep 17 00:00:00 2001 From: Markus Schneider Date: Thu, 20 Nov 2014 10:25:51 +0100 Subject: [PATCH 03/12] FIX comments PEP8 --- web_dashboard_tile/tile.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/web_dashboard_tile/tile.py b/web_dashboard_tile/tile.py index 323db992..b64f8bcd 100644 --- a/web_dashboard_tile/tile.py +++ b/web_dashboard_tile/tile.py @@ -65,7 +65,7 @@ class tile(orm.Model): act_obj = self.pool.get('ir.actions.act_window') result = act_obj.read(cr, uid, [tile_object.action_id.id], context=context)[0] - #FIXME: restore original Domain + Filter would be better + # FIXME: restore original Domain + Filter would be better result['domain'] = tile_object.domain return result @@ -85,9 +85,9 @@ class tile(orm.Model): } def add(self, cr, uid, vals, context=None): - #TODO: check if string + # TODO: check if string if 'model_id' in vals: - # need to relace model_name with its id + # need to replace model_name with its id model_ids = self.pool.get('ir.model').search(cr, uid, [('model', '=', vals['model_id'])]) From 50f50beebfc9a3591a65fc5c4fd283f26aa2a4f4 Mon Sep 17 00:00:00 2001 From: Markus Schneider Date: Fri, 9 Jan 2015 15:38:14 +0100 Subject: [PATCH 04/12] rename rule id --- web_dashboard_tile/security/rules.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web_dashboard_tile/security/rules.xml b/web_dashboard_tile/security/rules.xml index ff28cbc1..3eff9673 100644 --- a/web_dashboard_tile/security/rules.xml +++ b/web_dashboard_tile/security/rules.xml @@ -2,7 +2,7 @@ - + tile.owner From 6a9683d99d5a4e22e68b4f1edab0e58665955724 Mon Sep 17 00:00:00 2001 From: Markus Schneider Date: Fri, 9 Jan 2015 15:39:39 +0100 Subject: [PATCH 05/12] add description --- web_dashboard_tile/__openerp__.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/web_dashboard_tile/__openerp__.py b/web_dashboard_tile/__openerp__.py index 7cf2cac5..07d1f6a0 100644 --- a/web_dashboard_tile/__openerp__.py +++ b/web_dashboard_tile/__openerp__.py @@ -28,7 +28,8 @@ "category": "", 'license': 'AGPL-3', "description": """ - + module to give you a dashboard where you can configure tile from any view + and add them as short cut. """, "summary": "Add tile to dashboard", 'data': ['tile.xml', From 688dab1a81ea4f25aaceb00ca9cd8965ac131b1d Mon Sep 17 00:00:00 2001 From: Markus Schneider Date: Thu, 29 Jan 2015 16:37:09 +0100 Subject: [PATCH 06/12] rename button --- web_dashboard_tile/static/src/xml/custom_xml.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web_dashboard_tile/static/src/xml/custom_xml.xml b/web_dashboard_tile/static/src/xml/custom_xml.xml index 124f2446..3e0c2316 100644 --- a/web_dashboard_tile/static/src/xml/custom_xml.xml +++ b/web_dashboard_tile/static/src/xml/custom_xml.xml @@ -5,7 +5,7 @@
- +
From 26c496e365476bd8770d248218d19ad30565cfe5 Mon Sep 17 00:00:00 2001 From: Markus Schneider Date: Fri, 30 Jan 2015 10:52:57 +0100 Subject: [PATCH 07/12] fix type & add FIXME --- web_dashboard_tile/tile.xml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/web_dashboard_tile/tile.xml b/web_dashboard_tile/tile.xml index a686b820..fb619f6c 100644 --- a/web_dashboard_tile/tile.xml +++ b/web_dashboard_tile/tile.xml @@ -50,6 +50,8 @@
+
í
    @@ -100,7 +102,7 @@ - + Dashboard From d7878e51403e07a528c7b733020c7f79702ff0c3 Mon Sep 17 00:00:00 2001 From: Markus Schneider Date: Fri, 30 Jan 2015 12:55:23 +0100 Subject: [PATCH 08/12] remove not needed check --- web_dashboard_tile/tile.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/web_dashboard_tile/tile.py b/web_dashboard_tile/tile.py index b64f8bcd..9fa5aa79 100644 --- a/web_dashboard_tile/tile.py +++ b/web_dashboard_tile/tile.py @@ -58,9 +58,6 @@ class tile(orm.Model): tile_id = ids[0] tile_object = self.browse(cr, uid, tile_id, context=context) - if not context: - context = {} - if tile_object.action_id: act_obj = self.pool.get('ir.actions.act_window') result = act_obj.read(cr, uid, [tile_object.action_id.id], From 1f3eb98ac917b13c6113baeec1e4481314b5ffa9 Mon Sep 17 00:00:00 2001 From: Markus Schneider Date: Sun, 15 Feb 2015 20:49:52 +0100 Subject: [PATCH 09/12] rename tile to tile.tile --- .../security/ir.model.access.csv | 2 +- web_dashboard_tile/security/rules.xml | 2 +- web_dashboard_tile/static/src/js/custom_js.js | 2 +- web_dashboard_tile/tile.py | 2 +- web_dashboard_tile/tile.xml | 27 +++++++++---------- 5 files changed, 17 insertions(+), 18 deletions(-) diff --git a/web_dashboard_tile/security/ir.model.access.csv b/web_dashboard_tile/security/ir.model.access.csv index aedacd2e..3229b4ea 100644 --- a/web_dashboard_tile/security/ir.model.access.csv +++ b/web_dashboard_tile/security/ir.model.access.csv @@ -1,2 +1,2 @@ id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink -tile_user,tile_user,model_tile,base.group_user,1,1,1,1 \ No newline at end of file +tile_user,tile_user,model_tile_tile,base.group_user,1,1,1,1 diff --git a/web_dashboard_tile/security/rules.xml b/web_dashboard_tile/security/rules.xml index 3eff9673..8d653b70 100644 --- a/web_dashboard_tile/security/rules.xml +++ b/web_dashboard_tile/security/rules.xml @@ -4,7 +4,7 @@ tile.owner - + [('user_id','in',[False,user.id])] diff --git a/web_dashboard_tile/static/src/js/custom_js.js b/web_dashboard_tile/static/src/js/custom_js.js index f5a80538..53a2bd0e 100644 --- a/web_dashboard_tile/static/src/js/custom_js.js +++ b/web_dashboard_tile/static/src/js/custom_js.js @@ -54,7 +54,7 @@ _.mixin({ var $name = this.$('#dashboard_tile_new_name'); - this.tile = new instance.web.Model('tile'); + this.tile = new instance.web.Model('tile.tile'); var private_filter = !this.$('#oe_searchview_custom_public').prop('checked'); if (_.isEmpty($name.val())){ diff --git a/web_dashboard_tile/tile.py b/web_dashboard_tile/tile.py index 9fa5aa79..b88523c6 100644 --- a/web_dashboard_tile/tile.py +++ b/web_dashboard_tile/tile.py @@ -26,7 +26,7 @@ import random class tile(orm.Model): - _name = 'tile' + _name = 'tile.tile' def _get_tile_count(self, cr, uid, ids, field_name, field_value, arg, context=None): diff --git a/web_dashboard_tile/tile.xml b/web_dashboard_tile/tile.xml index fb619f6c..36b0b68a 100644 --- a/web_dashboard_tile/tile.xml +++ b/web_dashboard_tile/tile.xml @@ -1,9 +1,9 @@ - - tile.tree - tile + + tile.tile.tree + tile.tile tree @@ -16,9 +16,9 @@ - - tile.form - tile + + tile.tile.form + tile.tile form
    @@ -28,16 +28,15 @@ -
    - - tile.kanban - tile + + tile.tile.kanban + tile.tile kanban @@ -83,10 +82,10 @@ Dashboard - tile + tile.tile form tree,kanban,form - + Dashboard - tile + tile.tile form kanban ['|',('user_id','=',False),('user_id','=',uid)] - + From a47e744e36a2e69a0d9983ba1c76acba617eda4a Mon Sep 17 00:00:00 2001 From: Markus Schneider Date: Sun, 15 Feb 2015 21:01:26 +0100 Subject: [PATCH 10/12] add detail description --- web_dashboard_tile/__openerp__.py | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/web_dashboard_tile/__openerp__.py b/web_dashboard_tile/__openerp__.py index 07d1f6a0..79785b06 100644 --- a/web_dashboard_tile/__openerp__.py +++ b/web_dashboard_tile/__openerp__.py @@ -22,7 +22,7 @@ ############################################################################## { "name": "Dashboard Tile", - "version": "0.3", + "version": "0.4", "depends": ['web', 'board', 'mail'], 'author': 'initOS GmbH & Co. KG', "category": "", @@ -30,12 +30,27 @@ "description": """ module to give you a dashboard where you can configure tile from any view and add them as short cut. + + Kown issues/limits: + * change color picks wrong color + * can not edit tile from dashboard + * context are ignored + * date filter can not be relative + * combine domain of menue and filter so can not restore origin filter + + possible future improvments: + * support context_today + * add icons + * support client side action (like inbox) + * support select int/float column with min/max/avg/sum to display + * change position (maybe drag&drop) """, "summary": "Add tile to dashboard", 'data': ['tile.xml', 'security/ir.model.access.csv', 'security/rules.xml'], 'css': ['static/src/css/tile.css'], + 'demo': [ ], 'test': [ From 6f0becf656f572f6cab10f03a820d002e061701d Mon Sep 17 00:00:00 2001 From: Markus Schneider Date: Sun, 15 Feb 2015 21:06:29 +0100 Subject: [PATCH 11/12] add module icon --- web_dashboard_tile/static/src/img/icon.png | Bin 0 -> 1044 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 web_dashboard_tile/static/src/img/icon.png diff --git a/web_dashboard_tile/static/src/img/icon.png b/web_dashboard_tile/static/src/img/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..fb6b1b2987d393c31aab5be90542687029ca8223 GIT binary patch literal 1044 zcmeAS@N?(olHy`uVBq!ia0vp^eIU%i1|*;VHQ)eJY)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^kiEpy*OmP~6Tb+HMO2(&6i`UA#5JPCIX^cyHLrxhxhOTUBsE2$ zJhLQ2!QIn0AiR-JoPmM4#?!?yq~g}wyS^DRr4k1omZxu?oi}Oe#)IugmyDL zRFG+DE^x5mU6zM_0ek>)%)Oa@Fnc)3_$8nBP01 zFo(C~ckK2f7ay-b!rcGP=<$Yao6l@^W>0!?_xYmygzkqkR_}iNZf@b19|3PFpTwOm zytXXhO{cQ_o*h{xQ#XFhFuir?;irS!B$obrs_(nmxcK8!_2rK~_wVa1tG>9j>vUP1 zzul*wOOMA*OEa{p(cAa)&G8lg!n#j9YTNCuJSRJ6lbLLM{V(S^vj0r89t#`V8cIiR z=auM-j9Y!PZ@&NB-uL??`naF}@9N|hPtGe-y!G~|=z9t7<=sm&#h$y>_g_|bd-O-Y z-es+oWW9fEm)qV<%X6n@^@h!{_*SdpsrPT@Kl5k$SCxG)znk&?&(G_EetSiO>(9AN zOPgKvRAo+I?5ay1vopj0y?gf<9M%GSkg!Gy^+Sn|D<)*yy2nmB;+=1|_tojT-)!4l z7Vh|zSNG$-%eemmlBv zcX#-oU;gUu$v>WCToGTlp8Y}Ws%w&dlit74d!sA5_(HV7~}yde<+`pLkw9 zd{0z}MMP*~=us(C>9-Y+AGB|LeC=T09@*%{_j;mAm2RzdeVC(Gy!msWHg z2CB#UBqy#D{Q9%4z-)5ZW?AFOo6}?j_zpRO5>P_{m<9FaAx2<|TDLc5o8*6P@pB;g z3tx@T&8*&5{ Date: Mon, 16 Feb 2015 13:03:25 +0100 Subject: [PATCH 12/12] remove type in ir.ui.view --- web_dashboard_tile/tile.xml | 3 --- 1 file changed, 3 deletions(-) diff --git a/web_dashboard_tile/tile.xml b/web_dashboard_tile/tile.xml index 36b0b68a..3d9a4ec4 100644 --- a/web_dashboard_tile/tile.xml +++ b/web_dashboard_tile/tile.xml @@ -4,7 +4,6 @@ tile.tile.tree tile.tile - tree @@ -19,7 +18,6 @@ tile.tile.form tile.tile - form
    @@ -37,7 +35,6 @@ tile.tile.kanban tile.tile - kanban