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>