コード例 #1
0
ファイル: api.py プロジェクト: drieeem-tieeem/Server
def schedule_remove():
    data = request.form
    success, result, pill = schedule_error_check(data)
    if not success:
        return result

    pill_day_index = pill['day']
    pill_name = pill['name']
    pill.pop('day', None)
    pill.pop('name', None)

    #remove from pillbox
    user_profile = get_users().find_one({'_id': ObjectId(user_id_str)
                                         })  #hardcoded user
    pillbox_list = user_profile['pillbox']
    day = pillbox_list[pill_day_index]

    found = False
    for index, possiblity in enumerate(day):
        if possiblity['pill_id'] == pill['pill_id'] and possiblity[
                'time'] == pill['time']:
            day.pop(index)
            found = True

    pillbox_list[pill_day_index] = day
    get_users().find_one_and_update({'_id': user_profile['_id']},
                                    {'$set': {
                                        'pillbox': pillbox_list
                                    }})

    if found:
        return 'Success'
    else:
        return 'No pill with these parameters was found.'
コード例 #2
0
ファイル: api.py プロジェクト: drieeem-tieeem/Server
def schedule_add(data=None):
    if data == None:
        data = request.form
    success, result, pill = schedule_error_check(data)
    if not success:
        return result

    pill_day_index = pill['day']
    pill_name = pill['name']
    pill.pop('day', None)
    pill.pop('name', None)

    #add to pillbox
    user_profile = get_users().find_one({'_id': ObjectId(user_id_str)
                                         })  #hardcoded user
    pillbox_list = user_profile['pillbox']
    day = pillbox_list[pill_day_index]
    day.append(pill)
    pillbox_list[pill_day_index] = day
    get_users().find_one_and_update({'_id': user_profile['_id']},
                                    {'$set': {
                                        'pillbox': pillbox_list
                                    }})

    #return "Successfully added " + pill_name + " on day " + str(pill_day_index) + " at " + pill['time']
    return redirect(url_for('pillbox.index'), code=302)
コード例 #3
0
ファイル: api.py プロジェクト: drieeem-tieeem/Server
def schedule_clear_all():
    user_profile = get_users().find_one({'_id': ObjectId(user_id_str)
                                         })  #hardcoded user
    get_users().find_one_and_update({'_id': user_profile['_id']},
                                    {'$set': {
                                        'pillbox': pillbox_template
                                    }})

    return "Successfully cleared entire schedule"
コード例 #4
0
ファイル: api.py プロジェクト: drieeem-tieeem/Server
def seed_user():
    username = '******'
    user = get_users().find_one({'username': username})
    if not user:
        user = {}
        user['_id'] = ObjectId(user_id_str)
        user['username'] = username
        user[
            'password'] = '******'
        get_users().insert(user)

    update_users_schema()
    seed_random_pillbox(username)
    return "User curtis data reset."
コード例 #5
0
ファイル: api.py プロジェクト: drieeem-tieeem/Server
def reset_taken():
    user_profile = get_users().find_one({'_id': ObjectId(user_id_str)
                                         })  #hardcoded user
    pillbox_list = user_profile['pillbox']
    for day in pillbox_list:
        for pill_index, pill in enumerate(day):
            if 'taken' in pill and pill['taken']:
                pill.pop('taken', None)
                day[pill_index] = pill

    get_users().find_one_and_update({'_id': user_profile['_id']},
                                    {'$set': {
                                        'pillbox': pillbox_list
                                    }})

    return "User " + user_profile['username'] + "'s pillbox has been reset."
コード例 #6
0
ファイル: api.py プロジェクト: drieeem-tieeem/Server
def schedule_clear_day(day_index):
    try:
        day_index = int(day_index)
        if day_index not in range(7):
            return "ERROR: invalid day."
    except:
        return "ERROR: invalid day."

    user_profile = get_users().find_one({'_id': ObjectId(user_id_str)
                                         })  #hardcoded user
    pillbox_list = user_profile['pillbox']
    pillbox_list[day_index] = []
    get_users().find_one_and_update({'_id': user_profile['_id']},
                                    {'$set': {
                                        'pillbox': pillbox_list
                                    }})

    return "Successfully cleared day " + str(day_index) + "."
コード例 #7
0
ファイル: api.py プロジェクト: drieeem-tieeem/Server
def set_taken_auto():

    current_datetime = datetime.now()
    current_time = current_datetime.time()
    current_day = (current_datetime.weekday() + 1) % 7
    current_month = current_datetime.month
    current_year = current_datetime.year
    print(str(current_month) + " " + str(current_year))
    current_week_start = current_datetime.date() - timedelta(current_day)

    current_hour_str = current_datetime.strftime("%H:%M:%S")

    user_profile = get_users().find_one({'_id': ObjectId(user_id_str)
                                         })  #hardcoded user
    pillbox_list = user_profile['pillbox']

    for day_index in range(0, current_day + 1):
        day = pillbox_list[day_index]
        for pill_index, pill in enumerate(day):
            datestring = str(current_week_start.year) + "|" + str(
                current_week_start.month) + "|" + str(
                    current_week_start.day) + "|"
            pill_datetime = datetime.strptime(datestring + pill['time'],
                                              "%Y|%m|%d|%H:%M:%S")
            pill_datetime += timedelta(days=day_index)

            print(str(pill_datetime) + "<" + str(current_datetime))
            if pill_datetime < current_datetime:
                pill['taken'] = True
            day[pill_index] = pill
        pillbox_list[day_index] = day

    get_users().find_one_and_update({'_id': user_profile['_id']},
                                    {'$set': {
                                        'pillbox': pillbox_list
                                    }})

    result = ""
    for item in pillbox_list:
        result += str(item) + "\n"
    return "CURRENT DAY: " + str(
        current_day) + " TIME: " + current_hour_str + "\n\n" + result
コード例 #8
0
ファイル: api.py プロジェクト: drieeem-tieeem/Server
def schedule_add_frompage():
    data = request.form
    hour = data.getlist('hour')[0]
    minute = data.getlist('minute')[0]
    meridian = data.getlist('meridian')[0]
    hour = int(hour)
    minute = int(minute)
    if meridian == 'pm':
        hour = hour + 12

    hour = "%02d" % hour
    minute = "%02d" % minute

    name = data.getlist('name')[0]

    pill_obj = get_pills().find_one({'name': name})

    current_datetime = datetime.now()
    current_day = (current_datetime.weekday() + 1) % 7

    pill = {'pill_id': pill_obj['_id'], 'time': hour + ":" + minute + ":00"}

    #add to pillbox
    user_profile = get_users().find_one({'_id': ObjectId(user_id_str)
                                         })  #hardcoded user
    pillbox_list = user_profile['pillbox']
    day = pillbox_list[current_day]
    day.append(pill)
    pillbox_list[current_day] = day
    get_users().find_one_and_update({'_id': user_profile['_id']},
                                    {'$set': {
                                        'pillbox': pillbox_list
                                    }})

    #return "Successfully added " + pill_name + " on day " + str(pill_day_index) + " at " + pill['time']
    return redirect(url_for('pillbox.index'), code=302)
コード例 #9
0
ファイル: api.py プロジェクト: drieeem-tieeem/Server
def get_pillbox_simple():
    user_profile = get_users().find_one({'_id': ObjectId(user_id_str)
                                         })  #hardcoded user
    pillbox_list = user_profile['pillbox']

    pillbox = []
    for day in range(7):
        day = pillbox_list[day]
        for index, pill in enumerate(day):
            pill_obj = get_pills().find_one(pill['pill_id'])
            stripped_pill = {'time': pill['time'], 'name': pill_obj['name']}
            day[index] = stripped_pill
        sorted_day = sorted(day, key=lambda pill: pill['time'], reverse=False)
        pillbox.append(sorted_day)

    return str(pillbox)
コード例 #10
0
ファイル: api.py プロジェクト: drieeem-tieeem/Server
def get_pillbox_timesheet():
    user_profile = get_users().find_one({'_id': ObjectId(user_id_str)
                                         })  #hardcoded user
    pillbox_list = user_profile['pillbox']
    pillbox = []
    for day in range(7):
        day = pillbox_list[day]
        day_collections = {}
        for index, pill in enumerate(day):
            pill_obj = get_pills().find_one(pill['pill_id'])
            time = pill['time']
            name = pill_obj['name']
            if time in day_collections:
                day_collections[time].append(name)
            else:
                day_collections[time] = [name]
        pillbox.append(day_collections)

    return str(pillbox)
コード例 #11
0
ファイル: api.py プロジェクト: drieeem-tieeem/Server
def get_pilltimes(day_index, single=False):
    try:
        day_index = int(day_index)
        if day_index not in range(7):
            return "ERROR: invalid day."
    except:
        return "ERROR: invalid day."

    user_profile = get_users().find_one({'_id': ObjectId(user_id_str)
                                         })  #hardcoded user
    pillbox_list = user_profile['pillbox']
    time_list = []
    for pill in pillbox_list[day_index]:
        time = pill['time']
        if time not in time_list:
            pill_obj = get_pills().find_one({'_id': pill['pill_id']})
            pill['name'] = pill_obj['name']
            if 'taken' in pill_obj and pill_obj['taken']:
                pill['taken'] = 1
            else:
                pill['taken'] = 0
            #time_list.append(time)
            time_list.append(pill)

    pill_list = sorted(time_list, key=lambda pill: pill['time'], reverse=False)

    if single:
        current_time = datetime.now().time()
        for index, pill in enumerate(pill_list):
            if current_time <= datetime.strptime(pill['time'],
                                                 "%H:%M:%S").time():
                pill['time'] = pill['time'][0:5]
                pill.pop('pill_id', None)
                return str(pill)
        return "{}"
    else:
        return str(time_list)
コード例 #12
0
ファイル: api.py プロジェクト: drieeem-tieeem/Server
def get_pillbox_day(day_index):
    try:
        day_index = int(day_index)
        if day_index not in range(7):
            return "ERROR: invalid day."
    except:
        return "ERROR: invalid day."

    user_profile = get_users().find_one({'_id': ObjectId(user_id_str)
                                         })  #hardcoded user
    pillbox_list = user_profile['pillbox']
    day = pillbox_list[day_index]

    day_collection = {}
    for index, pill in enumerate(day):
        pill_obj = get_pills().find_one(pill['pill_id'])
        time = pill['time']
        name = pill_obj['name']
        if time in day_collection:
            day_collection[time].append(name)
        else:
            day_collection[time] = [name]

    return str(day_collection)