def create_frequency(name="freq", slug="freq", nom=1, due=1, overdue=1): f = models.Frequency( name=name, slug=slug, nominal_interval=nom, due_interval=due, overdue_interval=overdue ) f.save() return f
def n_weekly(self, weeks=4): """Generate a frequency to be performed on the specific day of month with a 7 day window_start and 7 day window_end""" rule = recurrence.Rule(freq=recurrence.WEEKLY, interval=weeks) return models.Frequency( name="%s weekly" % weeks, slug="%s-weekly" % weeks, recurrences=recurrence.Recurrence( rrules=[rule], dtstart=timezone.datetime(2012, 1, 1, tzinfo=timezone.utc), ), window_end=7, window_start=7, )
def day_of_month(self, day=1): """Generate a frequency to be performed on the specific day of month with a 7 day window_start and 7 day window_end""" rule = recurrence.Rule(freq=recurrence.MONTHLY, bymonthday=day) return models.Frequency( name="Day of Month", slug="day-of-month", recurrences=recurrence.Recurrence( rrules=[rule], dtstart=timezone.datetime(2012, 1, 1, tzinfo=timezone.utc), ), window_end=7, window_start=7, )
def mwf(self): """Generate a MWF frequency with a 0 day window_start and 1 day window_end""" rule = recurrence.Rule( freq=recurrence.WEEKLY, byday=[recurrence.MO, recurrence.WE, recurrence.FR], ) return models.Frequency( name="MWF", slug="mwf", recurrences=recurrence.Recurrence( rrules=[rule], dtstart=timezone.datetime(2012, 1, 1, tzinfo=timezone.utc), ), window_start=0, window_end=1, )
def wed(self): """Generate a Wed frequency with a 1 day window_start and 1 day window_end""" rule = recurrence.Rule( freq=recurrence.WEEKLY, byday=[recurrence.WE], ) return models.Frequency( name="Wed", slug="wed", recurrences=recurrence.Recurrence( rrules=[rule], dtstart=timezone.datetime(2012, 1, 1, tzinfo=timezone.utc), ), window_start=1, window_end=1, )
def create_frequency(name=None, slug=None, interval=1, window_end=1, save=True): if name is None or slug is None: name = 'frequency_%04d' % get_next_id(models.Frequency.objects.order_by('id').last()) slug = name rule = recurrence.Rule(freq=recurrence.DAILY, interval=interval) f = models.Frequency( name=name, slug=slug, recurrences=recurrence.Recurrence( rrules=[rule], dtstart=timezone.get_current_timezone().localize(timezone.datetime(2012, 1, 1)), ), window_start=None, window_end=window_end, ) if save: f.save() return f