Beispiel #1
0
def refreshtable(profileid=None, inputdate=None):

    if not profileid:
        profileid = request.args.get('profileid')

    if not inputdate:
        inputdate = request.args.get('inputdate', datetime.date.today())

    profile_obj = Profile.query.get(profileid)

    age = (datetime.date.today() - profile_obj.birthdate).days / 365

    ref_obj = Reference.query.filter(Reference.min_age < age).filter(
        Reference.max_age > age).first()

    cal_obj = Calorie.query.filter(Calorie.min_age < age).filter(
        Calorie.max_age > age).first()

    nutrient_dict = {
        'carbohydrates': 'Carbohydrates (g)',
        'fiber': 'Total Fibre (g)',
        'fat': 'Fat (g)',
        'protein': 'Protein (g)',
        'vitA': 'Vitamin A (μg)',
        'vitC': 'Vitamin C (mg)',
        'vitD': 'Vitamin D (μg)',
        'vitE': 'Vitamin E (mg)',
        'vitB6': 'Vitamin B6 (mg)',
        'vitB12': 'Vitamin B12 (μg)',
        'thiamin': 'Thiamin (mg)',
        'riboflavin': 'Riboflavin (mg)',
        'niacin': 'Niacin (mg)',
        'folate': 'Folate(μg)',
        'calcium': 'Calcium (mg)',
        'copper': 'Copper (μg)',
        'iron': 'Iron (mg)',
        'magnesium': 'Magnesium (mg)',
        'phosphorus': 'Phosphorus (mg)',
        'selenium': 'Selemium (μg)',
        'zinc': 'Zinc (mg)',
        'potassium': 'Potassium (g)',
        'sodium': 'Sodium (g)'
    }

    macro_dict = {
        'carbohydrates': 'Carbohydrates (g)',
        'fiber': 'Total Fibre (g)',
        'fat': 'Fat (g)',
        'protein': 'Protein (g)'
    }

    vitamin_dict = {
        'vitA': 'Vitamin A (μg)',
        'vitC': 'Vitamin C (mg)',
        'vitD': 'Vitamin D (μg)',
        'vitE': 'Vitamin E (mg)',
        'vitB6': 'Vitamin B6 (mg)',
        'vitB12': 'Vitamin B12 (μg)',
        'thiamin': 'Thiamin (mg)',
        'riboflavin': 'Riboflavin (mg)',
        'niacin': 'Niacin (mg)',
        'folate': 'Folate(μg)'
    }

    element_dict = {
        'calcium': 'Calcium (mg)',
        'copper': 'Copper (μg)',
        'iron': 'Iron (mg)',
        'magnesium': 'Magnesium (mg)',
        'phosphorus': 'Phosphorus (mg)',
        'selenium': 'Selemium (μg)',
        'zinc': 'Zinc (mg)',
        'potassium': 'Potassium (g)',
        'sodium': 'Sodium (g)'
    }

    rec_obj = Record.get_records_from_db(profileid, inputdate)

    total_nutrients = Record.calculate_total(rec_obj)

    percent_nutrients = {}

    for key, value in total_nutrients.items():

        if key == "calories":
            percent_nutrients[key] = round(
                total_nutrients[key] / cal_obj.__dict__["calories_modactive"] *
                100, 1)

        elif value == 0 or not ref_obj.__dict__.get(key, None):
            percent_nutrients[key] = 0

        else:
            percent_nutrients[key] = round(
                total_nutrients[key] / ref_obj.__dict__[key] * 100, 1)

    return profile_obj, ref_obj, cal_obj, nutrient_dict, rec_obj, total_nutrients, inputdate, macro_dict, vitamin_dict, element_dict, percent_nutrients