From a158707ad8753d3882a571f2aed1c3b8d5a1c4dc Mon Sep 17 00:00:00 2001 From: Antony Lesuisse Date: Fri, 7 Sep 2012 00:41:23 +0200 Subject: [PATCH] [MERGE] process view (manual merge, moved the code from web_process) bzr revid: al@openerp.com-20120906224123-walwe4rc3x4wycsc --- addons/process/__openerp__.py | 10 + addons/process/process.py | 4 +- addons/process/static/src/css/process.css | 70 +++++ addons/process/static/src/img/button-a-a.png | Bin 0 -> 6595 bytes addons/process/static/src/img/cta-a.gif | Bin 0 -> 108 bytes .../process/static/src/img/iconset-a-help.gif | Bin 0 -> 379 bytes .../process/static/src/img/node-current.png | Bin 0 -> 3143 bytes addons/process/static/src/img/node-gray.png | Bin 0 -> 3128 bytes .../static/src/img/node-subflow-gray.png | Bin 0 -> 6837 bytes .../process/static/src/img/node-subflow.png | Bin 0 -> 6851 bytes addons/process/static/src/img/node.png | Bin 0 -> 3205 bytes addons/process/static/src/js/process.js | 249 ++++++++++++++++++ addons/process/static/src/xml/process.xml | 93 +++++++ 13 files changed, 424 insertions(+), 2 deletions(-) create mode 100644 addons/process/static/src/css/process.css create mode 100644 addons/process/static/src/img/button-a-a.png create mode 100644 addons/process/static/src/img/cta-a.gif create mode 100644 addons/process/static/src/img/iconset-a-help.gif create mode 100644 addons/process/static/src/img/node-current.png create mode 100644 addons/process/static/src/img/node-gray.png create mode 100644 addons/process/static/src/img/node-subflow-gray.png create mode 100644 addons/process/static/src/img/node-subflow.png create mode 100644 addons/process/static/src/img/node.png create mode 100644 addons/process/static/src/js/process.js create mode 100644 addons/process/static/src/xml/process.xml diff --git a/addons/process/__openerp__.py b/addons/process/__openerp__.py index ef554fe7226..f0ece3704dc 100644 --- a/addons/process/__openerp__.py +++ b/addons/process/__openerp__.py @@ -45,5 +45,15 @@ This module shows the basic processes involved in the selected modules and in th 'auto_install': False, 'certificate': '0055447636669', 'images': ['images/process_nodes.jpeg','images/process_transitions.jpeg', 'images/processes.jpeg'], + 'js': [ + 'static/src/js/process.js' + ], + 'css': [ + 'static/src/css/process.css' + ], + 'qweb': [ + 'static/src/xml/*.xml' + ], + 'auto_install': True } # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/process/process.py b/addons/process/process.py index f9744608c50..fa7596287a3 100644 --- a/addons/process/process.py +++ b/addons/process/process.py @@ -195,8 +195,8 @@ class process_process(osv.osv): if nodes[nid].get('directory_id', False): resource['directory'] = self.pool.get('document.directory').get_resource_path(cr, uid, nodes[nid]['directory_id'], ref_model, ref_id) - resource['name'] = refobj.name_get(context)[0][1] - resource['perm'] = pool.get(ref_model).perm_read(cr, uid, [ref_id], context)[0] + resource['name'] = pool.get(ref_model).name_get(cr, uid, [ref_id], context=context)[0][1] + resource['perm'] = pool.get(ref_model).perm_read(cr, uid, [ref_id], context=context)[0] for r in relatives: node = nodes[r] diff --git a/addons/process/static/src/css/process.css b/addons/process/static/src/css/process.css new file mode 100644 index 00000000000..7442db9bc4a --- /dev/null +++ b/addons/process/static/src/css/process.css @@ -0,0 +1,70 @@ + +a.cta-a { + float: left; + padding: 5px 10px; + border: 1px solid #ccc; + border-radius: 5px; + -moz-border-radius: 5px; + -webkit-border-radius: 5px; + background: #eeeded url(/process/static/src/img/cta-a.gif) repeat-x; + box-shadow: 0 1px 0 #fff; + -moz-box-shadow: 0 1px 0 #fff; + -webkit-box-shadow: 0 1px 0 #fff; + color: #8c8c8c; + font-size: 0.9em; + text-transform: uppercase; + font-weight: bold; + text-shadow: #fff 0 1px 0; + margin: 2px; +} + +a.cta-a span { + float: left; + padding: 7px 0 5px 5px; + background-position: 0 50%; + background-repeat: no-repeat; + cursor: pointer; +} + +a.cta-a strong { + display: block; + color: #393939; +} +.process-links { + padding: 5px 10px; + text-align: center; + display: table; + margin: auto; +} +.process-links a.cta-a { + display: table-cell; +} +.process_canvas{ + border: 1px solid #aaa; + background-color:#FFF; +} +.process_canvas svg{ + height:500px;!important; + padding:15px; +} +.oe_process { + height: 20px; + margin-top:3px; + padding: 0; + width: 24px; + cursor: pointer; + display: block; + background: url(/web/static/src/img/iconset-a-help.png) no-repeat center center; + float: left; +} + +.process-help-text { + float: left; + padding:5px 10px; + min-height:56px; + font-size: 120%; +} + +td.process_fields,button.toggle_fields span:last-child { + display: none; +} diff --git a/addons/process/static/src/img/button-a-a.png b/addons/process/static/src/img/button-a-a.png new file mode 100644 index 0000000000000000000000000000000000000000..bd046bbbef7da60895536a7a18323abbbe21e7fb GIT binary patch literal 6595 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 AIsgCw literal 0 HcmV?d00001 diff --git a/addons/process/static/src/img/cta-a.gif b/addons/process/static/src/img/cta-a.gif new file mode 100644 index 0000000000000000000000000000000000000000..daa561e29f58d52f0806ada27a6ad25c1e30f24a GIT binary patch literal 108 zcmZ?wbhEHbWMt4`*v!E2_3PJ0dKfZtW z?lTa4`t;??mk;mXzkB;u@h1xd28j~(|&5Rgd;v{>OR;HAys JFXPT&4FG9+IZXfn literal 0 HcmV?d00001 diff --git a/addons/process/static/src/img/iconset-a-help.gif b/addons/process/static/src/img/iconset-a-help.gif new file mode 100644 index 0000000000000000000000000000000000000000..5400acec57bd30ea50c05765808d2d20684a6f90 GIT binary patch literal 379 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 literal 0 HcmV?d00001 diff --git a/addons/process/static/src/img/node-gray.png b/addons/process/static/src/img/node-gray.png new file mode 100644 index 0000000000000000000000000000000000000000..972013540cf00d5e379f9c9136b11499ab2e93f7 GIT binary patch literal 3128 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 literal 0 HcmV?d00001 diff --git a/addons/process/static/src/img/node-subflow-gray.png b/addons/process/static/src/img/node-subflow-gray.png new file mode 100644 index 0000000000000000000000000000000000000000..ffafe1bd681f01d622bcb371dea2488a7d724868 GIT binary patch literal 6837 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 vf#lFJ4h(k_sVGbwBS{SWRRD=n3q?3 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 1) { + self.process_selection = process; + } else { + self.process_id = process[0][0], + self.process_title = process[0][1]; + } + } + return $.Deferred().resolve(); + }).pipe(function() { + var def = $.Deferred(); + if(self.process_id) { + $.when(self.process_graph_get()).done(function(res) { + self.process_notes = res.notes; + self.process_title = res.name; + self.process_subflows = _(res.nodes).chain() + .filter(function (node) { return node['subflow'] !== false; }) + .uniq(false, function (node) { return node['subflow'][0]; }).value(); + self.process_related = res.related; + def.resolve(res); + }); + } else def.resolve(); + return def.promise(); + }).done(function(res) { + $.when(self.process_render_view()).done(function() { + if(res) { + self.process_draw_graph(res); + } + }); + }); + }, + process_graph_get: function() { + var self = this; + var def = $.Deferred(); + this.process_id = parseInt(this.process_id, 10); + this.process_dataset + .call("graph_get",[self.process_id, self.model || self.dataset.model, self.record_id, [80,80,150,100], self.session.user_context]) + .done(function(res) { + self.process_dataset + .call("search_by_model",[self.model || self.dataset.model, self.session.user_context]) + .done( + function(r) { + res['related'] = r; + def.resolve(res); + }); + }); + return def.promise(); + }, + process_get_object : function() { + var self = this, + def = $.Deferred(); + if(this.process_id) + return def.resolve().promise(); + this.process_dataset = new instance.web.DataSet(self, "process.process", self.session.user_context); + this.process_dataset + .call("search_by_model", [self.process_model,self.session.user_context]) + .done(function(res) { + if (!res.length) { + self.process_model = false; + self.process_get_object().done(def.resolve); + } + else { + def.resolve(res); + } + }) + .fail(def.reject); + return def.promise(); + }, + process_render_view : function() { + var self = this; + this.$el.html(QWeb.render("process.ProcessView", this)); + this.$el.addClass('oe_view_process').css({'background-color':'#F0EEEE'}); + this.$el.find('#edit_process').click(function() { + self.process_edit_view(); + }); + var $parent = this.getParent().$el; + $parent.find('#change_process').click(function() { + self.process_selection = false, + self.process_id = $parent.find('#select_process').val(), + self.process_title = $.trim($parent.find('#select_process option:selected').text()); + self.initialize_process_view(); + }); + this.$el.find(".process_subflow").click(function() { + self.process_id = this.id; + self.initialize_process_view(); + }); + }, + process_draw_graph : function(result) { + var self = this; + var res_nodes = result['nodes']; + var res_edges = result['transitions']; + var id_to_node = {}; + var canvas = $('div.process_canvas').empty().get(0); + var style = { + edge_color: "#A0A0A0", + edge_label_font_size: 10, + edge_width: 2, + edge_spacing: 40, + edge_loop_radius: 200, + + node_label_color: "#333", + node_label_font_size: 12, + node_outline_color: "#333", + node_outline_width: 1, + node_outline_color: "#F5F5F5", + node_outline_width: 0, + node_selected_width: 0, + node_size_x: 150, + node_size_y: 100, + + gray: "#DCDCDC", + white: "#FFF", + viewport_margin: 50 + }; + var r = new Raphael(canvas,'100%','100%'); + var graph = new CuteGraph(r,style,canvas.parentNode); + var render_process = function(r,nodes){ + //For Image + var image_node = nodes.kind == "subflow" ? "node-subflow" : "node"; + image_node = nodes.gray ? image_node + "-gray" : image_node; + image_node = nodes.active ? 'node-current': image_node; + var img_src = '/web_process/static/src/img/'+ image_node + '.png'; + var image = r['image'](img_src, nodes.x-25, nodes.y,150, 100).attr({"cursor": "default"}) .mousedown(function() { return false; }); + //For Node + var process_node = r['rect'](nodes.x, nodes.y, 150, 150).attr({stroke: "none"}); + // Node text + if(nodes.name.length > 18){ + var text = nodes.name.substr(0,16) + '...' + } + var node_text = r.text(nodes.x+60, nodes.y+10,(text || nodes.name.substr(0,18))).attr({"fill": "#fff","font-weight": "bold", "cursor": "default","title":nodes.name}); + //Node Description + var new_notes = nodes.notes; + if(nodes.notes.length > 25) { + var to; + var temp_str = new_notes = ''; + var from = to = 0; + while (1) { + from = 25; + temp_str = nodes.notes.substr(to, 25); + if (temp_str.lastIndexOf(" ") < 25 && temp_str.length >= 25) { + from = temp_str.lastIndexOf(" "); + } + new_notes += "\n" + nodes.notes.substr(to, from); + if (new_notes.length > 80){ + break; + } + to += from; + } + } + if(nodes.res) + new_notes = nodes.res.name + '\n' + new_notes; + if(nodes.notes.length > 60){ + var notes = new_notes.substring(0,60) +'..'; + } + r.text(nodes.x+60, nodes.y+30, (notes || new_notes)).attr({"title":nodes.notes,"cursor": "default"}); + if(nodes.menu) { + r['image']('/web/static/src/img/icons/gtk-jump-to.png', nodes.x+100, nodes.y+75, 16, 16) + .attr({"cursor": "pointer", "title": nodes.menu.name}) + .click(function() { + self.process_jump_to_view(nodes.res_model, nodes.menu.id); + }); + } + var process_set =r.set().push(process_node); + process_set.mousedown(function() { + return false; + }); + return process_set; + } + _.each(res_nodes, function(node,id) { + node['res_model'] = self.model, + node['res_id'] = false, + node['color'] = 'gray' + var n = new CuteNode( + graph, + node.x + 50, //FIXME the +50 should be in the layout algorithm + node.y + 50, + CuteGraph.wordwrap("", 14)); + n.id = id; + id_to_node[id] = n; + return render_process(r,node); + }); + _.each(res_edges, function(edge) { + var e = new CuteEdge( + graph, + CuteGraph.wordwrap(" ",0), + id_to_node[edge.source], + id_to_node[edge.target] || id_to_node[edge.source]); + e.id = edge.id; + }); + }, + process_jump_to_view: function(model,id) { + var self = this; + var dataset = new instance.web.DataSet(this, 'ir.values', this.session.user_context); + var action_manager = new instance.web.ActionManager(self); + dataset.call('get', + ['action', 'tree_but_open',[['ir.ui.menu', id]], dataset.context], + function(res) { + var action = res[0][res[0].length - 1]; + self.rpc("/web/action/load", { + action_id: action.id, + context: dataset.context + }, function(result) { + action_manager.replace(self.$el); + action_manager.do_action(result.result); + }) + }); + }, + process_edit_view: function() { + var self = this; + var pop = new instance.web.form.FormOpenPopup(self); + pop.show_element( + self.process_dataset.model, + self.process_id, + self.context || self.dataset.context, + { + title: _t('Process') + }); + var form_controller = pop.view_form; + pop.on_write_completed.add_last(function() { + self.initialize_process_view(); + }); + } +}); +}; +// vim:et fdc=0 fdl=0 foldnestmax=3 fdm=syntax: diff --git a/addons/process/static/src/xml/process.xml b/addons/process/static/src/xml/process.xml new file mode 100644 index 00000000000..b1a39aa6ce8 --- /dev/null +++ b/addons/process/static/src/xml/process.xml @@ -0,0 +1,93 @@ +