diff --git a/CHANGELOG b/CHANGELOG
index 89c1f10b7c..0df6c3a57d 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,3 +1,4 @@
+* Add URL type to icon
* Use instance method to get next sequence value
* Store the sequence type directly on sequence
* Allow sending email with record's attachments
diff --git a/doc/topics/views/index.rst b/doc/topics/views/index.rst
index 56a00e8e9f..ce6de0acc3 100644
--- a/doc/topics/views/index.rst
+++ b/doc/topics/views/index.rst
@@ -296,13 +296,21 @@ Display a field of the object with the value of the current record.
* ``help_field``: see in common-attributes-help_field_.
+.. _form-image:
+
image
^^^^^
Display an image.
- * ``name``: the image name or the field name which contains the image name.
- The image name must be the name of a record of ``ir.ui.icon``.
+ * ``type``: the type of image source. Available values are ``icon`` or
+ ``url``. The default value is ``icon``.
+
+ * ``name``: The image name or the field name which contains the image name.
+ For the ``icon`` type it must be the name of a record of ``ir.ui.icon``.
+ For the ``url`` type it must be the URL. It can be relative to the server.
+
+ * ``url_size``: the name of the size parameter to add to the URL.
* ``yexpand``: see in common-attributes-yexpand_.
@@ -628,8 +636,14 @@ diplayed in the same column.
* ``name``: The name of the field whose value will be displayed.
- * ``icon``: The name of the field that contains the name of the icon to
- display or the name of the icon.
+ * ``icon``: The image name or the field name which contains the image name.
+ For the ``icon`` type it must be the name of a record of ``ir.ui.icon``.
+ For the ``url`` type it must be the URL. It can be relative to the server.
+
+ * ``icon_type``: the type of icon source. Available values are ``icon`` or
+ ``url``. The default value is ``icon``.
+
+ * ``url_size``: the name of the size parameter to add to the URL.
button
^^^^^^
diff --git a/trytond/ir/ui/form.rnc b/trytond/ir/ui/form.rnc
index f22a637b76..a83e031ce3 100644
--- a/trytond/ir/ui/form.rnc
+++ b/trytond/ir/ui/form.rnc
@@ -111,6 +111,8 @@ attlist.field &=
attlist.field &= attribute symbol { text }?
image = element image { attlist.image, empty }
attlist.image &= attribute name { text }
+attlist.image &= [a:defaultValue = "icon"] attribute type { "icon" | "url" }
+attlist.affix &= attribute url_size { text }?
attlist.image &= [ a:defaultValue = "1" ] attribute colspan { text }?
attlist.image &=
[ a:defaultValue = "0" ] attribute yexpand { "0" | "1" }?
diff --git a/trytond/ir/ui/form.rng b/trytond/ir/ui/form.rng
index af0e3b5c07..c49230bf92 100644
--- a/trytond/ir/ui/form.rng
+++ b/trytond/ir/ui/form.rng
@@ -505,6 +505,23 @@
+
+
+ type
+
+ icon
+ url
+
+
+
+
+
+
+ url_size
+
+
+
+
diff --git a/trytond/ir/ui/tree.rnc b/trytond/ir/ui/tree.rnc
index c2974da983..e17e03a9f2 100644
--- a/trytond/ir/ui/tree.rnc
+++ b/trytond/ir/ui/tree.rnc
@@ -71,6 +71,8 @@ suffix = element suffix { attlist.affix, empty }
attlist.affix &= attribute string { text }?
attlist.affix &= ( attribute name { text } | attribute id { text } )
attlist.affix &= attribute icon { text }?
+attlist.affix &= [a:defaultValue = "icon"] attribute icon_type { "icon" | "url" }?
+attlist.affix &= attribute url_size { text }?
button = element button { attlist.button, empty }
attlist.button &= attribute help { text }?
attlist.button &= attribute string { text }?
diff --git a/trytond/ir/ui/tree.rng b/trytond/ir/ui/tree.rng
index 3fa256536f..cfcab2d026 100644
--- a/trytond/ir/ui/tree.rng
+++ b/trytond/ir/ui/tree.rng
@@ -314,6 +314,25 @@
+
+
+
+ icon_type
+
+ icon
+ url
+
+
+
+
+
+
+
+ url_size
+
+
+
+
button