changing city for municipality

This commit is contained in:
Alnus Tmp 2020-11-15 16:06:16 -05:00
parent 312197465f
commit 06b39c7c7b
15 changed files with 9062 additions and 13679 deletions

View File

@ -0,0 +1,9 @@
<?xml version="1.0"?>
<tryton>
<data>
<record model="party.address.subdivision_type" id="CO">
<field name="country_code">CO</field>
<field name="types" eval="['department']"/>
</record>
</data>
</tryton>

View File

@ -1,209 +0,0 @@
<?xml version="1.0"?>
<tryton>
<data>
<record model="country.country" id="50">
<field name="name">Colombia</field>
<field name="code">CO</field>
<field name="code3">COL</field>
<field name="code_numeric">170</field>
</record>
<record model="country.subdivision" id="CO-91">
<field name="name">Amazonas</field>
<field name="type">department</field>
<field name="country" ref="50"/>
<field name="code">CO-91</field>
</record>
<record model="country.subdivision" id="CO-05">
<field name="name">Antioquia</field>
<field name="type">department</field>
<field name="country" ref="50"/>
<field name="code">CO-05</field>
</record>
<record model="country.subdivision" id="CO-81">
<field name="name">Arauca</field>
<field name="type">department</field>
<field name="country" ref="50"/>
<field name="code">CO-81</field>
</record>
<record model="country.subdivision" id="CO-08">
<field name="name">Atlántico</field>
<field name="type">department</field>
<field name="country" ref="50"/>
<field name="code">CO-08</field>
</record>
<record model="country.subdivision" id="CO-13">
<field name="name">Bolívar</field>
<field name="type">department</field>
<field name="country" ref="50"/>
<field name="code">CO-13</field>
</record>
<record model="country.subdivision" id="CO-15">
<field name="name">Boyacá</field>
<field name="type">department</field>
<field name="country" ref="50"/>
<field name="code">CO-15</field>
</record>
<record model="country.subdivision" id="CO-17">
<field name="name">Caldas</field>
<field name="type">department</field>
<field name="country" ref="50"/>
<field name="code">CO-17</field>
</record>
<record model="country.subdivision" id="CO-18">
<field name="name">Caquetá</field>
<field name="type">department</field>
<field name="country" ref="50"/>
<field name="code">CO-18</field>
</record>
<record model="country.subdivision" id="CO-85">
<field name="name">Casanare</field>
<field name="type">department</field>
<field name="country" ref="50"/>
<field name="code">CO-85</field>
</record>
<record model="country.subdivision" id="CO-19">
<field name="name">Cauca</field>
<field name="type">department</field>
<field name="country" ref="50"/>
<field name="code">CO-19</field>
</record>
<record model="country.subdivision" id="CO-20">
<field name="name">Cesar</field>
<field name="type">department</field>
<field name="country" ref="50"/>
<field name="code">CO-20</field>
</record>
<record model="country.subdivision" id="CO-27">
<field name="name">Chocó</field>
<field name="type">department</field>
<field name="country" ref="50"/>
<field name="code">CO-27</field>
</record>
<record model="country.subdivision" id="CO-23">
<field name="name">Córdoba</field>
<field name="type">department</field>
<field name="country" ref="50"/>
<field name="code">CO-23</field>
</record>
<record model="country.subdivision" id="CO-25">
<field name="name">Cundinamarca</field>
<field name="type">department</field>
<field name="country" ref="50"/>
<field name="code">CO-25</field>
</record>
<record model="country.subdivision" id="CO-11">
<field name="name">Bogotá</field>
<field name="type">capital district</field>
<field name="country" ref="50"/>
<field name="code">CO-11</field>
</record>
<record model="country.subdivision" id="CO-94">
<field name="name">Guainía</field>
<field name="type">department</field>
<field name="country" ref="50"/>
<field name="code">CO-94</field>
</record>
<record model="country.subdivision" id="CO-95">
<field name="name">Guaviare</field>
<field name="type">department</field>
<field name="country" ref="50"/>
<field name="code">CO-95</field>
</record>
<record model="country.subdivision" id="CO-41">
<field name="name">Huila</field>
<field name="type">department</field>
<field name="country" ref="50"/>
<field name="code">CO-41</field>
</record>
<record model="country.subdivision" id="CO-44">
<field name="name">La Guajira</field>
<field name="type">department</field>
<field name="country" ref="50"/>
<field name="code">CO-44</field>
</record>
<record model="country.subdivision" id="CO-47">
<field name="name">Magdalena</field>
<field name="type">department</field>
<field name="country" ref="50"/>
<field name="code">CO-47</field>
</record>
<record model="country.subdivision" id="CO-50">
<field name="name">Meta</field>
<field name="type">department</field>
<field name="country" ref="50"/>
<field name="code">CO-50</field>
</record>
<record model="country.subdivision" id="CO-52">
<field name="name">Nariño</field>
<field name="type">department</field>
<field name="country" ref="50"/>
<field name="code">CO-52</field>
</record>
<record model="country.subdivision" id="CO-54">
<field name="name">Norte de Santander</field>
<field name="type">department</field>
<field name="country" ref="50"/>
<field name="code">CO-54</field>
</record>
<record model="country.subdivision" id="CO-86">
<field name="name">Putumayo</field>
<field name="type">department</field>
<field name="country" ref="50"/>
<field name="code">CO-86</field>
</record>
<record model="country.subdivision" id="CO-63">
<field name="name">Quindío</field>
<field name="type">department</field>
<field name="country" ref="50"/>
<field name="code">CO-63</field>
</record>
<record model="country.subdivision" id="CO-66">
<field name="name">Risaralda</field>
<field name="type">department</field>
<field name="country" ref="50"/>
<field name="code">CO-66</field>
</record>
<record model="country.subdivision" id="CO-88">
<field name="name">San Andrés y Providencia</field>
<field name="type">department</field>
<field name="country" ref="50"/>
<field name="code">CO-88</field>
</record>
<record model="country.subdivision" id="CO-68">
<field name="name">Santander</field>
<field name="type">department</field>
<field name="country" ref="50"/>
<field name="code">CO-68</field>
</record>
<record model="country.subdivision" id="CO-70">
<field name="name">Sucre</field>
<field name="type">department</field>
<field name="country" ref="50"/>
<field name="code">CO-70</field>
</record>
<record model="country.subdivision" id="CO-73">
<field name="name">Tolima</field>
<field name="type">department</field>
<field name="country" ref="50"/>
<field name="code">CO-73</field>
</record>
<record model="country.subdivision" id="CO-76">
<field name="name">Valle del Cauca</field>
<field name="type">department</field>
<field name="country" ref="50"/>
<field name="code">CO-76</field>
</record>
<record model="country.subdivision" id="CO-97">
<field name="name">Vaupés</field>
<field name="type">department</field>
<field name="country" ref="50"/>
<field name="code">CO-97</field>
</record>
<record model="country.subdivision" id="CO-99">
<field name="name">Vichada</field>
<field name="type">department</field>
<field name="country" ref="50"/>
<field name="code">CO-99</field>
</record>
</data>
</tryton>

View File

@ -0,0 +1,60 @@
"""
Convierte el archivo municipios_colombia.csv y departamentos_colombia.csv
en municipios_colombia.xml
"""
import csv
model = 'country.subdivision'
municipalities = open('municipalities_colombia.csv','r')
subdivisions = open('subdivisions_colombia.csv','r')
municipalities_xml = open('municipalities_colombia.xml','w')
municipalities_reader = csv.reader(municipalities)
subdivisions_reader = csv.reader(subdivisions)
subdivisions_header = next(subdivisions_reader)
d_fields = {subdivisions_header[x]:x for x in range(0,len(subdivisions_header))}
Subdivisions = {}
for subdivision in subdivisions_reader:
dane_code = int(subdivision[d_fields['DANE']])
Subdivisions [dane_code] = dict(zip(list(d_fields.keys()),subdivision))
subdivisions.close()
municipalities_header = next(municipalities_reader)
m_fields = {municipalities_header[x]:x for x in range(0,len(municipalities_header))}
municipalities_xml.write("""<?xml version="1.0"?>
<tryton>
<data>
""")
for row in municipalities_reader:
dane_code = row[m_fields['department']] + row[m_fields['code']]
depto_id = "CO-" + Subdivisions[int(row[m_fields['department']])]['DANE']
municipalities_xml.write(""" <record model="{model}" id="{id}">
<field name="name">{name}</field>
<field name="dane_code">{dane_code}</field>
<field name="country" ref="50"/>
<field name="type">{type}</field>
<field name="code">{code}</field>
<field name="parent" ref="{parent}"/>
</record>
""".format(
model=model,
id="CO-"+str(dane_code),
name=row[m_fields['name']],
code="CO-"+str(dane_code),
dane_code=dane_code,
depto_id=depto_id,
type="municipality",
parent="CO-"+row[m_fields['department']]
))
municipalities_xml.write("""
</data>
</tryton>
"""
)
municipalities.close()
municipalities_xml.close()

File diff suppressed because it is too large Load Diff

View File

@ -1,56 +0,0 @@
"""
Convierte el archivo municipios_colombia.csv y departamentos_colombia.csv
en municipios_colombia.xml
"""
import csv
model = 'country.city'
municipios = open('municipios_colombia.csv','r')
departamentos = open('departamentos_colombia.csv','r')
municipios_xml = open('municipios_colombia.xml','w')
#departamentos_xml = open('departamentos_colombia.xml','w')
municipios_reader = csv.reader(municipios)
departamentos_reader = csv.reader(departamentos)
departamentos_header = next(departamentos_reader)
d_fields = {departamentos_header[x]:x for x in range(0,len(departamentos_header))}
Departamentos = {}
for departamento in departamentos_reader:
#iso_id = 'co-' + str(departamento[d_fields['ISO']]).lower
dane_code = int(departamento[d_fields['DANE']])
Departamentos [dane_code] = dict(zip(list(d_fields.keys()),departamento))
departamentos.close()
municipios_header = next(municipios_reader)
m_fields = {municipios_header[x]:x for x in range(0,len(municipios_header))}
municipios_xml.write("""<?xml version="1.0"?>
<tryton>
<data>
""")
for row in municipios_reader:
dane_code = row[m_fields['department']] + row[m_fields['code']]
depto_id = "CO-" + Departamentos[int(row[m_fields['department']])]['DANE']
municipios_xml.write(""" <record model="{model}" id="{id}">
<field name="name">{name}</field>
<field name="dane_code">{dane_code}</field>
<field name="subdivision" ref="{depto_id}"/>
<field name="code">{code}</field>
</record>
""".format(
model=model,
id="CO-"+str(dane_code),
name=row[m_fields['name']],
code="CO-"+str(dane_code),
dane_code=dane_code,
depto_id=depto_id,
))
municipios_xml.write("""
</data>
</tryton>
"""
)
municipios.close()
municipios_xml.close()

View File

@ -1,25 +1,25 @@
"""
Convierte el archivo departamentos_colombia.csv
en subdivision_colombia.xml
en subdivisions_colombia.xml
"""
import csv
model = 'country.subdivision'
departamentos = open('departamentos_colombia.csv','r')
subdivisions = open('subdivisions_colombia.csv','r')
departamentos_xml = open('departamentos_colombia.xml','w')
subdivisions_xml = open('subdivisions_colombia.xml','w')
departamentos_reader = csv.reader(departamentos)
departamentos_header = next(departamentos_reader)
d_fields = {departamentos_header[x]:x for x in range(0,len(departamentos_header))}
subdivisions_reader = csv.reader(subdivisions)
subdivisions_header = next(subdivisions_reader)
d_fields = {subdivisions_header[x]:x for x in range(0,len(subdivisions_header))}
Departamentos = {}
Subdivisions = {}
departamentos_xml.write('''<?xml version="1.0"?>
subdivisions_xml.write('''<?xml version="1.0"?>
<tryton>
<data>
''')
departamentos_xml.write(''' <record model="country.country" id="50">
subdivisions_xml.write(''' <record model="country.country" id="50">
<field name="name">Colombia</field>
<field name="code">CO</field>
<field name="code3">COL</field>
@ -28,14 +28,15 @@ departamentos_xml.write(''' <record model="country.country" id="50">
''')
for row in departamentos_reader:
for row in subdivisions_reader:
dane_code = row[d_fields['DANE']]
country_id = "50"
departamentos_xml.write(''' <record model="{model}" id="{id}">
subdivisions_xml.write(''' <record model="{model}" id="{id}">
<field name="name">{name}</field>
<field name="type">{types}</field>
<field name="country" ref="50"/>
<field name="code">{code}</field>
<field name="dane_code">{dane_code}</field>
</record>
'''.format(
model=model,
@ -45,9 +46,9 @@ for row in departamentos_reader:
code="CO-"+str(dane_code),
dane_code=dane_code
))
departamentos_xml.write(""" </data>
subdivisions_xml.write(""" </data>
</tryton>
"""
)
departamentos.close()
departamentos_xml.close()
subdivisions.close()
subdivisions_xml.close()

7
locale/es.po Normal file
View File

@ -0,0 +1,7 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:party.address,subdivision_municipality:"
msgid "Municipality"
msgstr "Municipio"

8918
municipalities_colombia.xml Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -298,36 +298,36 @@ class Address(ModelSQL, ModelView):
__metaclass__ = PoolMeta
__name__ = 'party.address'
subdivision_city = fields.Many2One("country.subdivision",
'City',
subdivision_municipality = fields.Many2One("country.subdivision",
'Municipality',
domain=[
('country', '=', Eval('country', -1)),
('parent', '=', Eval('subdivision', -1)),
('type', '=', 'city')
('type', '=', 'municipality')
],
depends=['country', 'subdivision', 'city'],
)
@fields.depends('subdivision', 'subdivision_city', 'country')
@fields.depends('subdivision', 'subdivision_municipality', 'country')
def on_change_country(self):
super(Address, self).on_change_country()
if (self.subdivision_city
and self.subdivision_city.parent != self.subdivision):
self.subdivision_city = None
if (self.subdivision_municipality
and self.subdivision_municipality.parent != self.subdivision):
self.subdivision_municipality = None
@fields.depends('subdivision', 'subdivision_city')
@fields.depends('subdivision', 'subdivision_municipality')
def on_change_subdivision(self):
if hasattr(super(Address, self), 'on_change_subdivision'):
super(Address, self).on_change_subdivision()
if (self.subdivision_city
and self.subdivision_city.parent != self.subdivision):
self.subdivision_city = None
if (self.subdivision_municipality
and self.subdivision_municipality.parent != self.subdivision):
self.subdivision_municipality = None
@fields.depends('city', 'subdivision_city')
def on_change_subdivision_city(self):
if self.subdivision_city:
self.city = self.subdivision_city.name
@fields.depends('city', 'subdivision_municipality')
def on_change_subdivision_municipality(self):
if self.subdivision_municipality:
self.city = self.subdivision_municipality.name
else:
self.city = None

View File

@ -12,199 +12,231 @@
<field name="type">department</field>
<field name="country" ref="50"/>
<field name="code">CO-91</field>
<field name="dane_code">91</field>
</record>
<record model="country.subdivision" id="CO-05">
<field name="name">Antioquia</field>
<field name="type">department</field>
<field name="country" ref="50"/>
<field name="code">CO-05</field>
<field name="dane_code">05</field>
</record>
<record model="country.subdivision" id="CO-81">
<field name="name">Arauca</field>
<field name="type">department</field>
<field name="country" ref="50"/>
<field name="code">CO-81</field>
<field name="dane_code">81</field>
</record>
<record model="country.subdivision" id="CO-08">
<field name="name">Atlántico</field>
<field name="type">department</field>
<field name="country" ref="50"/>
<field name="code">CO-08</field>
<field name="dane_code">08</field>
</record>
<record model="country.subdivision" id="CO-13">
<field name="name">Bolívar</field>
<field name="type">department</field>
<field name="country" ref="50"/>
<field name="code">CO-13</field>
<field name="dane_code">13</field>
</record>
<record model="country.subdivision" id="CO-15">
<field name="name">Boyacá</field>
<field name="type">department</field>
<field name="country" ref="50"/>
<field name="code">CO-15</field>
<field name="dane_code">15</field>
</record>
<record model="country.subdivision" id="CO-17">
<field name="name">Caldas</field>
<field name="type">department</field>
<field name="country" ref="50"/>
<field name="code">CO-17</field>
<field name="dane_code">17</field>
</record>
<record model="country.subdivision" id="CO-18">
<field name="name">Caquetá</field>
<field name="type">department</field>
<field name="country" ref="50"/>
<field name="code">CO-18</field>
<field name="dane_code">18</field>
</record>
<record model="country.subdivision" id="CO-85">
<field name="name">Casanare</field>
<field name="type">department</field>
<field name="country" ref="50"/>
<field name="code">CO-85</field>
<field name="dane_code">85</field>
</record>
<record model="country.subdivision" id="CO-19">
<field name="name">Cauca</field>
<field name="type">department</field>
<field name="country" ref="50"/>
<field name="code">CO-19</field>
<field name="dane_code">19</field>
</record>
<record model="country.subdivision" id="CO-20">
<field name="name">Cesar</field>
<field name="type">department</field>
<field name="country" ref="50"/>
<field name="code">CO-20</field>
<field name="dane_code">20</field>
</record>
<record model="country.subdivision" id="CO-27">
<field name="name">Chocó</field>
<field name="type">department</field>
<field name="country" ref="50"/>
<field name="code">CO-27</field>
<field name="dane_code">27</field>
</record>
<record model="country.subdivision" id="CO-23">
<field name="name">Córdoba</field>
<field name="type">department</field>
<field name="country" ref="50"/>
<field name="code">CO-23</field>
<field name="dane_code">23</field>
</record>
<record model="country.subdivision" id="CO-25">
<field name="name">Cundinamarca</field>
<field name="type">department</field>
<field name="country" ref="50"/>
<field name="code">CO-25</field>
<field name="dane_code">25</field>
</record>
<record model="country.subdivision" id="CO-11">
<field name="name">Bogotá</field>
<field name="type">capital district</field>
<field name="country" ref="50"/>
<field name="code">CO-11</field>
<field name="dane_code">11</field>
</record>
<record model="country.subdivision" id="CO-94">
<field name="name">Guainía</field>
<field name="type">department</field>
<field name="country" ref="50"/>
<field name="code">CO-94</field>
<field name="dane_code">94</field>
</record>
<record model="country.subdivision" id="CO-95">
<field name="name">Guaviare</field>
<field name="type">department</field>
<field name="country" ref="50"/>
<field name="code">CO-95</field>
<field name="dane_code">95</field>
</record>
<record model="country.subdivision" id="CO-41">
<field name="name">Huila</field>
<field name="type">department</field>
<field name="country" ref="50"/>
<field name="code">CO-41</field>
<field name="dane_code">41</field>
</record>
<record model="country.subdivision" id="CO-44">
<field name="name">La Guajira</field>
<field name="type">department</field>
<field name="country" ref="50"/>
<field name="code">CO-44</field>
<field name="dane_code">44</field>
</record>
<record model="country.subdivision" id="CO-47">
<field name="name">Magdalena</field>
<field name="type">department</field>
<field name="country" ref="50"/>
<field name="code">CO-47</field>
<field name="dane_code">47</field>
</record>
<record model="country.subdivision" id="CO-50">
<field name="name">Meta</field>
<field name="type">department</field>
<field name="country" ref="50"/>
<field name="code">CO-50</field>
<field name="dane_code">50</field>
</record>
<record model="country.subdivision" id="CO-52">
<field name="name">Nariño</field>
<field name="type">department</field>
<field name="country" ref="50"/>
<field name="code">CO-52</field>
<field name="dane_code">52</field>
</record>
<record model="country.subdivision" id="CO-54">
<field name="name">Norte de Santander</field>
<field name="type">department</field>
<field name="country" ref="50"/>
<field name="code">CO-54</field>
<field name="dane_code">54</field>
</record>
<record model="country.subdivision" id="CO-86">
<field name="name">Putumayo</field>
<field name="type">department</field>
<field name="country" ref="50"/>
<field name="code">CO-86</field>
<field name="dane_code">86</field>
</record>
<record model="country.subdivision" id="CO-63">
<field name="name">Quindío</field>
<field name="type">department</field>
<field name="country" ref="50"/>
<field name="code">CO-63</field>
<field name="dane_code">63</field>
</record>
<record model="country.subdivision" id="CO-66">
<field name="name">Risaralda</field>
<field name="type">department</field>
<field name="country" ref="50"/>
<field name="code">CO-66</field>
<field name="dane_code">66</field>
</record>
<record model="country.subdivision" id="CO-88">
<field name="name">San Andrés y Providencia</field>
<field name="type">department</field>
<field name="country" ref="50"/>
<field name="code">CO-88</field>
<field name="dane_code">88</field>
</record>
<record model="country.subdivision" id="CO-68">
<field name="name">Santander</field>
<field name="type">department</field>
<field name="country" ref="50"/>
<field name="code">CO-68</field>
<field name="dane_code">68</field>
</record>
<record model="country.subdivision" id="CO-70">
<field name="name">Sucre</field>
<field name="type">department</field>
<field name="country" ref="50"/>
<field name="code">CO-70</field>
<field name="dane_code">70</field>
</record>
<record model="country.subdivision" id="CO-73">
<field name="name">Tolima</field>
<field name="type">department</field>
<field name="country" ref="50"/>
<field name="code">CO-73</field>
<field name="dane_code">73</field>
</record>
<record model="country.subdivision" id="CO-76">
<field name="name">Valle del Cauca</field>
<field name="type">department</field>
<field name="country" ref="50"/>
<field name="code">CO-76</field>
<field name="dane_code">76</field>
</record>
<record model="country.subdivision" id="CO-97">
<field name="name">Vaupés</field>
<field name="type">department</field>
<field name="country" ref="50"/>
<field name="code">CO-97</field>
<field name="dane_code">97</field>
</record>
<record model="country.subdivision" id="CO-99">
<field name="name">Vichada</field>
<field name="type">department</field>
<field name="country" ref="50"/>
<field name="code">CO-99</field>
<field name="dane_code">99</field>
</record>
</data>
</tryton>

View File

@ -7,5 +7,6 @@ depends:
xml:
party.xml
address.xml
departamentos_colombia.xml
subdivisions_colombia.xml
municipalities_colombia.xml
address_subdivision_types_colombia.xml

View File

@ -3,7 +3,7 @@
<xpath expr="//label[@name='city']" position="replace"></xpath>
<xpath expr="//field[@name='city']" position="replace"></xpath>
<xpath expr="//field[@name='subdivision']" position="after">
<label name="subdivision_city"/>
<field name="subdivision_city" widget="selection"/>
<label name="subdivision_municipality"/>
<field name="subdivision_municipality" widget="selection"/>
</xpath>
</data>