import OFS, Globals from Globals import Persistent import AccessControl class RaamatuAndmed( Persistent, OFS.SimpleItem.Item, AccessControl.Role.RoleManager): "Klass raamatu andmete hoidmiseks" pealkiri="" autor="" ilmumisaasta="" marksonad=[] meta_type="RaamatuAndmed" def index_html(self): "Andmete väljastus veebis" t="Raamatu andmed"+\ "Pealkiri: "+self.pealkiri+\ "
Autor: "+self.autor+\ "
Ilmumisaasta:"+str(self.ilmumisaasta)+\ "
Märksõnad:
muuda"+\ "" return t def muutmisVorm(self): "Vorm andmete muutmiseks" t="Raamatu andmed"+\ "
"+\ "Pealkiri:
\n" t=t+"Autor:
\n" t=t+"Ilmumisaasta:
\n" t=t+"

Märksõnad

" for sona in self.marksonad: t=t+"
\n" for i in range(3): t=t+"
\n" t=t+"
" return t def muutmisLeht(self, REQUEST, pealkiri, autor, ilmumisaasta, marksona): "Leht andmete salvestamiseks" self.pealkiri=pealkiri self.autor=autor self.ilmumisaasta=ilmumisaasta self.marksonad=[] for sona in marksona: if len(sona)>0: self.marksonad.append(sona) REQUEST.RESPONSE.redirect('index_html') def kysiPealkiri(self): "Pealkirja teatamine" return self.pealkiri def kysiAutor(self): "Autori küsimine" return self.autor def kysiIlmumisaasta(self): "Ilmumisaasta küsimine" try: return int(self.ilmumisaasta) except: return 0 def kysiMarksonad(self): "Märksõnade küsimine" return self.marksonad def __init__(self, pealkiri, autor, ilmumisaasta, marksonad=[]): "Algväärtustamine" self.pealkiri=pealkiri self.autor=autor self.ilmumisaasta=ilmumisaasta self.marksonad=marksonad Globals.InitializeClass(RaamatuAndmed) def lisamisKonstruktor(lisaja): "Uus tervitaja" lisaja.Destination()._setObject("hoidla", RaamatuHoidla()) return "Lisatud hoidla" class RaamatuHoidla( OFS.Folder.Folder, OFS.SimpleItem.Item, Persistent, AccessControl.Role.RoleManager): "Kataloog raamatute otsimiseks, vaatamiseks ja muutmiseks" meta_type="RaamatuHoidla5" loendur=0 def lisaRaamat(self, pealkiri, autor, aasta): "Raamatu lisamine kataloogi" r=RaamatuAndmed(pealkiri, autor, int(aasta)) self.loendur=self.loendur+1 tunnus="raamat"+str(self.loendur) r.id=tunnus self._setObject(tunnus, r) return "Raamat edukalt lisatud" def lisamisVorm(self): "Vorm raamatute lisamiseks" t="Lisamisvorm\n"+\ "
"+\ "Pealkiri:
"+\ "Autor:
"+\ "Ilmumisaasta:
"+\ "
" return t def loendaRaamatuid(self): "Teatab hoidlas olevate raamatute koguse" kogus=len(self.objectValues('RaamatuAndmed')) return "Raamatuid kokku "+str(kogus) def raamatuteLoetelu(self): "Raamatute andmed tabelina" t="Loetelu\n" t=t+"" m=self.objectValues('RaamatuAndmed') for raamat in m: t=t+"\n" t=t+"
PealkiriAutor
"+raamat.kysiPealkiri()+""+\ raamat.kysiAutor()+""+\ str(raamat.kysiIlmumisaasta())+"
" return t def raamatuteOtsing(self, otsitavAutor="", otsitavPealkiri="", vahimIlmumisaasta=0, suurimIlmumisaasta=10000, otsitavMarksona=""): "Raamatute andmed tabelina" t="Loetelu\n" t=t+"
" m=self.objectValues('RaamatuAndmed') for raamat in m: if self.kasSobibOtsingusse(raamat, otsitavAutor, otsitavPealkiri, vahimIlmumisaasta, suurimIlmumisaasta, otsitavMarksona): t=t+"\n" t=t+"
PealkiriAutor
"+raamat.kysiPealkiri()+""+\ raamat.kysiAutor()+""+\ str(raamat.kysiIlmumisaasta())+"
" t=t+"Autori nime algus:
" t=t+"Pealkirja algus:
" t=t+"Ilmumisaasta algus:
" t=t+"Ilmumisaasta ots:
" t=t+"Märksõna:
" t=t+"
" t=t+"
" return t def kasSobibOtsingusse(self, raamat, otsitavAutor, otsitavPealkiri, vahimIlmumisaasta, suurimIlmumisaasta, otsitavMarksona): "Otsingu abifunktsioon, kus teatatakse, kas raamat vastab tingimustele" if not raamat.kysiAutor().startswith(otsitavAutor): return 0 if not raamat.kysiPealkiri().startswith(otsitavPealkiri): return 0 if raamat.kysiIlmumisaasta() and vahimIlmumisaasta: if int(vahimIlmumisaasta)>raamat.kysiIlmumisaasta(): return 0 if raamat.kysiIlmumisaasta() and suurimIlmumisaasta: if int(suurimIlmumisaasta)