Ejemplo n.º 1
0
def migrate_custom_daily_schedule(handler, migrator):
    return TimedSchedule.create_custom_daily_schedule(
        handler.domain,
        [(get_timed_event(handler, event), get_content(handler, event)) for event in handler.events],
        total_iterations=handler.max_iteration_count,
        start_offset=handler.start_offset,
        extra_options=get_extra_scheduling_options(handler, migrator, include_utc_option=True),
        repeat_every=handler.schedule_length,
    )
Ejemplo n.º 2
0
 def _add_custom_daily_rule(self, content_list):
     event_and_content_objects = [
         (TimedEvent(day=i % 7, time=time(i * 2 % 24, 30 + i % 60)), content)
         for i, content in enumerate(content_list)
     ]
     schedule = TimedSchedule.create_custom_daily_schedule(
         self.domain,
         event_and_content_objects,
         repeat_every=2,
     )
     return self._add_rule(timed_schedule_id=schedule.schedule_id)
    def migrate_offset_based_start_date_schedule(handler, migrator):
        base_datetime = datetime(2000, 1, 1)
        running_datetime = datetime(2000, 1, 1)

        event_and_content_objects = []
        for event in handler.events:
            running_datetime += timedelta(days=event.day_num)
            running_datetime += timedelta(hours=event.fire_time.hour)
            running_datetime += timedelta(minutes=event.fire_time.minute)

            event_and_content_objects.append((TimedEvent(
                day=(running_datetime - base_datetime).days,
                time=running_datetime.time(),
            ), get_content(handler, event)))

        if handler.max_iteration_count == 1:
            repeat_every = event_and_content_objects[-1][0].day + 1
        elif repeat_every_override:
            repeat_every = repeat_every_override
        else:
            raise ValueError("Expected repeat_every_override")

        if len(event_and_content_objects
               ) == 1 and event_and_content_objects[0][0].day == 0:
            return TimedSchedule.create_simple_daily_schedule(
                handler.domain,
                event_and_content_objects[0][0],
                event_and_content_objects[0][1],
                total_iterations=handler.max_iteration_count,
                start_offset=handler.start_offset,
                extra_options=get_extra_scheduling_options(
                    handler, migrator, include_utc_option=True),
                repeat_every=repeat_every,
            )
        else:
            return TimedSchedule.create_custom_daily_schedule(
                handler.domain,
                event_and_content_objects,
                total_iterations=handler.max_iteration_count,
                start_offset=handler.start_offset,
                extra_options=get_extra_scheduling_options(
                    handler, migrator, include_utc_option=True),
                repeat_every=repeat_every,
            )