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: {'label':'Change Publications Special','action':'changePublications_specialForm'},
34: )
35:
36: def __init__(self,id, lastName,firstName):
37: """init"""
38: self.id=id
39: self.title="%s, %s"%(lastName,firstName)
40: self.lastName=lastName
41: self.firstName=firstName
42:
43:
44: def index_html(self):
45: """show homepage"""
46: pt = getTemplate(self, "members_main")
47: return pt()
48:
49: def changePublications_specialForm(self):
50: """Priority publications manual field"""
51: pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','changePublications_special.zpt')).__of__(self)
52: return pt()
53:
54: def changePublications_special(self,usePublicationsSpecial=None,specialPublicationsField=None,RESPONSE=None):
55: """change publications special params"""
56: if usePublicationsSpecial:
57: self.usePublicationsSpecial=True
58:
59: else:
60: self.usePublicationsSpecial=False
61:
62: self.specialPublicationsField=specialPublicationsField[0:]
63:
64: if RESPONSE is not None:
65: RESPONSE.redirect('manage_main')
66:
67:
68: def publications_full(self):
69: """show publication"""
70: pt=getTemplate(self, "publications_full_main")
71: return pt()
72:
73: def talks_full(self):
74: """show talks"""
75: pt=getTemplate(self, 'talks_full_main')
76: return pt()
77:
78: def teaching_full(self):
79: """show talks"""
80: pt=getTemplate(self, 'teaching_full_main')
81: return pt()
82:
83: def changeMPIWGStaffForm(self):
84: """change form"""
85: pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','edit_MPIWGStaff.zpt')).__of__(self)
86: return pt()
87:
88: def changeMPIWGStaff(self,lastName,firstName,RESPONSE=None):
89: """change it"""
90: self.title="%s, %s"%(lastName,firstName)
91: self.lastName=lastName
92: self.firstName=firstName
93:
94: if RESPONSE is not None:
95: RESPONSE.redirect('manage_main')
96:
97:
98:
99: def manage_addMPIWGStaffForm(self):
100: """form for adding the project"""
101: pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','addMPIWGStaffForm.zpt')).__of__(self)
102: return pt()
103:
104: def manage_addMPIWGStaff(self,id,lastName,firstName,RESPONSE=None):
105: """add it"""
106: newObj=MPIWGStaff(id,lastName,firstName)
107:
108: self._setObject(id,newObj)
109:
110:
111: if RESPONSE is not None:
112: RESPONSE.redirect('manage_main')
113:
114:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>