summaryrefslogtreecommitdiff
path: root/odoo
diff options
context:
space:
mode:
authorBenjamin Vray <bvr@odoo.com>2020-08-03 13:33:33 +0000
committerqsm-odoo <qsm@odoo.com>2020-08-14 17:40:58 +0000
commite41622e16e6db04456929a954eb5d75ca2d8abe4 (patch)
tree0e87f441ef6c67f757016a05892184033bab4270 /odoo
parent745ef9de97544d5c1a97e03be67e903feca40c2a (diff)
[IMP] base, *: add a field image flag on the lang model
*: website Add a field image flag on the lang model because when a language has no country (like the arabic) we cannot use the country flag as a lang flag. By default we use this new field and as fallback we use the country image. We also add an arabic flag image in the website data. Part of https://github.com/odoo/odoo/pull/55300 task-2203383 closes odoo/odoo#55300 Signed-off-by: Quentin Smetz (qsm) <qsm@odoo.com> Co-authored-by: qsm-odoo <qsm@odoo.com>
Diffstat (limited to 'odoo')
-rw-r--r--odoo/addons/base/data/res_lang_data.xml3
-rw-r--r--odoo/addons/base/models/res_lang.py13
-rw-r--r--odoo/addons/base/static/img/lang_flags/lang_ar.pngbin0 -> 23980 bytes
-rw-r--r--odoo/addons/base/views/res_lang_views.xml1
4 files changed, 16 insertions, 1 deletions
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 @@
<record id="base.lang_my" model="res.lang">
<field name="url_code">mya</field>
</record>
+ <record id="base.lang_ar" model="res.lang">
+ <field name="flag_image" type="base64" file="base/static/img/lang_flags/lang_ar.png"/>
+ </record>
</data>
</odoo>
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
--- /dev/null
+++ b/odoo/addons/base/static/img/lang_flags/lang_ar.png
Binary files 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" />
</div>
+ <field name="flag_image" widget="image" class="oe_avatar"/>
<div class="oe_title">
<label for="name" class="oe_edit_only"/>
<h1><field name="name"/></h1>