From 7344869e5d93697135301805b7426d4aeb9fd223 Mon Sep 17 00:00:00 2001 From: Oliver Yuan Date: Mon, 17 Apr 2023 20:36:48 +0800 Subject: [PATCH] [IMP] Improve ospp_slide modules --- addons/ospp_slide/__manifest__.py | 1 + addons/ospp_slide/data/ir_cron_data.xml | 15 +++++++++++++++ addons/ospp_slide/models/models.py | 24 +++++++++++++++++++++++- 3 files changed, 39 insertions(+), 1 deletion(-) create mode 100644 addons/ospp_slide/data/ir_cron_data.xml diff --git a/addons/ospp_slide/__manifest__.py b/addons/ospp_slide/__manifest__.py index 11f9767..b206828 100644 --- a/addons/ospp_slide/__manifest__.py +++ b/addons/ospp_slide/__manifest__.py @@ -27,6 +27,7 @@ 'security/security_groups.xml', 'security/ir.model.access.csv', 'data/ir_sequence_data.xml', + 'data/ir_cron_data.xml', 'views/views.xml', 'views/templates.xml', ], diff --git a/addons/ospp_slide/data/ir_cron_data.xml b/addons/ospp_slide/data/ir_cron_data.xml new file mode 100644 index 0000000..9d55956 --- /dev/null +++ b/addons/ospp_slide/data/ir_cron_data.xml @@ -0,0 +1,15 @@ + + + + Update Slide Channel + + code + model.update_slide_channel() + + + 1 + hours + -1 + + + diff --git a/addons/ospp_slide/models/models.py b/addons/ospp_slide/models/models.py index 3c7d687..7872d15 100644 --- a/addons/ospp_slide/models/models.py +++ b/addons/ospp_slide/models/models.py @@ -24,7 +24,29 @@ class SlideChannel(models.Model): shared_instance_demo_data = fields.Boolean('Shared Instance Demo Data', default=True) excluded_instance_demo_data = fields.Boolean('Excluded Instance Demo Data', default=False) - # @api.depends('slide_partner_ids') + @api.model + def update_slide_channel(self): + channel_obj = self.env['slide.channel'].sudo() + instance_obj = self.env['channel.instance'].sudo() + + channel_ids = channel_obj.search([('instance_arrangement', 'not in', ['no_need']), ('instance_base', '!=', False)]) + for channel_id in channel_ids: + channel_id.action_generate_instance() + + self.env.cr.commit() + + instance_ids = instance_obj.search([('instance_created', '!=', True)]) + for instance_id in instance_ids: + instance_id.action_generate_instance() + + self.env.cr.commit() + + instance_ids = instance_obj.search([('instance_created', '=', True), ('is_notified', '!=', True)]) + for instance_id in instance_ids: + instance_id.action_post_instance() + + return True + def action_generate_instance(self): instance_obj = self.env['channel.instance'].sudo() partner_obj = self.env['slide.channel.partner'].sudo()