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)
Exemplo n.º 2
0
 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)
Exemplo n.º 3
0
 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)