def rezeptliste(beginn, dauer): tage = models.Menue.all() tage.filter('datum >=', beginn).filter('datum <', beginn + timedelta(dauer)) rezepte = [] # Für "Folgende Rezepte wurden geplant" messbar = {} # Die Zutaten mit quantitativer Mengenangabe einheiten = {} qualitativ = {} # Die Zutaten mit qualitativer Mengenangabe rezeptzutaten = {} for t in tage: for r in (t.vorspeise, t.hauptgang, t.nachtisch): if r: rezepte.append(r) for rz in r.zutaten: rzzutat = rz.zutat zutatkey = str(rzzutat.key()) rezeptzutaten[zutatkey] = rzzutat zt = rzzutat.name if rz.menge: if zutatkey in messbar.keys(): messbar[zutatkey] += rz.menge else: messbar[zutatkey] = rz.menge elif rz.menge_qualitativ: if not zutatkey in qualitativ.keys(): qualitativ[zutatkey] = [] qualitativ[zutatkey].append(rz.menge_qualitativ) messbarkat = dict([(kat, []) for kat in models.ZUTATENKATEGORIEN]) for zk, menge in messbar.items(): zutat = rezeptzutaten[zk] messbarkat[zutat.kategorie].append({ 'name': zutat.name, 'menge': tools.prettyFloat(menge), 'einheit': zutat.masseinheit, 'key': str(zk) }) for z in messbarkat.values(): z.sort(lambda x, y: cmp(x["name"].lower(), y["name"].lower())) qualitativkat = dict([(kat, []) for kat in models.ZUTATENKATEGORIEN]) for zk, menge in qualitativ.items(): zutat = rezeptzutaten[zk] qualitativkat[zutat.kategorie].append({ 'name': zutat.name, 'menge': ', '.join(menge), 'key': str(zk) }) for z in qualitativkat.values(): z.sort(lambda x, y: cmp(x["name"].lower(), y["name"].lower())) rezepte.sort(lambda x, y: cmp(x.titel.lower(), y.titel.lower())) res = standard_template_values() res.update({ 'dauer': dauer, 'beginn': beginn.strftime('%d. %m. %Y'), 'rezepte': rezepte, 'messbar': messbarkat, 'qualitativ': qualitativkat, }) return res
def rezeptliste(beginn, dauer): tage = models.Menue.all() tage.filter('datum >=', beginn).filter('datum <', beginn + timedelta(dauer)) rezepte = [] # Für "Folgende Rezepte wurden geplant" messbar = {} # Die Zutaten mit quantitativer Mengenangabe einheiten = {} qualitativ = {} # Die Zutaten mit qualitativer Mengenangabe rezeptzutaten = {} for t in tage: for r in (t.vorspeise, t.hauptgang, t.nachtisch): if r: rezepte.append(r) for rz in r.zutaten: rzzutat = rz.zutat zutatkey = str(rzzutat.key()) rezeptzutaten[zutatkey] = rzzutat zt = rzzutat.name if rz.menge: if zutatkey in messbar.keys(): messbar[zutatkey] += rz.menge else: messbar[zutatkey] = rz.menge elif rz.menge_qualitativ: if not zutatkey in qualitativ.keys(): qualitativ[zutatkey] = [] qualitativ[zutatkey].append(rz.menge_qualitativ) messbarkat = dict([(kat, []) for kat in models.ZUTATENKATEGORIEN]) for zk, menge in messbar.items(): zutat = rezeptzutaten[zk] messbarkat[zutat.kategorie].append({'name': zutat.name, 'menge': tools.prettyFloat(menge), 'einheit': zutat.masseinheit, 'key': str(zk)}) for z in messbarkat.values(): z.sort(lambda x,y: cmp(x["name"].lower(), y["name"].lower())) qualitativkat = dict([(kat, []) for kat in models.ZUTATENKATEGORIEN]) for zk, menge in qualitativ.items(): zutat = rezeptzutaten[zk] qualitativkat[zutat.kategorie].append({'name': zutat.name, 'menge': ', '.join(menge), 'key': str(zk)}) for z in qualitativkat.values(): z.sort(lambda x,y: cmp(x["name"].lower(), y["name"].lower())) rezepte.sort(lambda x,y: cmp(x.titel.lower(), y.titel.lower())) res = standard_template_values() res.update({'dauer': dauer, 'beginn': beginn.strftime('%d. %m. %Y'), 'rezepte': rezepte, 'messbar': messbarkat, 'qualitativ': qualitativkat, }) return res
def toStr(self): liste = (self.menge_qualitativ and [self.menge_qualitativ] or [tools.prettyFloat(self.menge), self.einheit or '']) liste.append(self.name) return ' '.join(liste)