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:"
for sona in self.marksonad:
t=t+"- "+sona+"
\n"
t=t+"
muuda"+\
""
return t
def muutmisVorm(self):
"Vorm andmete muutmiseks"
t="Raamatu andmed"+\
""
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"+\
""
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+"Pealkiri | Autor |
"
m=self.objectValues('RaamatuAndmed')
for raamat in m:
t=t+""+raamat.kysiPealkiri()+" | "+\
raamat.kysiAutor()+" | "+\
str(raamat.kysiIlmumisaasta())+" |
\n"
t=t+"
"
return t
def raamatuteOtsing(self, otsitavAutor="", otsitavPealkiri="",
vahimIlmumisaasta=0, suurimIlmumisaasta=10000,
otsitavMarksona=""):
"Raamatute andmed tabelina"
t="Loetelu\n"
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)