Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit d9b0ba1

Browse files
committedDec 23, 2024·
[MIG] kyc: Migration to 17.0
1 parent f4cee98 commit d9b0ba1

15 files changed

+179
-187
lines changed
 

‎kyc/__manifest__.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
{
55
"name": "Know Your Customer",
6-
"version": "15.0.1.0.0",
6+
"version": "17.0.1.0.0",
77
"summary": "Know Your Customer (KYC).",
88
"author": "ForgeFlow",
99
"website": "https://github.com/ForgeFlow/know-your-customer",

‎kyc/data/cron.xml

+30-30
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,32 @@
11
<odoo noupdate="1">
2-
<record id="ir_cron_kyc_scan_partner" model="ir.cron">
3-
<field name="name">KYC Auto Scan Partners</field>
4-
<field name="model_id" ref="model_res_partner" />
5-
<field name="state">code</field>
6-
<field name="code">model.auto_scan_partners(period=30)</field>
7-
<field name="interval_number">1</field>
8-
<field name="interval_type">days</field>
9-
<field name="numbercall">-1</field>
10-
<field name="active">False</field>
11-
</record>
12-
<record id="ir_cron_kyc_ongoing_monitoring" model="ir.cron">
13-
<field name="name">KYC Auto Ongoing Monitoring</field>
14-
<field name="model_id" ref="model_res_partner" />
15-
<field name="state">code</field>
16-
<field name="code">model.auto_ongoing_monitoring()</field>
17-
<field name="interval_number">1</field>
18-
<field name="interval_type">days</field>
19-
<field name="numbercall">-1</field>
20-
<field name="active">False</field>
21-
</record>
22-
<record id="ir_cron_kyc_reset_expired" model="ir.cron">
23-
<field name="name">KYC Reset Expired</field>
24-
<field name="model_id" ref="model_res_partner" />
25-
<field name="state">code</field>
26-
<field name="code">model.cron_kyc_reset_expired()</field>
27-
<field name="interval_number">1</field>
28-
<field name="interval_type">days</field>
29-
<field name="numbercall">-1</field>
30-
<field name="active">True</field>
31-
</record>
2+
<record id="ir_cron_kyc_scan_partner" model="ir.cron">
3+
<field name="name">KYC Auto Scan Partners</field>
4+
<field name="model_id" ref="model_res_partner" />
5+
<field name="state">code</field>
6+
<field name="code">model.auto_scan_partners(period=30)</field>
7+
<field name="interval_number">1</field>
8+
<field name="interval_type">days</field>
9+
<field name="numbercall">-1</field>
10+
<field name="active">False</field>
11+
</record>
12+
<record id="ir_cron_kyc_ongoing_monitoring" model="ir.cron">
13+
<field name="name">KYC Auto Ongoing Monitoring</field>
14+
<field name="model_id" ref="model_res_partner" />
15+
<field name="state">code</field>
16+
<field name="code">model.auto_ongoing_monitoring()</field>
17+
<field name="interval_number">1</field>
18+
<field name="interval_type">days</field>
19+
<field name="numbercall">-1</field>
20+
<field name="active">False</field>
21+
</record>
22+
<record id="ir_cron_kyc_reset_expired" model="ir.cron">
23+
<field name="name">KYC Reset Expired</field>
24+
<field name="model_id" ref="model_res_partner" />
25+
<field name="state">code</field>
26+
<field name="code">model.cron_kyc_reset_expired()</field>
27+
<field name="interval_number">1</field>
28+
<field name="interval_type">days</field>
29+
<field name="numbercall">-1</field>
30+
<field name="active">True</field>
31+
</record>
3232
</odoo>

‎kyc/data/sequence.xml

+18-18
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,20 @@
11
<odoo noupdate="1">
2-
<record id="sequence_kyc_process_log" model="ir.sequence">
3-
<field name="name">KYC Process Log sequence</field>
4-
<field name="code">kyc.process.log</field>
5-
<field name="prefix">KPL</field>
6-
<field name="padding">5</field>
7-
<field eval="1" name="number_next" />
8-
<field eval="1" name="number_increment" />
9-
<field eval="False" name="company_id" />
10-
</record>
11-
<record id="sequence_kyc_status_override_log" model="ir.sequence">
12-
<field name="name">KYC Status Override Log sequence</field>
13-
<field name="code">kyc.status.override.log</field>
14-
<field name="prefix">KSOL</field>
15-
<field name="padding">5</field>
16-
<field eval="1" name="number_next" />
17-
<field eval="1" name="number_increment" />
18-
<field eval="False" name="company_id" />
19-
</record>
2+
<record id="sequence_kyc_process_log" model="ir.sequence">
3+
<field name="name">KYC Process Log sequence</field>
4+
<field name="code">kyc.process.log</field>
5+
<field name="prefix">KPL</field>
6+
<field name="padding">5</field>
7+
<field eval="1" name="number_next" />
8+
<field eval="1" name="number_increment" />
9+
<field eval="False" name="company_id" />
10+
</record>
11+
<record id="sequence_kyc_status_override_log" model="ir.sequence">
12+
<field name="name">KYC Status Override Log sequence</field>
13+
<field name="code">kyc.status.override.log</field>
14+
<field name="prefix">KSOL</field>
15+
<field name="padding">5</field>
16+
<field eval="1" name="number_next" />
17+
<field eval="1" name="number_increment" />
18+
<field eval="False" name="company_id" />
19+
</record>
2020
</odoo>

‎kyc/models/kyc_log.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,8 @@ class KYCStatusOverrideLog(models.Model):
4343
"kyc.status.override.log"
4444
),
4545
)
46-
old_status = fields.Char("Old Status")
47-
new_status = fields.Char("New Status")
46+
old_status = fields.Char()
47+
new_status = fields.Char()
4848
override_reason = fields.Char()
4949
author_id = fields.Many2one("res.users")
5050
partner_id = fields.Many2one("res.partner", "Contact")

‎kyc/models/kyc_ubo.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ class KYCUBO(models.Model):
88
_name = "kyc.ubo"
99
_description = "KYC Ultimate Beneficial Owner"
1010

11-
name = fields.Char(required=1)
12-
birthdate = fields.Date(required=1)
11+
name = fields.Char(required=True)
12+
birthdate = fields.Date(required=True)
1313
partner_id = fields.Many2one("res.partner", string="Contact")
1414
kyc_last_scan_id = fields.Char(string="Last Scan ID")

‎kyc/models/res_company.py

+3-2
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,9 @@ class ResCompany(models.Model):
3232
kyc_passport_not_required_country_group_id = fields.Many2one(
3333
comodel_name="res.country.group",
3434
string="KYC Countries with Passport not Required",
35-
help="If a partner is going to be scanned and it's part of any of the countries present"
36-
" in the group, it won't require the passport when scanning the partner.",
35+
help="If a partner is going to be scanned and it's part "
36+
"of any of the countries present in the group, "
37+
"it won't require the passport when scanning the partner.",
3738
readonly=False,
3839
)
3940
# TODO: make this configurable in settings wizard.

‎kyc/models/res_config_settings.py

+3-2
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,8 @@ class ResConfigSettings(models.TransientModel):
2727
kyc_passport_not_required_country_group_id = fields.Many2one(
2828
related="company_id.kyc_passport_not_required_country_group_id",
2929
string="KYC Countries with Passport not Required",
30-
help="If a partner is going to be scanned and it's part of any of the countries present"
31-
" in the group, it won't require the passport when scanning the partner.",
30+
help="If a partner is going to be scanned and it's part "
31+
"of any of the countries present in the group, "
32+
"it won't require the passport when scanning the partner.",
3233
readonly=False,
3334
)

‎kyc/models/res_partner.py

+7-5
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,7 @@ def _compute_kyc_company_passport_required(self):
143143
False
144144
if rec.is_company
145145
and rec.country_id.id
146-
in self.env.company.kyc_passport_not_required_country_group_id.country_ids.ids
146+
in self.env.company.kyc_passport_not_required_country_group_id.country_ids.ids # noqa: E501
147147
else True
148148
)
149149

@@ -161,8 +161,10 @@ def _kyc_accept_transaction(self, _record, raise_if_not=True):
161161
accept = not self.kyc_is_expired and self.kyc_status == "ok"
162162
if not accept and raise_if_not:
163163
raise UserError(
164-
_("%s's KYC status ('%s') is not valid or it is expired.")
165-
% (self.name, self.kyc_status)
164+
_(
165+
f"{self.name}'s KYC status ('{self.kyc_status}') is not valid "
166+
"or it is expired."
167+
)
166168
)
167169
return accept
168170

@@ -338,7 +340,7 @@ def _get_domain_auto_scan_partners(self):
338340

339341
@api.model
340342
def auto_scan_partners(self, domain=False, period=30):
341-
auto_commit = not getattr(threading.currentThread(), "testing", False)
343+
auto_commit = not getattr(threading.current_thread(), "testing", False)
342344
cut_date = fields.Datetime.today() - timedelta(days=period)
343345
if not domain:
344346
domain = self._get_domain_auto_scan_partners()
@@ -425,7 +427,7 @@ def action_kyc_ongoing_monitoring(self, is_auto_call=False):
425427
)
426428
vals = {
427429
"kyc_status": kyc_status,
428-
"kyc_next_ongoing_monitoring": self._get_next_ongoing_monitoring_from_response(
430+
"kyc_next_ongoing_monitoring": self._get_next_ongoing_monitoring_from_response( # noqa: E501
429431
response
430432
),
431433
}

‎kyc/tests/common.py

+12-2
Original file line numberDiff line numberDiff line change
@@ -59,8 +59,18 @@ def setUp(self):
5959
)
6060
self.env.company.kyc_webservice_backend_id = self.webservice
6161

62-
self.country1 = self.env["res.country"].create({"name": "My Country 1"})
63-
self.country2 = self.env["res.country"].create({"name": "My Country 2"})
62+
self.country1 = self.env["res.country"].create(
63+
{
64+
"name": "My Country 1",
65+
"code": "C1",
66+
}
67+
)
68+
self.country2 = self.env["res.country"].create(
69+
{
70+
"name": "My Country 2",
71+
"code": "C2",
72+
}
73+
)
6474

6575
self.country_group = self.env["res.country.group"].create(
6676
{

‎kyc/tests/test_kyc.py

+5-5
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ def test_02_expiring_warning(self):
3434
self.assertFalse(self.test_contact.kyc_is_expired)
3535
# About to expire:
3636
self.test_contact.kyc_last_scan = datetime(2022, 1, 27, 9, 0)
37-
self.test_contact.invalidate_cache()
37+
self.test_contact.invalidate_recordset()
3838
self.assertTrue(self.test_contact.kyc_is_about_expire)
3939
self.assertFalse(self.test_contact.kyc_is_expired)
4040
search_res = self.partner_model.search([("kyc_is_about_expire", "=", True)])
@@ -43,7 +43,7 @@ def test_02_expiring_warning(self):
4343
self.assertTrue(self.test_contact not in search_res)
4444
# Just expired:
4545
self.test_contact.kyc_last_scan = datetime(2022, 1, 26, 9, 0)
46-
self.test_contact.invalidate_cache()
46+
self.test_contact.invalidate_recordset()
4747
self.assertFalse(self.test_contact.kyc_is_about_expire)
4848
self.assertTrue(self.test_contact.kyc_is_expired)
4949
search_res = self.partner_model.search([("kyc_is_about_expire", "=", True)])
@@ -73,21 +73,21 @@ def test_04_reset_expired_cron(self):
7373
self._simulate_scan_partner()
7474
# About to expire.
7575
self.test_contact.kyc_last_scan -= timedelta(days=360)
76-
self.test_contact.invalidate_cache()
76+
self.test_contact.invalidate_recordset()
7777
self.assertTrue(self.test_contact.kyc_is_about_expire)
7878
self.assertFalse(self.test_contact.kyc_is_expired)
7979
self.assertEqual(self.test_contact.kyc_status, "ok")
8080
self.partner_model.cron_kyc_reset_expired()
8181
self.assertEqual(self.test_contact.kyc_status, "ok")
8282
# Expired.
8383
self.test_contact.kyc_last_scan -= timedelta(days=50)
84-
self.test_contact.invalidate_cache()
84+
self.test_contact.invalidate_recordset()
8585
self.assertFalse(self.test_contact.kyc_is_about_expire)
8686
self.assertTrue(self.test_contact.kyc_is_expired)
8787
self.assertEqual(self.test_contact.kyc_status, "ok")
8888
self.partner_model.cron_kyc_reset_expired()
8989
self.assertEqual(self.test_contact.kyc_status, "pending")
90-
self.test_contact.invalidate_cache()
90+
self.test_contact.invalidate_recordset()
9191
self.assertTrue(self.test_contact.kyc_is_expired)
9292
search_res = self.partner_model.search([("kyc_is_expired", "=", True)])
9393
self.assertTrue(self.test_contact in search_res)

‎kyc/views/kyc_log_view.xml

+1-4
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,7 @@
2222
<field name="partner_id" />
2323
<field name="author_id" />
2424
<field name="req_data" />
25-
<field
26-
name="scan_id"
27-
attrs="{'invisible': [('scan_id', '=', False)]}"
28-
/>
25+
<field name="scan_id" invisible="not scan_id" />
2926
<field name="type" />
3027
</group>
3128
<notebook>

0 commit comments

Comments
 (0)