Skip to content

Commit 1de79ae

Browse files
authored
Merge branch '17.0' into farmer-registry-laos
2 parents 94a2b7c + e5eaad0 commit 1de79ae

File tree

68 files changed

+72955
-335
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

68 files changed

+72955
-335
lines changed

.github/workflows/main.yml

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
name: Sync Issue to Odoo
2+
3+
on:
4+
issues:
5+
types: [opened, edited]
6+
7+
jobs:
8+
sync_to_odoo:
9+
runs-on: ubuntu-latest
10+
steps:
11+
- name: Checkout code
12+
uses: actions/checkout@v2
13+
14+
- name: Set up Python
15+
uses: actions/setup-python@v2
16+
with:
17+
python-version: '3.8'
18+
19+
- name: Sync Issue to Odoo
20+
env:
21+
ODOO_URL: ${{ secrets.ODOO_URL }}
22+
ODOO_DB: ${{ secrets.ODOO_DB }}
23+
ODOO_USERNAME: ${{ secrets.ODOO_USERNAME }}
24+
ODOO_PASSWORD: ${{ secrets.ODOO_PASSWORD }}
25+
run: |
26+
python scripts/sync_issue_to_odoo.py "${{ github.event.issue.title }}" "${{ github.event.issue.body }}" "${{ github.event.issue.number }}"

g2p_connect_demo/__manifest__.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,22 +25,22 @@
2525
"spp_idqueue",
2626
# "spp_helpdesk",
2727
"spp_area",
28-
"spp_change_request",
28+
# "spp_change_request",
2929
"spp_event_data",
3030
"spp_service_points",
3131
"theme_openspp_muk",
3232
# "spp_pos",
3333
# "spp_sms",
3434
"queue_job",
35-
"spp_change_request_add_children_demo",
35+
# "spp_change_request_add_children_demo",
3636
],
3737
"external_dependencies": {"python": ["faker"]},
3838
"data": [
3939
"security/ir.model.access.csv",
40-
"data/users_data.xml",
40+
# "data/users_data.xml",
4141
"data/sample_data.xml",
4242
"views/generate_data_view.xml",
43-
"views/generate_change_request_data_view.xml",
43+
# "views/generate_change_request_data_view.xml",
4444
"views/groups_view.xml",
4545
"views/individuals_view.xml",
4646
],

g2p_connect_demo/data/sample_data.xml

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -47,13 +47,13 @@
4747
</record>
4848

4949
<record model="spp.area" id="demo_center_201">
50-
<field name="code">201</field>
50+
<field name="code">C201</field>
5151
<field name="draft_name">Demo Center 201</field>
5252
<field name="kind" ref="g2p_connect_demo.center_area_kind" />
5353
<field name="parent_id" ref="demo_branch_2" />
5454
</record>
5555
<record model="spp.area" id="demo_center_202">
56-
<field name="code">202</field>
56+
<field name="code">C202</field>
5757
<field name="draft_name">Demo Center 202</field>
5858
<field name="kind" ref="g2p_connect_demo.center_area_kind" />
5959
<field name="parent_id" ref="demo_branch_2" />
@@ -119,5 +119,4 @@
119119
<field name="name">Agent 15</field>
120120
<field name="area_id" ref="demo_center_202" />
121121
</record>
122-
123122
</odoo>

g2p_connect_demo/models/__init__.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
from . import registrant
44
from . import generate_group
5-
from . import generate_change_request
5+
6+
# from . import generate_change_request
67
from . import individual
78
from . import group

g2p_connect_demo/models/generate_group.py

Lines changed: 32 additions & 38 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,28 +59,11 @@ 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"]
69-
sex_choice_range = ["Female", "Male"] * 50
65+
sex_choices = self.env["gender.type"].search([]).mapped("value")
66+
sex_choice_range = sex_choices * 50
7067
age_group_range = ["A", "C", "N"] * 2 + ["E"]
7168
group_size_range = list(range(1, 2)) * 2 + list(range(3, 5)) * 4 + list(range(6, 8))
7269

@@ -89,21 +86,16 @@ def _generate_sample_data(self, **kwargs):
8986
center_area_ids = center_areas.mapped("id")
9087

9188
for i in range(0, num_groups):
92-
locale = random.choice(locales)
9389
group_size = random.choice(group_size_range)
94-
last_name = fake[locale].last_name()
90+
last_name = fake.last_name()
9591

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

10597
head = res._generate_individual_data(
106-
fake[locale],
98+
fake,
10799
last_name,
108100
sex_choice_range,
109101
["A", "E"],
@@ -137,10 +129,10 @@ def _generate_sample_data(self, **kwargs):
137129
"is_registrant": True,
138130
"registration_date": registration_date,
139131
"kind": group_kind,
140-
"street": fake[locale].street_address(),
141-
"street2": fake[locale].street_name(),
142-
"city": fake[locale].city(),
143-
"zip": fake[locale].postcode(),
132+
"street": fake.street_address(),
133+
"street2": fake.street_name(),
134+
"city": fake.city(),
135+
"zip": fake.postcode(),
144136
"area_id": random.choice(center_area_ids),
145137
"bank_ids": bank_ids,
146138
}
@@ -152,7 +144,7 @@ def _generate_sample_data(self, **kwargs):
152144

153145
for i in range(group_size - 1):
154146
data = res._generate_individual_data(
155-
fake[locale],
147+
fake,
156148
last_name,
157149
sex_choice_range,
158150
age_group_range,
@@ -272,7 +264,9 @@ def _generate_individual_data(
272264
if random.randint(0, 3) == 1:
273265
lost_primary_source_income = True
274266

275-
dob = fake.date_between_dates(date_start=date_start, date_end=date_end).isoformat()
267+
dob = fake.date_between_dates(date_start=date_start, date_end=date_end)
268+
registration_date = fake.date_between_dates(date_start=dob, date_end=datetime.datetime.now()).isoformat()
269+
dob = dob.isoformat()
276270

277271
fullname = f"{first_name} {last_name}"
278272
bank_ids = []
Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,2 @@
11
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
22
g2p_generate_data_admin,Generate Data Admin Access,g2p_connect_demo.model_g2p_generate_data,g2p_registry_base.group_g2p_admin,1,1,1,1
3-
g2p_generate_change_request_data_admin,Generate Change Request Data Admin Access,g2p_connect_demo.model_g2p_generate_change_request_data,g2p_registry_base.group_g2p_admin,1,1,1,1

g2p_connect_demo/views/generate_data_view.xml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ Part of Openg2p. See LICENSE file for full copyright and licensing details.
3939
class="oe_stat_button"
4040
icon="fa-thumbs-o-up"
4141
name="generate_sample_data"
42-
attrs="{'invisible':[('state','!=','draft')]}"
42+
invisible="state != 'draft'"
4343
>
4444
<div class="o_form_field o_stat_info">
4545
<span class="o_stat_text">Generate</span>
@@ -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>

g2p_connect_demo/views/groups_view.xml

Lines changed: 6 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -29,42 +29,23 @@
2929
<field
3030
name="area_id"
3131
placeholder="Area"
32-
attrs="{'readonly':[('disabled','!=',False)]}"
32+
readonly="disabled != False"
3333
options="{'no_open': True, 'no_create': True}"
3434
/>
3535
<span class="o_form_label o_td_label" name="address_name">
3636
<b>Address</b>
3737
</span>
3838
<div>
39-
<field
40-
name="full_address"
41-
attrs="{'readonly':[('disabled','!=',False)]}"
42-
class="oe_read_only"
43-
/>
44-
<field
45-
name="street"
46-
placeholder="Street"
47-
attrs="{'readonly':[('disabled','!=',False)]}"
48-
class="oe_edit_only"
49-
/>
39+
<field name="full_address" readonly="disabled != False" class="oe_read_only" />
40+
<field name="street" placeholder="Street" readonly="disabled != False" class="oe_edit_only" />
5041
<field
5142
name="street2"
5243
placeholder="Street2"
53-
attrs="{'readonly':[('disabled','!=',False)]}"
54-
class="oe_edit_only"
55-
/>
56-
<field
57-
name="city"
58-
placeholder="City"
59-
attrs="{'readonly':[('disabled','!=',False)]}"
60-
class="oe_edit_only"
61-
/>
62-
<field
63-
name="zip"
64-
placeholder="Postal"
65-
attrs="{'readonly':[('disabled','!=',False)]}"
44+
readonly="disabled != False"
6645
class="oe_edit_only"
6746
/>
47+
<field name="city" placeholder="City" readonly="disabled != False" class="oe_edit_only" />
48+
<field name="zip" placeholder="Postal" readonly="disabled != False" class="oe_edit_only" />
6849
</div>
6950
</group>
7051
</xpath>

g2p_connect_demo/views/individuals_view.xml

Lines changed: 6 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -29,42 +29,23 @@
2929
<field
3030
name="area_id"
3131
placeholder="Area"
32-
attrs="{'readonly':[('disabled','!=',False)]}"
32+
readonly="disabled != False"
3333
options="{'no_open': True, 'no_create': True}"
3434
/>
3535
<span class="o_form_label o_td_label" name="address_name">
3636
<b>Address</b>
3737
</span>
3838
<div>
39-
<field
40-
name="full_address"
41-
attrs="{'readonly':[('disabled','!=',False)]}"
42-
class="oe_read_only"
43-
/>
44-
<field
45-
name="street"
46-
placeholder="Street"
47-
attrs="{'readonly':[('disabled','!=',False)]}"
48-
class="oe_edit_only"
49-
/>
39+
<field name="full_address" readonly="disabled != False" class="oe_read_only" />
40+
<field name="street" placeholder="Street" readonly="disabled != False" class="oe_edit_only" />
5041
<field
5142
name="street2"
5243
placeholder="Street2"
53-
attrs="{'readonly':[('disabled','!=',False)]}"
54-
class="oe_edit_only"
55-
/>
56-
<field
57-
name="city"
58-
placeholder="City"
59-
attrs="{'readonly':[('disabled','!=',False)]}"
60-
class="oe_edit_only"
61-
/>
62-
<field
63-
name="zip"
64-
placeholder="Postal"
65-
attrs="{'readonly':[('disabled','!=',False)]}"
44+
readonly="disabled != False"
6645
class="oe_edit_only"
6746
/>
47+
<field name="city" placeholder="City" readonly="disabled != False" class="oe_edit_only" />
48+
<field name="zip" placeholder="Postal" readonly="disabled != False" class="oe_edit_only" />
6849
</div>
6950
</group>
7051
</xpath>

scripts/sync_issue_to_odoo.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
db = os.getenv("ODOO_DB")
1212
username = os.getenv("ODOO_USERNAME") # Odoo login username
1313
password = os.getenv("ODOO_PASSWORD") # API Key is used
14-
project_name = "Action Against Hunger (ACF)" # Project name in Odoo
14+
project_name = "OpenSPP" # Project name in Odoo
1515

1616
# GitHub issue data, passed as script arguments
1717
issue_title = sys.argv[1]

0 commit comments

Comments
 (0)