diff --git a/addons/website/static/src/scss/website.scss b/addons/website/static/src/scss/website.scss
index 8140943c9c9..00619cefd25 100644
--- a/addons/website/static/src/scss/website.scss
+++ b/addons/website/static/src/scss/website.scss
@@ -873,6 +873,7 @@ header {
height: 1.5em;
margin-right: 0.2em;
border-radius: $rounded-pill;
+ vertical-align: top;
}
// Figure with special style
diff --git a/addons/website/views/website_templates.xml b/addons/website/views/website_templates.xml
index 3a25ef492df..1ef6cadb956 100644
--- a/addons/website/views/website_templates.xml
+++ b/addons/website/views/website_templates.xml
@@ -593,7 +593,7 @@
-
+
@@ -622,12 +622,12 @@
-
+
-
+
diff --git a/odoo/addons/base/data/res_lang_data.xml b/odoo/addons/base/data/res_lang_data.xml
index 309b5e2642c..8ed3dc51be3 100644
--- a/odoo/addons/base/data/res_lang_data.xml
+++ b/odoo/addons/base/data/res_lang_data.xml
@@ -7,5 +7,8 @@
mya
+
+
+
diff --git a/odoo/addons/base/models/res_lang.py b/odoo/addons/base/models/res_lang.py
index f3f54eb3e96..f467b901b0b 100644
--- a/odoo/addons/base/models/res_lang.py
+++ b/odoo/addons/base/models/res_lang.py
@@ -48,6 +48,17 @@ class Lang(models.Model):
decimal_point = fields.Char(string='Decimal Separator', required=True, default='.', trim=False)
thousands_sep = fields.Char(string='Thousands Separator', default=',', trim=False)
+ @api.depends('code', 'flag_image')
+ def _compute_field_flag_image_url(self):
+ for lang in self:
+ if lang.flag_image:
+ lang.flag_image_url = f"/web/image/res.lang/{lang.id}/flag_image"
+ else:
+ lang.flag_image_url = f"/base/static/img/country_flags/{lang.code.lower().rsplit('_')[-1]}.png"
+
+ flag_image = fields.Image("Image")
+ flag_image_url = fields.Char(compute=_compute_field_flag_image_url)
+
_sql_constraints = [
('name_uniq', 'unique(name)', 'The name of the language must be unique !'),
('code_uniq', 'unique(code)', 'The code of the language must be unique !'),
@@ -216,7 +227,7 @@ class Lang(models.Model):
return langs.get_sorted()
def get_sorted(self):
- return sorted([(lang.code, lang.url_code, lang.name, lang.active) for lang in self], key=itemgetter(2))
+ return sorted([(lang.code, lang.url_code, lang.name, lang.active, lang.flag_image_url) for lang in self], key=itemgetter(2))
@tools.ormcache('self.id')
def _get_cached_values(self):
diff --git a/odoo/addons/base/static/img/lang_flags/lang_ar.png b/odoo/addons/base/static/img/lang_flags/lang_ar.png
new file mode 100644
index 00000000000..7f2a13f0875
Binary files /dev/null and b/odoo/addons/base/static/img/lang_flags/lang_ar.png differ
diff --git a/odoo/addons/base/views/res_lang_views.xml b/odoo/addons/base/views/res_lang_views.xml
index 6a1d4232b37..52edb9fba6e 100644
--- a/odoo/addons/base/views/res_lang_views.xml
+++ b/odoo/addons/base/views/res_lang_views.xml
@@ -33,6 +33,7 @@
class="oe_stat_button"
icon="fa-refresh" />
+