1: """This file contains the classes for the organization of the staff"""
2: from OFS.Folder import Folder
3: from Products.ZSQLExtend.ZSQLExtend import ZSQLExtendFolder
4: from Products.PageTemplates.PageTemplateFile import PageTemplateFile
5: from Products.PageTemplates.PageTemplate import PageTemplate
6: import os
7: from Globals import package_home
8:
9:
10: def getTemplate(self, tpName):
11: """get a template file either form the instance or from the product"""
12: print "getting ", tpName
13: ext=self.ZopeFind(self.aq_parent,obj_ids=[tpName])
14: if ext:
15: print " internal:", ext
16: pt = getattr(self,ext[0][1].getId())
17: else:
18: pt=PageTemplateFile(os.path.join(package_home(globals()), 'zpt/'+tpName)).__of__(self)
19: print " external:", pt
20: assert(pt)
21: return pt
22:
23: class MPIWGStaff(ZSQLExtendFolder):
24: """Staff"""
25:
26: meta_type="MPIWGStaff"
27:
28: manage_options = Folder.manage_options+(
29: {'label':'Edit','action':'changeMPIWGStaffForm'},
30: )
31:
32: def __init__(self,id, lastName,firstName):
33: """init"""
34: self.id=id
35: self.title="%s, %s"%(lastName,firstName)
36: self.lastName=lastName
37: self.firstName=firstName
38:
39: def index_html(self):
40: """show homepage"""
41: pt = getTemplate(self, "members_main")
42: return pt()
43:
44: def publications_full(self):
45: """show publication"""
46: pt=getTemplate(self, "publications_full_main")
47: return pt()
48:
49: def talks_full(self):
50: """show talks"""
51: pt=getTemplate(self, 'talks_full_main')
52: return pt()
53:
54: def teaching_full(self):
55: """show talks"""
56: pt=getTemplate(self, 'teaching_full_main')
57: return pt()
58:
59: def changeMPIWGStaffForm(self):
60: """change form"""
61: pt=PageTemplateFile('Products/MPIWGWeb/zpt/edit_MPIWGStaff.zpt').__of__(self)
62: return pt()
63:
64: def changeMPIWGStaff(self,lastName,firstName,RESPONSE=None):
65: """change it"""
66: self.title="%s, %s"%(lastName,firstName)
67: self.lastName=lastName
68: self.firstName=firstName
69:
70: if RESPONSE is not None:
71: RESPONSE.redirect('manage_main')
72:
73:
74:
75: def manage_addMPIWGStaffForm(self):
76: """form for adding the project"""
77: pt=PageTemplateFile('Products/MPIWGWeb/zpt/addMPIWGStaffForm.zpt').__of__(self)
78: return pt()
79:
80: def manage_addMPIWGStaff(self,id,lastName,firstName,RESPONSE=None):
81: """add it"""
82: newObj=MPIWGStaff(id,lastName,firstName)
83:
84: self._setObject(id,newObj)
85:
86:
87: if RESPONSE is not None:
88: RESPONSE.redirect('manage_main')
89:
90:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>