Annotation of ZSQLExtend/VLMAExtensions.py, revision 1.3

1.1       dwinter     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"""
1.3     ! dwinter    69:         return getattr(self.imageObject,field,'')
1.1       dwinter    70: 
                     71:     def getThumbObject(self,field):
                     72:         """get the obejct"""
1.3     ! dwinter    73:         return getattr(self.thumbObject,field,'')
1.1       dwinter    74:     
                     75:     def createVLMATriples(self):
                     76:         """standardview"""
                     77: 
                     78:         ret=""
                     79: 
                     80:         #collectionobject triple
1.2       dwinter    81:         
1.1       dwinter    82:         for found in self.ZSQLSimpleSearch(self.searchStatement):
1.2       dwinter    83:             
1.1       dwinter    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
1.3     ! dwinter   116:         elif self.imageObject is not None:
1.1       dwinter   117:             self.imageObject.change(iS,iSF,iO,iOF)
1.3     ! dwinter   118:    else:
        !           119:        iOb=VLMAObject(iS,iSF,iO,iOF)   
        !           120:        self._setObject('imageObject',iOb)
1.1       dwinter   121:         if tS=="":
                    122:             self.thumbObject=None
1.3     ! dwinter   123:         elif self.thumbObject is not None:
1.1       dwinter   124:             self.thumbObject.change(tS,tSF,tO,tOF)
1.3     ! dwinter   125:    else:
        !           126:         tOb=VLMAObject(tS,tSF,tO,tOF)
        !           127:         self._setObject('thumbObject',tOb)
1.1       dwinter   128:         if REQUEST is not None:
                    129:             return self.manage_main(self, REQUEST)
                    130: 
                    131: def manage_addVLMATriplesForm(self):
                    132:     """Form for adding a VLMATriplesObject"""
                    133:     pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','addVLMATriples.zpt')).__of__(self)
                    134:     return pt()
                    135: 
                    136: def manage_addVLMATriples(self,id,searchStatement,cS,cSF,cO,cOF,iS,iSF,iO,iOF,tS,tSF,tO,tOF,title="",REQUEST=None):
                    137:     """Add a VLMATriples Object"""
                    138:     cOb=VLMAObject(cS,cSF,cO,cOF)
                    139:     if iS=="":
                    140:         iOb=None
                    141:     else:
                    142:         iOb=VLMAObject(iS,iSF,iO,iOF)
                    143:     if tS=="":
                    144:         tOb=None
                    145:     else:
                    146:         tOb=VLMAObject(tS,tSF,tO,tOF)
                    147: 
                    148:     ob=VLMATriples(id,searchStatement,cOb,iOb,tOb,title=title)
                    149: 
                    150:     self._setObject(id,ob)
                    151: 
                    152:     if REQUEST is not None:
                    153:         return self.manage_main(self, REQUEST, update_menu=1)
                    154: 
                    155:     

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