def fill_form(id, data, dom): """Hae pyynnöstä lomakkeen data. Returns: Data dict-muodossa. Avaimet: nimi (str), kuvaus (str) """ dom_item = domutil.getContentElementById("item%s" % id, dom) domutil.getElementById("nimi%s" % id, dom_item).setAttribute("value", data["nimi"].decode("utf-8")) domutil.getElementById("kuvaus%s" % id, dom_item).setAttribute("value", data["kuvaus"].decode("utf-8"))
def fill_errors(id, errors, dom): """Täytä errors-dictin avaimien nimiä vastaavat DOM-elementit avaimia vastaavalla virheilmoituksella. Args: errors: Virheilmoitukset dict-muodossa. Avaimet: nimi (str), kuvaus (str), maara (str), laji (str), tekstit (str[]). HUOM oletetaan, että löytyy virhe-elementit muotoa avain+"_err" """ dom_item = domutil.getContentElementById("item%s" % id, dom) for error in errors.keys(): errname = "%s_err%s" % (error, id) dom_err = domutil.getElementById(errname, dom_item) dom_err.appendChild(dom.createTextNode(errors[error]))
status = u"Virhe tallentaessa! (virhe: %s)" % str(e) # Luo kentät jokaiselle tietokannasta löytyvälle ruokalajille, ja aseta niiden id:t ruokalajia vastaaviksi dom_items = domutil.getContentElementById("items", dom) cur.execute(""" select nimi as nimi, kuvaus as kuvaus, ruokalajiid as id from ruokalaji; """) kinds = cur.fetchall() # Luo oma lomake jokaiselle ruokalajille. for row in kinds: id = str(row["id"]) dom_item = dom_item_template.cloneNode(True) # Aseta piilotetun id-inputin arvo ruokalajiid:n mukaan dom_id = domutil.getElementById("id", dom_item) dom_id.setAttribute("value", id) # Aseta näille uniikit id:t ruokalajiid:n perusteella että löydetään myöhemmin eikä tule id-konflikteja elem_names = ["item", "id", "nimi", "kuvaus", "status_text", "nimi_err", "kuvaus_err"] for elem_name in elem_names: elem = domutil.getElementById(elem_name, dom_item) elem_id = elem.getAttribute("id") elem.setAttribute("id", elem_id+id) dom_items.appendChild(dom_item) # Aseta kenttien arvot tietokannan datan mukaan item_data = {} item_data["nimi"] = row["nimi"] item_data["kuvaus"] = row["kuvaus"] fill_form(id, item_data, dom) con.close()