diff --git a/CHANGELOG b/CHANGELOG
index 02ca70701b..17eb8837ba 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,3 +1,4 @@
+* Add tree_invisible attribute to button in tree view
* Drop support of Python 2.6
* Deprecate on_change, on_change_with, selection_change_with and autocomplete
field arguments
diff --git a/doc/topics/views/index.rst b/doc/topics/views/index.rst
index bf9da749b7..fb9d0f52c3 100644
--- a/doc/topics/views/index.rst
+++ b/doc/topics/views/index.rst
@@ -535,6 +535,22 @@ Example
+button
+^^^^^^
+
+Display a button.
+
+ * ``string``: The string that will be displayed inside the button.
+
+ * ``name``: The name of the function that will be called. The function must
+ have this syntax:
+
+ ``button(cls, records)``
+
+ * ``confirm``: A text that will be displayed in a confirmation popup when
+ the button is clicked.
+
+ * ``help``: see in common-attributes-help_
Graph view
==========
diff --git a/trytond/ir/ui/tree.rnc b/trytond/ir/ui/tree.rnc
index 43e9471a31..3500bc8dde 100644
--- a/trytond/ir/ui/tree.rnc
+++ b/trytond/ir/ui/tree.rnc
@@ -70,6 +70,8 @@ attlist.button &=
[ a:defaultValue = "Unknown" ] attribute string { text }?
attlist.button &= attribute confirm { text }?
attlist.button &= attribute name { text }
+attlist.button &=
+ [ a:defaultValue = "0" ] attribute tree_invisible { "0" | "1" }?
data = element data { attlist.data, xpath+ }
attlist.data &= empty
xpath = element xpath { attlist.xpath,
diff --git a/trytond/ir/ui/tree.rng b/trytond/ir/ui/tree.rng
index 628d21fcae..85ecc64ce1 100644
--- a/trytond/ir/ui/tree.rng
+++ b/trytond/ir/ui/tree.rng
@@ -238,6 +238,16 @@
+
+
+
+
+ 0
+ 1
+
+
+
+