Skip to content

Commit 931f5a3

Browse files
kneckinatorgonzalesedwin1123
authored andcommitted
fix: include enrollment_date in bulk SQL insert, hoist Date.today()
Set enrollment_date to current timestamp when state is 'enrolled' in the program membership SQL insert (computed field not triggered by raw SQL). Hoist fields.Date.today() outside the loop in cycle membership to avoid repeated calls per record.
1 parent 83965a2 commit 931f5a3

2 files changed

Lines changed: 10 additions & 4 deletions

File tree

spp_programs/models/cycle_membership.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -120,6 +120,7 @@ def _bulk_insert_on_conflict(self, vals_list, chunk_size=1000):
120120
cr = self.env.cr
121121
uid = self.env.uid
122122
total_inserted = 0
123+
today = fields.Date.today()
123124

124125
for i in range(0, len(vals_list), chunk_size):
125126
batch = vals_list[i : i + chunk_size]
@@ -132,7 +133,7 @@ def _bulk_insert_on_conflict(self, vals_list, chunk_size=1000):
132133
v["partner_id"],
133134
v["cycle_id"],
134135
v.get("state", "draft"),
135-
v.get("enrollment_date", fields.Date.today()),
136+
v.get("enrollment_date", today),
136137
uid,
137138
uid,
138139
]

spp_programs/models/program_membership.py

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -405,25 +405,30 @@ def _bulk_insert_on_conflict(self, vals_list, chunk_size=1000):
405405
uid = self.env.uid
406406
total_inserted = 0
407407

408+
now = fields.Datetime.now()
409+
408410
for i in range(0, len(vals_list), chunk_size):
409411
batch = vals_list[i : i + chunk_size]
410412
values = []
411413
params = []
412414
for v in batch:
413-
values.append("(%s, %s, %s, %s, %s, now(), now())")
415+
state = v.get("state", "draft")
416+
enrollment_date = now if state == "enrolled" else None
417+
values.append("(%s, %s, %s, %s, %s, %s, now(), now())")
414418
params.extend(
415419
[
416420
v["partner_id"],
417421
v["program_id"],
418-
v.get("state", "draft"),
422+
state,
423+
enrollment_date,
419424
uid,
420425
uid,
421426
]
422427
)
423428

424429
sql = """
425430
INSERT INTO spp_program_membership
426-
(partner_id, program_id, state,
431+
(partner_id, program_id, state, enrollment_date,
427432
create_uid, write_uid, create_date, write_date)
428433
VALUES {}
429434
ON CONFLICT (partner_id, program_id) DO NOTHING

0 commit comments

Comments
 (0)