示例#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
 def bundel(self, bundel):
     """Pagina met inhoudsopgave van een verzameling
     """
     dh = Cats("papa")
     ok = False
     for y in dh.categorieen:
         if y[1] == bundel:
             ok = True
             break
     if not ok:
         raise cherrypy.HTTPError(403)
     if bundel == "Langere":
         regels = [
             "<h3>hee, typisch, deze zijn geen van alle afgemaakt...</h3>"
         ]
     else:
         regels = ["<br />"]
     regels.append('<div style="padding-left: 20%">')
     _, path, id_titels = catlijst("papa", bundel)
     for x in id_titels:
         path = pathlib.Path(x[2])
         regels.append('<a href="/vertel/{}/{}">{}</a><br />'.format(
             bundel, '~'.join((str(path.parent), path.name)), x[1]))
     regels.append('</div>')
     self.subsection = bundel
     return self.build(regels)
示例#3
0
def catlijst(user, item=None):
    """lijst alle verhalen bij een bepaalde categorie

    geeft AttributeError als de opgegeven user niet bestaat
    """
    dh = Cats(user)
    search_id = dh.zoek_id_bij_naam(item)
    parser = make_parser()
    parser.setFeature(feature_namespaces, 0)
    dh = FindList(search_id, "cat")
    parser.setContentHandler(dh)
    parser.parse(vertellerfile.format(user))
    urlbase = dh.urlbase
    path = dh.path
    lijst = [x for x in dh.id_titels]
    return urlbase, path, lijst
示例#4
0
 def wijzig_cat(self, item):
     th = Cats(self.user)
     try:
         test = int(item)
     except ValueError:
         test = 0
     if test:
         try:
             test = th.zoek_naam_bij_id(item)
         except AttributeError:
             raise AttributeError("Categorie %s bestaat niet bij user" % item)
         self.cat = item
     else:
         try:
             self.cat = th.zoek_id_bij_naam(item)
         except AttributeError:
             raise AttributeError("Categorie %s bestaat niet bij user" % item)
示例#5
0
 def __init__(self,args):
     self.doe = args.get("doe", '') # actie
     self.sel_id = args.get("selId", '')  # verhaal id
     self.user = args.get("user", '')  # current user
     self.van = args.get("van", '')    # afkomstig van selectiescherm?
     self.sel_hoofdst = args.get("selH", '')  # selhoofdstuk vanuit kiezen hoofdstuk
     self.hoofdstuknummer = int(args.get("selHs", '-1')) # hoofdstuk nummer vanuit wijzig hoofdstuk
     self.hoofdstuktitel = args.get("HsTitel", '') # titel van het hoofdstuk
     self.hoofdstuktekst = args.get("HsTekst", '').split('\n') # tekst van het hoofdstuk
     self.verhaaltitel = args.get("titel", '')  # htitel bij updaten tekst (verhaaltitel?)
     self.sel_cat = args.get("selCat", '')  # geselecteerde categorie bij updaten tekst en opvoeren nieuwe
     self.sel_item = args.get("selItem", '') # filenaam
     if self.doe == '':
         self.breekaf("Geen actie ('doe') opgegeven")
         return
     if self.user == '':
         self.breekaf("Geen user opgegeven")
         return
     ## self.regels = []
     ## self.regels.append(args)
     ## self.regels.append(self.__dict__)
     ## self.regels.append(" ")
     ## return
     self.aantal_hoofdst = 0
     self.meld = ''
     self.hoofdstuktitels = []
     nieuw = False
     dh = Verteller(self.user)
     if not dh.exists:
         self.breekaf("Verteller bestaat niet")
         return
     self.laatste = dh.laatste
     self.basepath = dh.basepath
     self.cats = Cats(self.user).categorieen
     err = ''
     if self.doe == "nieuw":     # nieuweTekst = 1 - nieuweTekst, selCat
         if self.sel_id != '0':
             self.breekaf('Geen selid of fout verhaal geselecteerd')
             return
         nieuw = True
         for cat, name, text in self.cats:
             if name == self.sel_cat:
                 self.sel_cat = cat
         err = self.nieuw_verhaal()
     else:
         if self.sel_id == '':
             self.breekaf('Geen verhaal geselecteerd')
             return
         if self.doe == "selTekst":    # we komen vanuit selectie - alleen selId is gevuld
             self.hoofdstuknummer = 1
         elif self.doe == "selHs":     # we komen vanuit kies hoofdstuk - selId, selH
             if self.sel_hoofdst == '':
                 self.breekaf('Geen hoofdstuk geselecteerd')
                 return
             i = self.sel_hoofdst.find("nw")
             if i >= 0:
                 self.hoofdstuknummer = int(self.sel_hoofdst[:i])
                 ## self.nieuw_hoofdstuk = True
             else:
                 self.hoofdstuknummer = int(self.sel_hoofdst)
         elif self.doe == "wijzigTxt": # we komen vanuit wijzig hoofdstuk - selId, selHs, HsTitel, HsTekst
             if self.hoofdstuknummer == -1:
                 self.breekaf('Geen hoofdstuk geselecteerd')
                 return
             else:
                 err = self.wijzig_hoofdstuktekst()
         elif self.doe == "wijzigVh":  # we komen vanuit updaten tekst - selId, titel, selItem, selCat
             if self.sel_item == "" and self.hoofdstuknummer == 0:
                 self.breekaf('Geen bestandsnaam meegegeven')
                 return
             err = self.wijzig_verhaal()
         else:
             err = "Onbekende actie: '%s'" % self.doe
         if not err:
             err = self.bestaand_verhaal()
     self.regels = []
     if err:
         self.breekaf(err)
         return
     self.maakhtml(nieuw)
示例#6
0
 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)
示例#7
0
 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)
示例#8
0
 def get_catnaam(self):
     ch = Cats(self.user)
     return ch.zoek_naam(self.cat)