diff --git a/addons/web/static/src/js/view_form.js b/addons/web/static/src/js/view_form.js
index 7f802be2100..df7cd081338 100644
--- a/addons/web/static/src/js/view_form.js
+++ b/addons/web/static/src/js/view_form.js
@@ -4665,9 +4665,27 @@ instance.web.form.FieldStatus = instance.web.form.AbstractField.extend({
* state (given by the key of (key, label)).
*/
render_elements: function () {
+ var self = this;
var content = instance.web.qweb.render("FieldStatus.content", {widget: this, _:_});
this.$element.html(content);
-
+ clickable = this.node.attrs.clickable;
+ var result = true;
+ if(clickable == undefined) result = false;
+ if(result == true && clickable.toLowerCase() == 'true' || clickable == '1')
+ {
+ var elemts = this.$element.find('.oe_form_steps_item')
+ _.each(elemts, function(element){
+ $item = $(element);
+ if($item.attr("data-id") != self.selected_value){
+ $item.attr("style", "cursor: pointer;");
+ $item.click(function(event){
+ var data_id = parseInt($(this).attr("data-id"))
+ self.view.dataset.call('stage_set', [[self.view.datarecord.id],data_id]).then(function() {
+ return self.view.reload();});
+ });
+ };
+ });
+ }
var colors = JSON.parse((this.node.attrs || {}).statusbar_colors || "{}");
var color = colors[this.selected_value];
if (color) {
diff --git a/addons/web/static/src/xml/base.xml b/addons/web/static/src/xml/base.xml
index 29670c8e7de..fc83ecd30ca 100644
--- a/addons/web/static/src/xml/base.xml
+++ b/addons/web/static/src/xml/base.xml
@@ -1032,7 +1032,7 @@
-
+