Annotation of ZSQLExtend/ZSQLMetaData.py, revision 1.4
1.1 dwinter 1: #objekte zur erzeugung und verwaltung von metadaten
2:
3: from OFS.Folder import Folder
4: from Globals import Persistent
5: from Acquisition import Implicit
6: from Products.PageTemplates.PageTemplateFile import PageTemplateFile
7: from Products.PageTemplates.PageTemplate import PageTemplate
8: from OFS.SimpleItem import SimpleItem
9:
10: import string
11:
12:
13: class ZSQLMetadataMapping(SimpleItem):
14: """Einfaches Mapping Object"""
15:
16: meta_type="ZSQLMetadataMapping"
17:
18: def readFieldsFromParent(self):
19: """read all elements from root"""
20: return self.ac_parent.fields
21:
22: def __init__(self,id,title,arglist):
23: """init"""
24: self.id=id
25: self.title=title
26:
27: for fieldName in arglist.keys():
28: setattr(self,"md_"+fieldName,arglist[fieldName])
29:
30: manage_options = SimpleItem.manage_options+(
31: {'label':'Main Config','action':'change_ZSQLMappingForm'},
32: )
33:
34: def getValue(self,fieldName):
35: """get md value"""
1.2 dwinter 36: try:
37: return getattr(self,"md_"+fieldName)
38: except:
39: return ""
40:
1.1 dwinter 41: def generateMappingHash(self):
42: """erzeugen des Hash"""
43: hash={}
44: for field in self.fieldList:
45: hash[field]=getattr(self,"md_"+field)
46: return hash
47:
48:
49:
50: def change_ZSQLMappingForm(self):
51: """change"""
52: pt=PageTemplateFile('Products/ZSQLExtend/ChangeZSQLMetadataMapping.zpt').__of__(self)
53: return pt()
54:
55: def change_ZSQLMapping(self,titleOfObject,RESPONSE=None):
56: """change"""
57:
58: self.title=titleOfObject
59: arglist=self.REQUEST.form
60: for fieldName in arglist.keys():
61: setattr(self,"md_"+fieldName,arglist[fieldName])
62:
63: if RESPONSE is not None:
64: RESPONSE.redirect('manage_main')
65:
66:
67:
68: def manage_addZSQLMetadataMappingForm(self):
1.4 ! dwinter 69: """interface for adding the Metadatamapping"""
1.1 dwinter 70: pt=PageTemplateFile('Products/ZSQLExtend/AddZSQLMetadataMapping.zpt').__of__(self)
71: return pt()
72:
73: def manage_addZSQLMetadataMapping(self,idOfObject,titleOfObject,RESPONSE=None):
1.4 ! dwinter 74: """add the Metadatampapping"""
1.1 dwinter 75:
76: argList={}
77: for arg in self.REQUEST.form.keys():
78: if not (arg in ['idOfObject','titleOfObject']):
79: argList[arg]=self.REQUEST.form[arg]
80:
81: newObj=ZSQLMetadataMapping(idOfObject,titleOfObject,argList)
82: self._setObject(idOfObject,newObj)
83: if RESPONSE is not None:
84: RESPONSE.redirect('manage_main')
85:
86:
87: class ZSQLMetadataMappingRoot(Persistent, Implicit, Folder):
1.3 casties 88: """Root ordner fuer Metadaten set"""
1.1 dwinter 89:
90: meta_type='ZSQLMetadataMappingRoot'
91:
92: def __init__(self,id,title,fields):
93: self.id=id
94: self.title=title
95:
96: self.fieldList=fields.split(",")[0:]
97:
98:
99: manage_options = Folder.manage_options+(
100: {'label':'Main Config','action':'change_ZSQLMappingRootForm'},
101: )
102:
103:
104: def generateMappingList(self):
105: """Erzeuge Mapping"""
106: mapping={}
107: for dict in self.__dict__:
108: #print dict
109: obj=getattr(self,dict)
110: if hasattr(obj,'meta_type'):
111: if obj.meta_type=="ZSQLMetadataMapping":
112: mapping[obj.getId()]=obj.generateMappingHash()
113: return mapping
114:
115: def generateMappingForType(self,type,clean="yes"):
116: """erzeuge spezifisches Mapping"""
117: hash=self.generateMappingList()
118: if hash.has_key(type):
119: if clean=="yes":
120: temp={}
121: for x in hash[type].keys():
122: if not hash[type][x]=="":
123: temp[x]=hash[type][x]
124: return temp
125: else:
126: return hash[type]
127:
128: else:
129: return {}
130:
131: def getFieldList(self):
132: """erzeuge string aus fields"""
133: return string.join(self.fieldList,",")
134:
135: def getFields(self):
136: """ausgabe der Felder"""
137: return self.fieldList
138:
139: def getTypeTitle(self,id):
140: """Title von ID"""
141: try:
142: obj=getattr(self,id)
143: return obj.title
144: except:
145: return id
146:
147: def getStoredTypes(self):
1.3 casties 148: """Gebe gespeicherte typen zurueck"""
1.1 dwinter 149:
150: types=[]
151: for dict in self.__dict__:
152:
153: obj=getattr(self,dict)
154: if hasattr(obj,'meta_type'):
155: if obj.meta_type=="ZSQLMetadataMapping":
156: #print obj
157: if obj.title=="":
158: title=obj.id
159: else:
160: title=obj.title
161: types.append((obj.id,title))
162: return types
163:
164: def change_ZSQLMappingRootForm(self):
165: """change"""
166: pt=PageTemplateFile('Products/ZSQLExtend/ChangeZSQLMetadataMappingRoot.zpt').__of__(self)
167: return pt()
168:
169:
170: def change_ZSQLMetadataMapping(self,title,fields,RESPONSE=None):
171: """change entries"""
172: self.title=title
173: self.fieldList=fields.split(",")[0:]
174:
175: if RESPONSE is not None:
176: RESPONSE.redirect('manage_main')
177:
178:
179:
180: def manage_addZSQLMetadataMappingRootForm(self):
181: """interface for adding the OSAS_root"""
182: pt=PageTemplateFile('Products/ZSQLExtend/AddZSQLMetadataMappingRoot.zpt').__of__(self)
183: return pt()
184:
185: def manage_addZSQLMetadataMappingRoot(self,id,title,fields,RESPONSE=None):
1.4 ! dwinter 186: """add the mapping root"""
1.1 dwinter 187: newObj=ZSQLMetadataMappingRoot(id,title,fields)
188: self._setObject(id,newObj)
189: if RESPONSE is not None:
190: RESPONSE.redirect('manage_main')
191:
192:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>