Пример #1
0
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"
Пример #2
0
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('&nbsp;', 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)