def timeslot_offset_options(interval=None, start_time=None, end_delta=None, fmt=None): """ Create a list of time slot options for use in swingtime forms. The list is comprised of 2-tuples containing the number of seconds since the start of the day and a 12-hour temporal representation of that offset. """ interval, start_time, end_delta, fmt = get_timeslot_defaults(interval, start_time, end_delta, fmt) dt = datetime.combine(date.today(), time(0)) dtstart = datetime.combine(dt.date(), start_time) dtend = dtstart + end_delta options = [] delta = timedelta_to_total_seconds(dtstart - dt) seconds = timedelta_to_total_seconds(interval) while dtstart <= dtend: options.append((delta, dtstart.strftime(fmt))) dtstart += interval delta += seconds return options
def add_occurrence_permission_check(request): return request.user.has_perm("%s.add_occurrence" % CALENDAR_APP_LABEL) change_event_permission_check = getattr(settings, "CHANGE_EVENT_PERMISSION_CHECK", None) if not change_event_permission_check: def change_event_permission_check(request): return request.user.has_perm("%s.change_event" % CALENDAR_APP_LABEL) # ---------------------------------------------------------------------------- MINUTES_INTERVAL = getattr(settings, "TIMESLOT_INTERVAL", TIMESLOT_INTERVAL).seconds // 60 SECONDS_INTERVAL = timedelta_to_total_seconds( getattr(settings, "DEFAULT_OCCURRENCE_DURATION", DEFAULT_OCCURRENCE_DURATION) ) def get_timeslot_defaults(interval, start_time, end_delta, fmt): if not interval: interval = getattr(settings, "TIMESLOT_INTERVAL", TIMESLOT_INTERVAL) if not start_time: start_time = getattr(settings, "TIMESLOT_START_TIME", TIMESLOT_START_TIME) if not end_delta: end_delta = getattr(settings, "TIMESLOT_END_TIME_DURATION", TIMESLOT_END_TIME_DURATION) if not fmt: fmt = getattr(settings, "TIMESLOT_TIME_FORMAT", TIMESLOT_TIME_FORMAT) return interval, start_time, end_delta, fmt