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