Beispiel #1
0
def get_slots(params):
    """выводит отформатированный список слотов за неделю или за день"""
    lst_of_intervals = []
    if params.week:
        param_start = local_to_utc(params.week)
        param_end = param_start + timedelta(days=7)

        intervals = get_intervals_from_db(params.path, params.filter,
                                          param_start, param_end)
        for interval_tuple in intervals:
            assert len(interval_tuple) == 1
            interval = interval_tuple[0]
            lst_of_intervals.append(utc_to_local(interval))
        lst_collapse_intervals = list(collapse_intervals(lst_of_intervals))
        lst_collapse_intervals.sort()
        for collapse_interval in lst_collapse_intervals:
            print(collapse_interval)
        return lst_collapse_intervals

    if params.day:
        param_start = local_to_utc(params.day)
        param_end = param_start + timedelta(days=1)

        intervals = get_intervals_from_db(params.path, params.filter,
                                          param_start, param_end)
        for interval_tuple in intervals:
            assert len(interval_tuple) == 1
            interval = interval_tuple[0]
            lst_of_intervals.append(utc_to_local(interval))
        lst_collapse_intervals = list(collapse_intervals(lst_of_intervals))
        lst_collapse_intervals.sort()
        for collapse_interval in lst_collapse_intervals:
            print(collapse_interval)
        return lst_collapse_intervals
Beispiel #2
0
def add_interval(params):
    """Добавление интервала в базу данных"""
    params_start = local_to_utc(params.start)
    params_end = local_to_utc(params.end)
    if params_start.minute % 15 == 0 and params_end.minute % 15 == 0:
        with db.create_connection(params.path) as con:
            cur = con.cursor()
            insert_list = []
            while params_start < params_end:
                cur.execute(
                    "SELECT start_interval FROM Slots WHERE start_interval == (?)",
                    [params_start])
                interval_list = cur.fetchall()
                if len(interval_list) > 0:
                    assert len(interval_list) == 1
                    interval_tuple = interval_list[0]
                    assert len(interval_tuple) == 1
                    interval = interval_tuple[0]
                    finish_interval = params_start + timedelta(minutes=15)
                    print('interval ({} - {}) already exist'.format(
                        utc_to_local_format(interval),
                        utc_to_local_format(finish_interval.isoformat())))
                else:
                    insert_list.append((params_start, ))

                params_start += timedelta(minutes=15)
            cur.executemany("INSERT INTO Slots (start_interval) VALUES (?)",
                            insert_list)
    else:
        mes = 'Введите интервал кратный 15 минутам'
        print(mes)
        return mes
Beispiel #3
0
def booking(params_for_booking):
    with db.create_connection(params_for_booking.path) as con:
        cur = con.cursor()
        cur.execute("INSERT INTO BookingInfo VALUES (NULL,?,?,?)",
                    ('eduard', '@email', 'new message'))
        cur.execute("SELECT MAX(id) AS Last FROM BookingInfo")
        booking_id = cur.fetchall()
        for x in booking_id:
            res = x[0]
        params_start = local_to_utc(params_for_booking.start)
        params_end = local_to_utc(params_for_booking.end)
        while params_start < params_end:
            cur.execute(
                "UPDATE Slots SET booking_id = (?) WHERE start_interval = (?)",
                (res, params_start))
            params_start += timedelta(minutes=15)
Beispiel #4
0
def booking(params):
    with db.create_connection(params.path) as con:
        cur = con.cursor()
        cur.execute("INSERT INTO BookingInfo VALUES (NULL,?,?,?)",
                    (params.name, params.email, params.topic))
        cur.execute("SELECT MAX(id) AS Last FROM BookingInfo")
        booking_id = cur.fetchall()
        for id in booking_id:
            res = id[0]
        params_start = local_to_utc(params.start)
        params_end = local_to_utc(params.end)
        while params_start < params_end:
            cur.execute(
                "UPDATE Slots SET booking_id = (?) WHERE start_interval = (?)",
                (res, params_start))
            params_start += timedelta(minutes=15)
Beispiel #5
0
def delete_interval(params):
    """удаляем интервал"""
    params_start = local_to_utc(params.start)
    params_end = local_to_utc(params.end)
    QUERY = " FROM Slots WHERE (?) <= start_interval AND (?) >= start_interval AND booking_id "
    if params_start.minute % 15 == 0 and params_end.minute % 15 == 0:
        with db.create_connection(params.path) as con:
            cur = con.cursor()

            cur.execute("DELETE" + QUERY + "is null",
                        [params_start, params_end])
            cur.execute("SELECT start_interval" + QUERY + "NOT null",
                        [params_start, params_end])
            for result in cur:
                print("""Can't delete booked interval: {}""".format(result))
    else:
        print('Введите интервал кратный 15 минутам')
Beispiel #6
0
def delete_day(params):
    """удаляет незанятые интервалы дня"""
    params_start = local_to_utc(params.date)
    params_end = params_start + timedelta(days=1)
    QUERY = " FROM Slots WHERE (?) <= start_interval AND (?) >= start_interval AND booking_id "
    with db.create_connection(params.path) as con:
        cur = con.cursor()

        cur.execute("DELETE" + QUERY + "is null", [params_start, params_end])
        cur.execute("SELECT start_interval" + QUERY + "NOT null",
                    [params_start, params_end])
        for result in cur:
            print("""Can't delete booked interval: {}""".format(result))