File:  [Repository] / ZSQLExtend / VLMAExtensions.py
Revision 1.2: download - view: text, annotated - select for diffs - revision graph
Tue Oct 11 13:15:01 2005 UTC (18 years, 7 months ago) by dwinter
Branches: MAIN
CVS tags: HEAD
ZSQLAdd and ZSQLchange corrected

    1: ###Extensions for VLMA-Triples
    2: from OFS.Folder import Folder
    3: from Products.PageTemplates.PageTemplateFile import PageTemplateFile
    4: from OFS.SimpleItem import SimpleItem
    5: from Globals import package_home
    6: import Globals
    7: from AccessControl import ClassSecurityInfo
    8: 
    9: import os.path
   10: 
   11: security=ClassSecurityInfo()
   12: security.declarePublic('VLMAObject')
   13: 
   14: class VLMAObject(SimpleItem):
   15:     """VLMAObject"""
   16: 
   17:     
   18:     def __init__(self,subject,subjectField,object,objectField,predicate=None):
   19:         self.subject=subject
   20:         self.subjectField=subjectField
   21:         self.object=object
   22:         self.objectField=objectField
   23:         self.predicate=predicate
   24: 
   25:     def change(self,subject,subjectField,object,objectField,predicate=None):
   26:         self.subject=subject[0:]
   27:         self.subjectField=subjectField[0:]
   28:         self.object=object[0:]
   29:         self.objectField=objectField[0:]
   30:         if predicate:
   31:             self.predicate=predicate[0:]
   32:         else:
   33:             self.predicate=None
   34: 
   35:     
   36: 
   37: 
   38: 
   39: Globals.InitializeClass(VLMAObject)
   40: 
   41: class VLMATriples(Folder):
   42:     """Klasse zur Erzeugung der Triplefiles fuer VLMA, muss subobject eine ZSQLExtendFolders sein"""
   43: 
   44:     meta_type="VLMATriples"
   45: 
   46:     manage_options=Folder.manage_options+(
   47:         {'label':'Main Config','action':'changeVLMATriplesForm'},
   48:        )
   49: 
   50:     def __init__(self,id,searchStatement,collectionObject,imageObject=None,thumbObject=None,title=""):
   51:         """init
   52:         @param collectionObject: VLMAObject
   53:         @param imageObject: VLMAObject
   54:         @param thumbObject: VLMAObject"""
   55:         
   56:         self.id=id
   57:         self.title=title
   58:         self._setObject('collectionObject',collectionObject)
   59:         self._setObject('imageObject',imageObject)
   60:         self._setObject('thumbObject',thumbObject)
   61:         self.searchStatement=searchStatement
   62: 
   63:     def getCollectionObject(self,field):
   64:         """get the obejct"""
   65:         return getattr(self.collectionObject,field)
   66: 
   67:     def getImageObject(self,field):
   68:         """get the obejct"""
   69:         return getattr(self.imageObject,field)
   70: 
   71:     def getThumbObject(self,field):
   72:         """get the obejct"""
   73:         return getattr(self.thumbObject,field)
   74:     
   75:     def createVLMATriples(self):
   76:         """standardview"""
   77: 
   78:         ret=""
   79: 
   80:         #collectionobject triple
   81:         
   82:         for found in self.ZSQLSimpleSearch(self.searchStatement):
   83:             
   84:             subject=self.collectionObject.subject%getattr(found,self.collectionObject.subjectField)
   85:             object=self.collectionObject.object%getattr(found,self.collectionObject.objectField)
   86:             predicate="metadata"
   87:             ret+="%s\t%s\t%s\n"%(subject,object,predicate)
   88:             if self.imageObject:
   89:                 subject=self.imageObject.subject%getattr(found,self.imageObject.subjectField)
   90:                 object=self.imageObject.object%getattr(found,self.imageObject.objectField)
   91:                 predicate="image"
   92:                 ret+="%s\t%s\t%s\n"%(subject,object,predicate)
   93: 
   94:             if self.thumbObject:
   95:                 subject=self.thumbObject.subject%getattr(found,self.thumbObject.subjectField)
   96:                 object=self.thumbObject.object%getattr(found,self.thumbObject.objectField)
   97:                 predicate="thumb"
   98:                 ret+="%s\t%s\t%s\n"%(subject,object,predicate)
   99:             
  100:         return ret
  101: 
  102:     index_html=createVLMATriples
  103: 
  104:     def changeVLMATriplesForm(self):
  105:         """Form for adding a VLMATriplesObject"""
  106:         pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','changeVLMATriples.zpt')).__of__(self)
  107:         return pt()
  108: 
  109:     def changeVLMATriples(self,searchStatement,cS,cSF,cO,cOF,iS,iSF,iO,iOF,tS,tSF,tO,tOF,title="",REQUEST=None):
  110:         """changing triples"""
  111:         self.title=title[0:]
  112:         self.searchStatement=searchStatement[0:]
  113:         self.collectionObject.change(cS,cSF,cO,cOF)
  114:         if iS=="":
  115:             self.imageObject=None
  116:         else:
  117:             self.imageObject.change(iS,iSF,iO,iOF)
  118:         if tS=="":
  119:             self.thumbObject=None
  120:         else:
  121:             self.thumbObject.change(tS,tSF,tO,tOF)
  122: 
  123:         if REQUEST is not None:
  124:             return self.manage_main(self, REQUEST)
  125: 
  126: def manage_addVLMATriplesForm(self):
  127:     """Form for adding a VLMATriplesObject"""
  128:     pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','addVLMATriples.zpt')).__of__(self)
  129:     return pt()
  130: 
  131: def manage_addVLMATriples(self,id,searchStatement,cS,cSF,cO,cOF,iS,iSF,iO,iOF,tS,tSF,tO,tOF,title="",REQUEST=None):
  132:     """Add a VLMATriples Object"""
  133:     cOb=VLMAObject(cS,cSF,cO,cOF)
  134:     if iS=="":
  135:         iOb=None
  136:     else:
  137:         iOb=VLMAObject(iS,iSF,iO,iOF)
  138:     if tS=="":
  139:         tOb=None
  140:     else:
  141:         tOb=VLMAObject(tS,tSF,tO,tOF)
  142: 
  143:     ob=VLMATriples(id,searchStatement,cOb,iOb,tOb,title=title)
  144: 
  145:     self._setObject(id,ob)
  146: 
  147:     if REQUEST is not None:
  148:         return self.manage_main(self, REQUEST, update_menu=1)
  149: 
  150:     

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>