diff options
Diffstat (limited to 'nutrinoweb/controllers/sparetime.py')
-rw-r--r-- | nutrinoweb/controllers/sparetime.py | 283 |
1 files changed, 196 insertions, 87 deletions
diff --git a/nutrinoweb/controllers/sparetime.py b/nutrinoweb/controllers/sparetime.py index f122767..beda038 100644 --- a/nutrinoweb/controllers/sparetime.py +++ b/nutrinoweb/controllers/sparetime.py @@ -10,24 +10,59 @@ import database_manager #Avatar import import Avatar -IM_PATH = ['../static/images/journal/jauge-energie.png'] - @app.route('/sparetime', methods=['GET', 'POST']) def sparetime(): database_manager.init_db('activity') database_manager.load_inputfileactivities() entries = database_manager.entriessparetime() content = [ ] + position = [70, 0] # POST if request.method == 'POST': if 'activity' in request.form: + i = Avatar.Character(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, position) + i.load_status() result = request.form['activity'] factor = float(request.form['time']) - position = calculateTime(factor) pathi = '../../static/images/journal/activities/' + result + '.png' - _result = calculateDimension(factor, result, entries) - cont = { - 'image': IM_PATH, + _result = calculateDimension(factor, result, entries, i) + + #calculate new position for the sun + startfactor = i.Time + positionstart = calculateTime(startfactor) + timefactor = factor + startfactor + if (timefactor >= 720.0): + timefactor = 0.0 + newPosition = calculateTime(timefactor) + i.Position = newPosition + i.Time = timefactor + + #calculate time + daytime = "am" + hours = int(round(i.Time//60)) + 8 + minutes = int((i.Time % 60)) + if (minutes == 0): + minutes = "00" + else: + minutes = str(minutes) + if (hours > 11): + daytime = "pm" + if (hours > 12): + hours = hours - 12 + time = str(hours) + ":" + minutes + " " + daytime + + + #Start and Endposition for the sun + positionSun = { + 'positionX': float(newPosition[0]), + 'positionstartX': float(positionstart[0]), + 'positionY': float(newPosition[1]), + 'positionstartY': float(positionstart[1]), + 'timeString': time + } + + + progressbar = { 'water': _result[0], 'energie': _result[1], 'vitamine': _result[2], @@ -38,8 +73,17 @@ def sparetime(): 'constructionstart': _result[7], 'pathimg': pathi, } - content.append(cont) - _content = { 'content': content, 'result' : result, 'position': position } + content.append(progressbar) + + _content = { 'progressbar': content, 'positionSun': positionSun } + + #log activity + line = str(factor) + ' min. ' + result + database_manager.write_log(line, 's') + + #save status in status.json + i.save_status() + # render result return render('nutrinoweb/main.html', **_content) @@ -51,114 +95,75 @@ def sparetime(): _result = '' # _content = { - 'title': _('What do you want to play?'), + 'title': _('What do you want to do?'), 'activities': entries, 'result': _result, } # render result return render('nutrinoweb/sparetime.html', **_content) -def calculateTime(f): - if f == 15.0: - position = [60 , 5] - elif f == 30.0: - position = [50 , 10] - elif f == 45.0: - position = [40 , 15] - elif f == 60.0: - position = [30 , 20] - else: - pass - return position - -def calculateDimension(factor, result, entries): +def calculateDimension(factor, result, entries, i): water = None energie = None vitamine = None construction = None vitstart = None - instance = Avatar.Character() - eng = instance.load_status() if result != None and entries != None: - eng = instance.load_status() for entry in entries: if result in entry['title']: + #part water - _water = controllValue(float(eng['water']) - ((factor*calculateWater(float(entry['water']))) / 2)) - water = calculateHeight(_water) + waterstart = i.Water + i.Water = controllValue(i.Water - ((factor*calculateWater(float(entry['water']))) / 2)) + water = calculateHeight(i.Water) - #part energie - _energie = controllValue(float(eng['energie']) - (factor*calculateEnergie(float(entry['energie'])))) - energie = calculateHeight(_energie) + #part energie + energiestart = i.Energie + i.Energie = controllValue(i.Energie - (factor*calculateEnergie(float(entry['energie'])))) + energie = calculateHeight(i.Energie) #part vitamine - _vitamine = calculateVitamine(1, entry, eng) - vitamine = calculateHeight(_vitamine[0]) + vitaminestart = i.Vit_total + i.Vit_total = calculateVitamine(1, entry, i) + vitamine = calculateHeight(i.Vit_total) #part construction - _construction = controllValue(float(eng['construction']) - (factor*calculateConstruction(float(entry['protein'])))) - construction = calculateHeight(_construction) - - status = { - "water": _water, - "energie": _energie, - "calcium": _vitamine[1], - "iron" : _vitamine[2], - "magnesium": _vitamine[3], - "phosphorus": _vitamine[4], - "potassium": _vitamine[5], - "sodium": _vitamine[6], - "zinc": _vitamine[7], - "copper": _vitamine[8], - "vit_c": _vitamine[9], - "thiamin": _vitamine[10], - "riboflavin": _vitamine[11], - "niacin": _vitamine[12], - "panto_acid": _vitamine[13], - "vit_b6": _vitamine[14], - "folate_tot": _vitamine[15], - "vit_b12": _vitamine[16], - "vit_a": _vitamine[17], - "vit_e": _vitamine[18], - "vit_d": _vitamine[19], - "vit_total": _vitamine[0], - "construction": _construction - } - - instance.save_status(status) + constructionstart = i.Construction + i.Construction = controllValue(i.Construction - (factor*calculateConstruction(float(entry['protein'])))) + construction = calculateHeight(i.Construction) + else: pass - _result = [water, energie, vitamine, construction, calculateHeight(float(eng['water'])), calculateHeight(float(eng['energie'])), calculateHeight(float(eng['vit_total'])), calculateHeight(float(eng['construction']))] + _result = [water, energie, vitamine, construction, calculateHeight(waterstart), calculateHeight(energiestart), calculateHeight(vitaminestart), calculateHeight(constructionstart)] return _result def calculateEnergie(energie): height = energie/4.0 return height -def calculateVitamine(f, entry, status): - calcium = controllValue(float(status['calcium']) - (f*(float(entry['calcium']) / 9.0))) - iron = controllValue(float(status['iron']) - (f*(float(entry['iron']) / 0.125))) - magnesium = controllValue(float(status['magnesium']) - (f*(float(entry['magnesium']) / 2.1))) - phosphorus = controllValue(float(status['phosphorus']) - (f*(float(entry['phosphorus']) / 10))) - potassium = controllValue(float(status['potassium']) - (f*(float(entry['potassium']) / 15.5))) - sodium = controllValue(float(status['sodium']) - (f*(float(entry['sodium']) / 4.85))) - zinc = controllValue(float(status['zinc']) - (f*(float(entry['zinc']) / 0.08))) - copper = controllValue(float(status['copper']) - (f*(float(entry['copper']) / 0.0115))) - vit_c = controllValue(float(status['vit_c']) - (f*(float(entry['vit_c']) / 0.85))) - thiamin = controllValue(float(status['thiamin']) - (f*(float(entry['thiamin']) / 0.012))) - riboflavin = controllValue(float(status['riboflavin']) - (f*(float(entry['riboflavin']) / 0.011))) - niacin = controllValue(float(status['niacin']) - (f*(float(entry['niacin']) / 0.13))) - panto_acid = controllValue(float(status['panto_acid']) - (f*(float(entry['panto_acid']) / 0.05))) - vit_b6 = controllValue(float(status['vit_b6']) - (f*(float(entry['vit_b6']) / 0.0085))) - folate_tot = controllValue(float(status['folate_tot']) - (f*(float(entry['folate_tot']) / 3.5))) - vit_b12 = controllValue(float(status['vit_b12']) - (f*(float(entry['vit_b12']) / 0.019))) - vit_a = controllValue(float(status['vit_a']) - (f*(float(entry['vit_a']) / 0.11))) - vit_e = controllValue(float(status['vit_e']) - (f*(float(entry['vit_e']) / 0.05))) - vit_d = controllValue(float(status['vit_d']) - (f*(float(entry['vit_d']) / 0.315))) - - height = (calcium + iron + magnesium + phosphorus + potassium + sodium + zinc + copper + vit_c + thiamin + riboflavin + niacin + panto_acid + vit_b6 + folate_tot + vit_b12 + vit_a + vit_e + vit_d)/19.0 - height = [height, calcium, iron, magnesium, phosphorus, potassium, sodium, zinc, copper, vit_c, thiamin, riboflavin, niacin, panto_acid, vit_b6, folate_tot, vit_b12, vit_a, vit_e, vit_d] +def calculateVitamine(f, entry, i): + i.Calcium = controllValue(i.Calcium - (f*(float(entry['calcium']) / 9.0))) + i.Iron = controllValue(i.Iron - (f*(float(entry['iron']) / 0.125))) + i.Magnesium = controllValue(i.Magnesium- (f*(float(entry['magnesium']) / 2.1))) + i.Phosphorus = controllValue(i.Phosphorus - (f*(float(entry['phosphorus']) / 10))) + i.Potassium = controllValue(i.Potassium - (f*(float(entry['potassium']) / 15.5))) + i.Sodium = controllValue(i.Sodium - (f*(float(entry['sodium']) / 4.85))) + i.Zinc = controllValue(i.Zinc - (f*(float(entry['zinc']) / 0.08))) + i.Copper = controllValue(i.Copper - (f*(float(entry['copper']) / 0.0115))) + i.Vit_c = controllValue(i.Vit_c - (f*(float(entry['vit_c']) / 0.85))) + i.Thiamin = controllValue(i.Thiamin - (f*(float(entry['thiamin']) / 0.012))) + i.Riboflavin = controllValue(i.Riboflavin - (f*(float(entry['riboflavin']) / 0.011))) + i.Niacin = controllValue(i.Niacin - (f*(float(entry['niacin']) / 0.13))) + i.Panto_acid = controllValue(i.Panto_acid - (f*(float(entry['panto_acid']) / 0.05))) + i.Vit_b6 = controllValue(i.Vit_b6 - (f*(float(entry['vit_b6']) / 0.0085))) + i.Folate_tot = controllValue(i.Folate_tot - (f*(float(entry['folate_tot']) / 3.5))) + i.Vit_b12 = controllValue(i.Vit_b12 - (f*(float(entry['vit_b12']) / 0.019))) + i.Vit_a = controllValue(i.Vit_a - (f*(float(entry['vit_a']) / 0.11))) + i.Vit_e = controllValue(i.Vit_e - (f*(float(entry['vit_e']) / 0.05))) + i.Vit_d = controllValue(i.Vit_d - (f*(float(entry['vit_d']) / 0.315))) + + height = (i.Calcium + i.Iron + i.Magnesium + i.Phosphorus + i.Potassium + i.Sodium + i.Zinc + i.Copper + i.Vit_c + i.Thiamin + i.Riboflavin + i.Niacin + i.Panto_acid + i.Vit_b6 + i.Folate_tot + i.Vit_b12 + i.Vit_a + i.Vit_e + i.Vit_d)/19.0 return height def controllValue(value): @@ -184,3 +189,107 @@ def calculateHeight(height): elif height > 100.0: return 99.00 return int(height) + +def calculateTime(f): + if f == 0.0: + position = [70, 0] + if f == 15.0: + position = [60 , 5] + elif f == 30.0: + position = [50 , 10] + elif f == 45.0: + position = [40 , 15] + elif f == 60.0: + position = [30 , 20] + elif f == 75.0: + position = [20 , 25] + elif f == 90.0: + position = [10 , 30] + elif f == 105.0: + position = [0 , 35] + elif f == 120.0: + position = [0 , 40] + elif f == 135.0: + position = [0 , 45] + elif f == 150.0: + position = [0 , 50] + elif f == 165.0: + position = [0 , 55] + elif f == 180.0: + position = [0 , 60] + elif f == 195.0: + position = [0 , 65] + elif f == 210.0: + position = [0 , 70] + elif f == 225.0: + position = [0 , 75] + elif f == 240.0: + position = [0 , 80] + elif f == 255.0: + position = [0 , 85] + elif f == 270.0: + position = [0 , 90] + elif f == 285.0: + position = [0 , 95] + elif f == 300.0: + position = [0 , 100] + elif f == 315.0: + position = [0 , 105] + elif f == 330.0: + position = [0 , 110] + elif f == 345.0: + position = [0 , 115] + elif f == 360.0: + position = [0 , 120] + elif f == 375.0: + position = [0 , 125] + elif f == 390.0: + position = [0 , 130] + elif f == 405.0: + position = [0 , 135] + elif f == 420.0: + position = [0 , 140] + elif f == 435.0: + position = [0 , 145] + elif f == 450.0: + position = [0 , 150] + elif f == 465.0: + position = [0 , 155] + elif f == 480.0: + position = [0 , 160] + elif f == 495.0: + position = [0 , 165] + elif f == 510.0: + position = [0 , 170] + elif f == 525.0: + position = [0 , 175] + elif f == 540.0: + position = [0 , 180] + elif f == 555.0: + position = [0 , 185] + elif f == 570.0: + position = [0 , 190] + elif f == 585.0: + position = [0 , 195] + elif f == 600.0: + position = [0 , 200] + elif f == 615.0: + position = [0 , 205] + elif f == 630.0: + position = [10 , 210] + elif f == 645.0: + position = [20 , 215] + elif f == 660.0: + position = [30 , 220] + elif f == 675.0: + position = [40 , 225] + elif f == 690.0: + position = [50 , 230] + elif f == 705.0: + position = [60 , 235] + elif f == 720.0: + position = [70 , 240] + else: + pass + return position + |