import OFS, Globals
from Globals import Persistent
import AccessControl
from Acquisition import Implicit


class IsikuAndmed(
   Persistent, 
   OFS.SimpleItem.Item,
   AccessControl.Role.RoleManager, Implicit):
   "Klass isiku andmete hoidmiseks"
   eesnimi=""
   perenimi=""
   teltyyp=""
   telefon=""

   meta_type="IsikuAndmed"

   def __init__(self, eesnimi, perenimi, teltyyp, telefon):
     "Algväärtustamine"
     self.eesnimi=eesnimi
     self.perenimi=perenimi
     self.teltyyp=teltyyp
     self.telefon=telefon

   def index_html(self):
     "Andmete väljastus veebis"
     t="<html>\n<head>\n<title>Isiku andmed: "+self.eesnimi+" "+self.perenimi+"</title>\n</head>\n<body>\n<table>\n"+\
       "<tr><td>Eesnimi: </td><td>"+self.eesnimi+"</td></tr>"+\
       "<tr><td>Perekonnanimi: </td><td>"+self.perenimi+"</td></tr>"+\
       "<tr><td>Telefonitüüp: </td><td>"+self.teltyyp+"</td></tr>"+\
       "<tr><td>Telefon: </td><td>"+self.telefon+"</td></tr>"+\
       "<tr><td><a href='../'>Tagasi nimistusse</a></td><td><a href=muutmisVorm>Muuda</a></td></tr>"+\
       "</table>\n</body>\n</html>"
     return t

   def muutmisVorm(self):
     "Vorm andmete muutmiseks"
     t="<html><head><title>Isiku andmed</title></head><body>"+\
       "<form action='muutmisLeht'><table>"+\
       "<tr><td>Eesnimi: </td><td><input type='text' name='eesnimi' value='"+self.eesnimi+"' /></td></tr>\n"+\
       "<tr><td>Perekonnanimi: </td><td><input type='text' name='perenimi' value='"+self.perenimi+"' /></td></tr>\n"+\
       "<tr><td>Telefonitüüp: </td><td><select name='teltyyp'><option value='Kodutelefon'"
     if self.teltyyp=="kodu":
       t=t+" selected"
     t=t+">Kodutelefon</option><option value='Töötelefon'"
     if self.teltyyp=="too":
       t=t+" selected"
     t=t+">Töötelefon</option></select></td></tr>\n"+\
       "<tr><td>Telefon: </td><td><input type='text' name='telefon' value='"+self.telefon+"' /></td></tr>\n"
     t=t+"<tr><td><a href='../'>Tagasi nimistusse</a></td><td><input type='submit' value='Muuda' /></td></tr></table></form></body></html>"
     return t
     
   def muutmisLeht(self, REQUEST, eesnimi, perenimi, teltyyp, telefon):
     "Leht andmete salvestamiseks"
     self.eesnimi=eesnimi
     self.perenimi=perenimi
     self.teltyyp=teltyyp
     self.telefon=telefon
     REQUEST.RESPONSE.redirect('index_html')

Globals.InitializeClass(IsikuAndmed)
   
def lisamisKonstruktor(lisaja):
  "Uus telefoninumbrite märkmik"
  lisaja.Destination()._setObject("markmik", Markmik())
  return "Märkmik lisatud"

class Markmik(    
   OFS.Folder.Folder,
   OFS.SimpleItem.Item,
   Persistent,
   AccessControl.Role.RoleManager, Implicit):
   "Kataloog isikuandmete hoidmiseks, otsimiseks, vaatamiseks ja muutmiseks"     
   meta_type="Märkmik"
   loendur=0

   def index_html(self, eesnimi="", perenimi=""):
     "Andmete väljastus veebis"
     t="<html>\n<head>\n<title>Telefoninumbrid</title>\n</head>\n<body>\n<h1>Telefoninumbrite märkmik</h1><a href='lisamisVorm'>Lisa uus number</a><form action='index_html'><table>\n"
     t=t+"<tr><td><input type='text' name='perenimi' /></td><td><input type='submit' value='Otsi' /></td><td></td></tr>\n"
     t=t+"<tr><td>Eesnimi</td><td>Perekonnanimi</td><td></td></tr>\n"
     m=self.objectValues('IsikuAndmed')
     for isik in m:
       if isik.eesnimi.startswith(eesnimi) and isik.perenimi.startswith(perenimi):  
         t=t+"<tr><td>"+isik.eesnimi+"</td><td>"+\
           isik.perenimi+"</td><td><a href='"+isik.id+"'>Vaata</a></td><td><a href='kustutamisLeht?id="+isik.id+"'>Kustuta</a></td></tr>\n"
     t=t+"</table></form>\n</body>\n</html>"
     return t

   def lisamisVorm(self):
     "Vorm sõprade lisamiseks"
     t="<html><head><title>Isiku andmete lisamine</title></head>\n"+\
       "<body><form action='lisamisLeht' ><table>"+\
       "<tr><td>Eesnimi: </td><td><input type='text' name='eesnimi' /></td></tr>"+\
       "<tr><td>Perekonnanimi: </td><td><input type='text' name='perenimi' /></td></tr>"+\
       "<tr><td>Telefonitüüp: </td><td><select name='teltyyp'><option value='kodu'>Kodutelefon</option><option value='too'>Töötelefon</option></select></td></tr>"+\
       "<tr><td>Telefon: </td><td><input type='text' name='telefon' /></td></tr>"+\
       "<tr><td></td><td><input type='submit' value='Lisa' /></td></tr></table></form></body></html>"
     return t

   def lisamisLeht(self, REQUEST, eesnimi, perenimi, teltyyp, telefon):
     "Telefoninumbri lisamine"
     r=IsikuAndmed(eesnimi, perenimi, teltyyp, telefon)
     self.loendur=self.loendur+1
     tunnus="mark"+str(self.loendur)
     r.id=tunnus
     self._setObject(tunnus, r)
     REQUEST.RESPONSE.redirect('index_html')

   def kustutamisLeht(self, REQUEST, id):
     "Isiku kustutamine"
     self._delObject(id)
     REQUEST.RESPONSE.redirect('index_html')
     
Globals.InitializeClass(Markmik)