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()