def process_user(args): cat_id = args.get("id", '') if cat_id: catnaam = args["naam"] dh = Cats(args["user"]) try: huidigenaam = dh.zoek_naam(catnaam) except NoDataError: dh.new_cat(catnaam) self.meld = ("categorie '%s' toegevoegd" % catnaam) return if huidigenaam != catnaam: dh.wijzig_cat(huidigenaam, catnaam) meld = ("categorie '%s' gewijzigd in %s" % (huidigenaam, catnaam)) else: meld = ("categorie '%s' is niet gewijzigd" % catnaam) else: wijzig = False dh = Verteller(args["user"]) test = args.get("url", '') if test: dh.new_urlbase(test) wijzig = True test = args.get("pad", '') if test: dh.new_basepath(test) wijzig = True if wijzig: dh.write() self.meld = "Gegevens verteller gewijzigd" else: self.meld = "Gegevens verteller niet gewijzigd"
class Select: def __init__(self, args): self.user = args.get("user", "") self.select = args.get("select", "") self.cat = args.get("cat", "") self.zoek = args.get("zoek", "") self.meld = args.get("meld", "") self.regels = [] if self.select == "start": self.toon_start() return # het eerste dat er moet gebeuren is controleren of de user (Verteller) bestaat # zo niet, dan ALTIJD terugsturen met de melding "bestaat niet, klik op uitvoeren om de user op te voeren" # of de knoptekst aanpassen, en met een onchange op het userveld deze terug wijzigen if not self.user: self.select = "noUser" self.toon_start() return dh = Verteller(self.user) if dh.exists: if self.select == "nweUser": self.meld = 'User bestaat al' self.toon_start() return else: if self.select == "nweUser": h = User(self.user).new() if h == "OK": h = "" dh = Verteller(self.user) try: dh.nieuw() except AttributeError as meld: h = meld if h != "": self.regels = ("<br/>", h) return self.select = "chgRoot" else: self.select = "errUser" self.toon_start() return if self.select == "nweTekst": self.regels.append('Location: %svertel_detail.py?hUser=%s' % ( http_cgipad, self.user)) return with open(os.path.join(htmlroot, "vertel_select.html")) as f_in: for r in f_in: r = r.rstrip() if "Magiokis!" in r: self.regels.append(r % self.user) elif r == "<!-- backtotop -->": hgoto = ("document.location='vertel_start.py?user=%s'" % self.user) self.regels.append('<input type="button" value="Terug naar ' 'startscherm" onclick="%s" />\n' % hgoto) elif r == "<!-- select -->": self.fout = False self.c = Cats(self.user) if self.select == "selCat": if len(self.c.categorieen) > 0: self.maak_selcat() else: self.meld = ("nog geen categorieen aanwezig bij deze " "verteller") self.maak_chgroot() elif self.select == "selZoek": if self.zoek == "": self.regels = [] self.meld = 'Geen zoektekst opgegeven' self.toon_start() return self.maak_selzoek() elif self.select == "nweCat": self.maak_nwecat() elif self.select == "chgRoot": self.maak_chgroot() else: self.fout = True if self.fout: self.regels.append(fouttekst.format(self.user, self.select)) elif "stylesheet" in r: self.regels.append(r % httproot) else: self.regels.append(r) def toon_start(self): with open(os.path.join(htmlroot, "vertel_start.html")) as f_in: for x in f_in: x = x.rstrip() if x == "<!-- backtotop -->": # alleen als door Launch een cookie gezet is met het userid, moet nog gemaakt worden #~ hquery = 'userid=woefdram' # voor nu even #~ # hgoto = "document.location='magiokis_begin.py?" + hquery + "'" #~ hgoto = "document.location='" + httproot + "magiokis_launch.html'" #~ print ('<input type="button" value="Terug naar startscherm" onclick="%s" />' % (hgoto)) pass elif "%s" in x: if x.startswith("<link"): self.regels.append(x % httproot) if self.select == "errUser": self.regels.append(scripttext) elif x.startswith("<form"): self.regels.append(x % http_cgipad) elif "txtUser" in x: h = "" if self.select == "errUser": h = ' onchange="btnText()"' h = ('value="%s"%s' % (self.user,h)) self.regels.append(x % h) elif "hDo" in x: h = "" if self.select == "errUser": h = "nweUser" self.regels.append(x % h) elif '"meld"' in x: if self.select == "noUser": self.meld = ("Geen usernaam opgegeven; " "zonder usernaam kunnen we niet verder") elif self.select == "errUser": self.meld = ("User bestaat niet; " "vul een andere naam in of voer hem eerst op") if self.meld != "": self.regels.append(x.replace(' ', self.meld)) elif " Uitvoeren " in x and self.select == "errUser": self.regels.append(x.replace(" Uitvoeren ", "Nieuwe user opvoeren")) else: self.regels.append(x) def maak_selcat(self): if self.cat != "": try: lijst = catlijst(self.user, self.cat)[2] except AttributeError as err: self.regels = [] self.meld = str(err) + ' bij user ' + self.user self.toon_start() return titels = False if len(lijst) > 0: titels = True with open(os.path.join(htmlroot, "vertel_selcat.html")) as f_in: for x in f_in: x = x.rstrip() if "body" in x: continue elif x.startswith("<form"): self.regels.append(x % http_cgipad) if "frmlist" in x and self.cat == "": break # de rest is alleen van toepassing bij een ingevulde categorie elif "hUser" in x: self.regels.append(x % self.user) elif x.startswith("<select"): if "lbSelCat" in x: select, option, value, endvalue, endoption, endselect = \ x.split("%s") self.regels.append(select) for y in self.c.categorieen: s = "" if y[1] == self.cat: s = ' selected="selected"' self.regels.append("".join((option, s, value, y[1], endvalue, y[1], endoption))) self.regels.append(endselect) elif "lbSelItem" in x: select, option, midoption, endoption, endselect = \ x.split("%s") if titels: self.regels.append(select) for y in lijst: self.regels.append("".join((option, y[0], midoption, y[1], endoption))) self.regels.append(endselect) elif "%seksten" in x: if titels: s1, s2 = "T", ": " else: s1, s2 = "Geen t", "" self.regels.append(x % (s1, self.cat, s2)) elif "hVan" in x: s = "cat-%s" % self.cat if titels else "" self.regels.append(x % s) elif "Toon tekst" in x: s = 'disabled="disabled"' if titels else '' self.regels.append(x % s) elif "hNwInCat" in x: self.regels.append(x % self.cat) else: self.regels.append(x) def maak_selzoek(self): lijst = vertellijst(self.user, self.zoek)[2] with open(os.path.join(htmlroot, "vertel_selzoek.html")) as f_in: for x in f_in: if "body" in x: continue elif x.startswith("<form"): self.regels.append(x % http_cgipad) elif "hUser" in x: self.regels.append(x % self.user) elif x.startswith("<select"): select, option, midoption, endoption, endselect = x.split("%s") if "lbSelItem" in x: if lijst: self.regels.append(select) for y in lijst: self.regels.append("".join((option, y[0], midoption, y[1], endoption))) self.regels.append(endselect) elif "%seksten" in x: if lijst: s1, s2 = "T", ": " else: s1, s2 = "Geen t", "" self.regels.append(x % (s1, self.zoek, s2)) elif "hVan" in x: s = "zoek-%s" % self.zoek if lijst else "" self.regels.append(x % s) elif "Toon tekst" in x: s = 'disabled="disabled"' if lijst else '' self.regels.append(x % s) else: self.regels.append(x) def maak_nwecat(self): m = "" if self.cat != "": if self.c.new_cat(self.cat): self.regels = [] self.meld = ('categorie "%s" opgevoerd' % self.cat) self.toon_start() return else: m = "<br /><br />De opgegeven categorie komt al voor" with open(os.path.join(htmlroot, "vertel_nwecat.html")) as f_in: for x in f_in: if "body" in x: continue elif x.startswith("<form"): self.regels.append(x % http_cgipad) elif "txtNweCat" in x: self.regels.append(x % self.cat) elif "%s" in x: self.regels.append(x % m) else: self.regels.append(x) def maak_chgroot(self): dh = Cats(self.user) vh = Verteller(self.user) u = vh.urlbase or "http://..." p = vh.basepath or '/home/user/...' skip = False herhaal = False self.regels = [] herhaalze = [] with open(os.path.join(htmlroot, "vertel_user.html")) as f_in: for x in f_in: x = x.rstrip() if x == "<!-- backtotop -->": hgoto = ("document.location='vertel_start.py?user=%s'" % self.user) self.regels.append('<input type="button" value="Terug naar ' 'startscherm" onclick="%s" />\n' % hgoto) elif x == "<!--": skip = True if skip: if x == "-->": skip = False continue if herhaal: herhaalze.append(x) if "/form" in x: herhaal = False for c in dh.categorieen: id = int(c[0]) naam = c[1] for y in herhaalze: if "<form" in y: self.regels.append(y % http_cgipad) elif "hUser%03i" in y: self.regels.append(y % (id, id, self.user)) elif "txtCat%03i" in y: self.regels.append(y % (id, naam)) else: self.regels.append(y) id = len(dh.categorieen) + 1 naam = "(nieuwe, nog niet bestaande categorie)" for y in herhaalze: if "<form" in y: self.regels.append(y % http_cgipad) elif "hUser%03i" in y: self.regels.append(y % (id, id, self.user)) elif "txtCat%03i" in y: self.regels.append(y % (id, naam)) else: self.regels.append(y) elif "Categorie" in x: self.regels.append(x) herhaal = True elif "<link" in x: self.regels.append(x % httproot) elif "<form" in x: self.regels.append(x % http_cgipad) elif "hUser" in x: self.regels.append(x % (self.user, self.user)) elif "txtUrl" in x: self.regels.append(x % u) elif "txtPad" in x: self.regels.append(x % p) elif "meld" in x: self.regels.append(x % self.meld) else: self.regels.append(x)