示例#1
0
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
示例#2
0
    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