Skip to content

Commit e5eaad0

Browse files
Merge pull request #360 from OpenSPP/localization-for-demo-modules
Localization for demo modules
2 parents 6509e74 + b85ab56 commit e5eaad0

22 files changed

+72075
-221
lines changed

g2p_connect_demo/data/sample_data.xml

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -119,15 +119,4 @@
119119
<field name="name">Agent 15</field>
120120
<field name="area_id" ref="demo_center_202" />
121121
</record>
122-
123-
<!-- GENDER -->
124-
<record model="gender.type" id="gender_male">
125-
<field name="code">Male</field>
126-
<field name="value">Male</field>
127-
</record>
128-
<record model="gender.type" id="gender_female">
129-
<field name="code">Female</field>
130-
<field name="value">Female</field>
131-
</record>
132-
133122
</odoo>

g2p_connect_demo/models/generate_group.py

Lines changed: 27 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -6,18 +6,27 @@
66
import random
77

88
from dateutil.relativedelta import relativedelta
9-
from faker import Faker
109

1110
from odoo import api, fields, models
1211

1312
from odoo.addons.queue_job.delay import group
13+
from odoo.addons.spp_base_demo.locale_providers import create_faker
1414

1515
_logger = logging.getLogger(__name__)
1616

1717

1818
class OpenG2PGenerateData(models.Model):
1919
_name = "g2p.generate.data"
2020

21+
LOCALE_SELECTION = [
22+
("en_US", "United States (English)"),
23+
("en_KE", "Kenya (English)"),
24+
("sw_KE", "Kenya (Swahili)"),
25+
("si_LK", "Sri Lanka (Sinhala)"),
26+
("ta_LK", "Sri Lanka (Tamil)"),
27+
("lo_LA", "Laos (Lao)"),
28+
]
29+
2130
name = fields.Char()
2231
num_groups = fields.Integer("Number of Groups", default=1)
2332
state = fields.Selection(
@@ -27,6 +36,11 @@ class OpenG2PGenerateData(models.Model):
2736
],
2837
default="draft",
2938
)
39+
locale = fields.Selection(
40+
LOCALE_SELECTION,
41+
default="en_KE",
42+
required=True,
43+
)
3044

3145
def generate_sample_data(self):
3246
batches = math.ceil(self.num_groups / 1000)
@@ -45,25 +59,7 @@ def _generate_sample_data(self, **kwargs):
4559
"""
4660
res_id = kwargs.get("res_id")
4761
res = self.browse(res_id)
48-
locales = [
49-
# "cs_CZ",
50-
# "en_US",
51-
"id_ID",
52-
# "de_CH",
53-
# "ar_AA",
54-
# "de_DE",
55-
# "en_GB",
56-
# "en_IE",
57-
# "en_TH",
58-
# "es_ES",
59-
# "es_MX",
60-
# "fr_FR",
61-
# "hi_IN",
62-
# "hr_HR",
63-
# "it_IT",
64-
# "zh_CN",
65-
]
66-
fake = Faker(locales)
62+
fake = create_faker(res.locale)
6763

6864
# sex_choice_range = ["Female", "Male"] * 50 + ["Other"]
6965
sex_choices = self.env["gender.type"].search([]).mapped("value")
@@ -90,21 +86,16 @@ def _generate_sample_data(self, **kwargs):
9086
center_area_ids = center_areas.mapped("id")
9187

9288
for i in range(0, num_groups):
93-
locale = random.choice(locales)
9489
group_size = random.choice(group_size_range)
95-
last_name = fake[locale].last_name()
90+
last_name = fake.last_name()
9691

97-
registration_date = (
98-
fake[locale]
99-
.date_between_dates(
100-
date_start=datetime.datetime.now() - relativedelta(weeks=4),
101-
date_end=datetime.datetime.now(),
102-
)
103-
.isoformat()
104-
)
92+
registration_date = fake.date_between_dates(
93+
date_start=datetime.datetime.now() - relativedelta(weeks=4),
94+
date_end=datetime.datetime.now(),
95+
).isoformat()
10596

10697
head = res._generate_individual_data(
107-
fake[locale],
98+
fake,
10899
last_name,
109100
sex_choice_range,
110101
["A", "E"],
@@ -138,10 +129,10 @@ def _generate_sample_data(self, **kwargs):
138129
"is_registrant": True,
139130
"registration_date": registration_date,
140131
"kind": group_kind,
141-
"street": fake[locale].street_address(),
142-
"street2": fake[locale].street_name(),
143-
"city": fake[locale].city(),
144-
"zip": fake[locale].postcode(),
132+
"street": fake.street_address(),
133+
"street2": fake.street_name(),
134+
"city": fake.city(),
135+
"zip": fake.postcode(),
145136
"area_id": random.choice(center_area_ids),
146137
"bank_ids": bank_ids,
147138
}
@@ -153,7 +144,7 @@ def _generate_sample_data(self, **kwargs):
153144

154145
for i in range(group_size - 1):
155146
data = res._generate_individual_data(
156-
fake[locale],
147+
fake,
157148
last_name,
158149
sex_choice_range,
159150
age_group_range,

g2p_connect_demo/views/generate_data_view.xml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,10 @@ Part of Openg2p. See LICENSE file for full copyright and licensing details.
5656
<h2>
5757
<field id="num_groups" name="num_groups" placeholder="Number of groups..." />
5858
</h2>
59+
<label for="locale" string="Locale:" />
60+
<h2>
61+
<field id="locale" name="locale" placeholder="Locale..." />
62+
</h2>
5963
</div>
6064

6165
</sheet>

spp_base_demo/__manifest__.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,12 @@
1313
"g2p_registry_base",
1414
"g2p_programs",
1515
# "spp_helpdesk",
16+
"product",
1617
],
1718
"data": [
1819
"data/users_data.xml",
20+
"data/gender_data.xml",
21+
"data/product_data.xml",
1922
],
2023
"assets": {},
2124
"demo": [],

spp_base_demo/data/gender_data.xml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
<odoo noupdate="1">
2+
<record id="gender_male" model="gender.type">
3+
<field name="code">Male</field>
4+
<field name="value">Male</field>
5+
</record>
6+
<record id="gender_female" model="gender.type">
7+
<field name="code">Female</field>
8+
<field name="value">Female</field>
9+
</record>
10+
</odoo>

0 commit comments

Comments
 (0)