import AccessControl
import OFS, Globals
from OFS import SimpleItem
import types
from TraversableWrapper import Traversable
from Globals import Persistent
from AccessControl import ClassSecurityInfo
from Cruft import Cruft
class Kiri(
OFS.SimpleItem.Item,
Persistent,
AccessControl.Role.RoleManager,
Traversable,
Cruft
):
"Kirja andmed"
def __init__(self, pealkiri, sisu, autor):
"Kirja loomine"
self.pealkiri=pealkiri
self.sisu=sisu
self.autor=autor
self.uus=1
def kasUus(self):
"Kas tegemist värske kirjaga"
if not hasattr(self, 'uus'): return 1
return self.uus
def kysiAutor(self):
"Autori kasutajanimi"
if hasattr(self, 'autor'):
return self.autor
return "Tundmatu autori kiri"
def index_html(self, REQUEST):
"Kirja näitamine"
t=self.hdr(self, REQUEST)
t=t+" > kirjad
"
t=t+"
"+self.pealkiri+"
"
t=t+self.sisu
t=t+self.fle_html_footer(self, REQUEST)
self.uus=0
return t
class KirjadeKataloog(
OFS.Folder.Folder,
OFS.SimpleItem.Item,
Persistent,
AccessControl.Role.RoleManager,
Traversable,
Cruft):
"Kirjade hoidla"
kirjaNr=0
def lisaKiri(self, REQUEST, pealkiri, sisu):
"Uue kirja lisamine kataloogi"
autor=str(REQUEST.AUTHENTICATED_USER)
k=Kiri(pealkiri, sisu, autor)
self.kirjaNr=self.kirjaNr+1
k.id='kiri'+str(self.kirjaNr)
self._setObject(k.id, k)
return "Kiri "+k.id+" lisatud"
def index_html(self, REQUEST):
"Kirjade kataloogi vaikimisi leht"
t=self.hdr(self, REQUEST)
m=self.objectValues()
t=t+""
t=t+"Koosta kiri"
t=t+self.fle_html_footer(self, REQUEST)
return t
def kustuta(self, REQUEST, kiri=()):
"Märgitud kirjade kustutamine"
if type(kiri)==types.StringType:
kiri=(kiri,)
for x in kiri:
self._delObject(x)
REQUEST.RESPONSE.redirect('index_html')
def koostamiseVorm(self, REQUEST):
"Kirja koostamise vorm"
t=self.hdr(self, REQUEST)
t=t+""
t=t+self.fle_html_footer(self, REQUEST)
return t
def saatmiseLeht(self, REQUEST, kellele, pealkiri, sisu):
"Kirjade saatmise leht"
saajad=kellele.split(",")
vead=[]
for x in saajad:
try:
self.saadaKiri(REQUEST, x.strip(), pealkiri, sisu)
except:
vead.append(x)
if vead:
t=self.hdr(self, REQUEST)+"
Probleemid kirjade saatmisel:"
t=t+"; ".join(vead)
t=t+self.fle_html_footer(self, REQUEST)
return t
REQUEST.RESPONSE.redirect('index_html')
def saadaKiri(self, REQUEST, kellele, pealkiri, sisu):
"Ühe kirja saatmine"
saaja=getattr(self.fle_root().fle_users, kellele)
saaja.lisaKirjadeKataloog()
saaja.kirjad.lisaKiri(REQUEST, pealkiri, sisu)
return "Kiri saadetud"