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