<tr>
<input type="hidden" name="keep_visible" value="0">
<td><select name="eatable_key">{eatables_selection}</select></td>
-<td><input class="unit_count" name="unit_count" type="number" step="1" min="0" value="0" /></td>
+<td><input class="unit_count" name="unit_count" type="number" step="0.1" min="0" value="0" /></td>
<td></td>
</tr>
</table>
button.innerHTML = '+1';
button.onclick = function(event) {
event.preventDefault();
- input.value = parseInt(input.value) + 1;
+ input.value = parseFloat(input.value) + 1.0;
};
input.insertAdjacentElement('afterend', button);
}
eatable = self.eatables[c.eatable_key]
calories = eatable.cals * c.unit_count
sugar_g = eatable.sugar_g * c.unit_count
- # calories = float(eatable.cals / eatable.standard_g) * c.unit_count * c.unit_weight
- # sugar_g = float(eatable.sugar_g / eatable.standard_g) * c.unit_count * c.unit_weight
self.today.calories += calories
self.today.sugar_g += sugar_g
return {"cals": calories, "sugar": sugar_g }
- def eatables_selection(self, selection=None):
+ def eatables_selection(self):
html = ''
+ already_selected = [c.eatable_key for c in self.consumptions]
for k, v in sorted(self.eatables.items(), key=lambda item: item[1].title):
+ if k in already_selected:
+ continue
v = self.eatables[k]
- selected = ' selected' if k==selection else ''
- html += '<option value="%s"%s>%s</option>' % (k, selected, v.title)
+ html += '<option value="%s">%s</option>' % (k, v.title)
return html
def add_eatable(self, id_, eatable):
if uuid not in to_delete:
e = Eatable(decode("title", i, False), decode("cals", i), decode("sugar_g", i), decode("standard_g", i), decode("comments", i, False))
db.add_eatable(uuid, e)
- i += 1
+ i += 1
if 'title' in postvars.keys() and len(postvars['title'][i]) > 0:
e = Eatable(decode("title", i, False), decode("cals", i), decode("sugar_g", i), decode("standard_g", i), decode("comments", i, False))
db.add_eatable(str(uuid4()), e)
if c.unit_count > 0:
db.eatables[c.eatable_key].popularity += 1
db.consumptions = []
- default_slots = 7
+ default_slots = 10
for k, v in sorted(db.eatables.items(), key=lambda item: -item[1].popularity):
db.add_consumption(Consumption(k, 0))
default_slots -= 1
"<td><input name=\"delete\" type=\"checkbox\" value=\"%s\" /></td>"\
"</tr>" % (k, v.title, v.cals, v.sugar_g, v.standard_g, v.comments, k)
consumptions = ""
+ db.consumptions = sorted(db.consumptions, key=lambda x: db.eatables[x.eatable_key].title)
for c in db.consumptions:
r = db.calc_consumption(c)
consumptions += "<tr />"\
- "<input type=\"hidden\" name=\"keep_visible\" value=\"1\">"\
- "<td><select name=\"eatable_key\">%s</select></td>"\
- "<td><input class=\"unit_count\" name=\"unit_count\" type=\"number\" min=\"0\" value=\"%d\" /></td>"\
+ "<input type=\"hidden\" name=\"keep_visible\" value=\"1\"><input name=\"eatable_key\" type=\"hidden\" value=\"%s\">"\
+ "<td>%s</td>"\
+ "<td><input class=\"unit_count\" name=\"unit_count\" type=\"number\" min=\"0\" step=\"0.1\" value=\"%.1f\" /></td>"\
"<td></td>"\
"<td>%.1f</td>"\
"<td>%.1f</td>"\
- "</tr>" % (db.eatables_selection(c.eatable_key), c.unit_count, r["cals"], r["sugar"])
+ "</tr>" % (c.eatable_key, db.eatables[c.eatable_key].title, c.unit_count, r["cals"], r["sugar"])
day_rows = ""
for date in sorted(db.days.keys()):
day = db.days[date]