Annotation of ZSQLExtend/VLMAExtensions.py, revision 1.2
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"""
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
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
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>