changeset 8da06851200e in modules/country:default
details: https://hg.tryton.org/modules/country?cmd=changeset;node=8da06851200e
description:
        Remove forbidden chars from imported names

        issue9829
        review318821002
diffstat:

 scripts/import_countries.py |  18 ++++++++++++++----
 1 files changed, 14 insertions(+), 4 deletions(-)

diffs (56 lines):

diff -r 0a79e3d9bc2a -r 8da06851200e scripts/import_countries.py
--- a/scripts/import_countries.py       Wed Dec 30 16:28:18 2020 +0000
+++ b/scripts/import_countries.py       Tue Jan 19 22:42:52 2021 +0100
@@ -36,6 +36,14 @@
         yield l.code
 
 
+def _remove_forbidden_chars(name):
+    from trytond.model.fields import Char
+    for c in Char.forbidden_chars:
+        if c in name:
+            name.replace(c, ' ')
+    return name.strip()
+
+
 def get_countries():
     Country = Model.get('country.country')
     return {c.code: c for c in Country.find([])}
@@ -52,7 +60,7 @@
             record = countries[code]
         else:
             record = Country(code=code)
-        record.name = country.name
+        record.name = _remove_forbidden_chars(country.name)
         record.code3 = country.alpha_3
         record.code_numeric = country.numeric
         records.append(record)
@@ -76,7 +84,8 @@
             records = []
             for country in _progress(pycountry.countries):
                 record = Country(countries[country.alpha_2].id)
-                record.name = gnutranslation.gettext(country.name)
+                record.name = _remove_forbidden_chars(
+                    gnutranslation.gettext(country.name))
                 records.append(record)
             Country.save(records)
 
@@ -98,7 +107,7 @@
             record = subdivisions[(country_code, code)]
         else:
             record = Subdivision(code=code, country=countries[country_code])
-        record.name = subdivision.name
+        record.name = _remove_forbidden_chars(subdivision.name)
         record.type = subdivision.type.lower()
         records.append(record)
 
@@ -140,7 +149,8 @@
             for subdivision in _progress(pycountry.subdivisions):
                 record = Subdivision(subdivisions[
                         (subdivision.country_code, subdivision.code)].id)
-                record.name = gnutranslation.gettext(subdivision.name)
+                record.name = _remove_forbidden_chars(
+                    gnutranslation.gettext(subdivision.name))
                 records.append(record)
             Subdivision.save(records)
 

Reply via email to