Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/nutrinoweb/controllers/sparetime.py
diff options
context:
space:
mode:
Diffstat (limited to 'nutrinoweb/controllers/sparetime.py')
-rw-r--r--nutrinoweb/controllers/sparetime.py283
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
+