Skip to content

Commit ca3e2f9

Browse files
committed
feat(edi_core_oca): add cron jobs for archiving and deleting old EDI exchange records
1 parent 5cf4ce9 commit ca3e2f9

File tree

3 files changed

+46
-0
lines changed

3 files changed

+46
-0
lines changed

edi_core_oca/__manifest__.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@
2929
"data/ir_actions_server.xml",
3030
"data/sequence.xml",
3131
"data/edi_configuration.xml",
32+
"data/ir_cron_archive_old_edi_records.xml",
33+
"data/ir_cron_delete_old_archived_edi_records.xml",
3234
"security/res_groups.xml",
3335
"security/ir_model_access.xml",
3436
"views/edi_backend_views.xml",
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
<?xml version="1.0" encoding="utf-8" ?>
2+
<odoo noupdate="1">
3+
<record id="ir_cron_archive_old_edi_records" model="ir.cron">
4+
<field name="name">Archive Old EDI Exchange Records</field>
5+
<field name="model_id" ref="edi_oca.model_edi_exchange_record" />
6+
<field name="state">code</field>
7+
<field name="code">
8+
9+
cutoff_date = datetime.datetime.now() - datetime.timedelta(days=15)
10+
records = model.search([
11+
('create_date', '&lt;', cutoff_date),
12+
('active', '=', True)
13+
], limit=10000, order="create_date asc")
14+
if records:
15+
records.action_archive()
16+
</field>
17+
<field name="interval_number">1</field>
18+
<field name="interval_type">days</field>
19+
<field name="active" eval="True" />
20+
<field name="priority" eval="10" />
21+
</record>
22+
</odoo>
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
<?xml version="1.0" encoding="utf-8" ?>
2+
<odoo noupdate="1">
3+
<record id="ir_cron_delete_old_archived_edi_records" model="ir.cron">
4+
<field name="name">Delete Old Archived EDI Exchange Records</field>
5+
<field name="model_id" ref="edi_oca.model_edi_exchange_record" />
6+
<field name="state">code</field>
7+
<field name="code">
8+
9+
cutoff_date = datetime.datetime.now() - datetime.timedelta(days=30)
10+
records = model.search([
11+
('create_date', '&lt;', cutoff_date),
12+
('active', '=', False)
13+
], limit=100, order="create_date asc")
14+
if records:
15+
records.unlink()
16+
</field>
17+
<field name="interval_number">3</field>
18+
<field name="interval_type">hours</field>
19+
<field name="active" eval="True" />
20+
<field name="priority" eval="10" />
21+
</record>
22+
</odoo>

0 commit comments

Comments
 (0)