def migrate_case_timed_schedule_instances(self): seen_case_ids = set() recipient = self.rule.memoized_actions[0].definition.recipients[0] for reminder in self.get_source_instances(): if reminder.case_id in seen_case_ids: self.source_duplicate_count += 1 continue seen_case_ids.add(reminder.case_id) instance = CaseTimedScheduleInstance( domain=self.rule.domain, recipient_type=recipient[0], recipient_id=recipient[1], current_event_num=reminder.current_event_sequence_num, schedule_iteration_num=reminder.schedule_iteration_num, next_event_due=reminder.next_fire, active=reminder.active, timed_schedule_id=self.schedule.schedule_id, start_date=reminder.start_date, case_id=reminder.case_id, rule_id=self.rule.pk, ) if reminder.active and reminder.error: self.schedule.move_to_next_event_not_in_the_past(instance) instance.save(force_insert=True)
def create_case_timed_schedule_instance(self, domain, case_id): instance = CaseTimedScheduleInstance( domain=domain, recipient_type=CaseScheduleInstanceMixin.RECIPIENT_TYPE_SELF, current_event_num=0, schedule_iteration_num=1, next_event_due=datetime(2018, 7, 1), active=True, timed_schedule_id=uuid.uuid4(), start_date=date(2018, 7, 1), case_id=case_id, rule_id=1, ) instance.save() self.addCleanup(instance.delete)