"""This file contains the classes for the organization of the staff""" from OFS.Folder import Folder from Products.ZSQLExtend.ZSQLExtend import ZSQLExtendFolder from Products.PageTemplates.PageTemplateFile import PageTemplateFile from Products.PageTemplates.PageTemplate import PageTemplate from Products.ZCatalog.CatalogPathAwareness import CatalogAware import os from Globals import package_home def getTemplate(self, tpName): """get a template file either form the instance or from the product""" ext=self.ZopeFind(self.aq_parent,obj_ids=[tpName]) if ext: pt = getattr(self,ext[0][1].getId()) else: pt=PageTemplateFile(os.path.join(package_home(globals()), 'zpt/'+tpName)).__of__(self) assert(pt) return pt class MPIWGStaff(CatalogAware,ZSQLExtendFolder): """Staff""" meta_type="MPIWGStaff" default_catalog='MembersCatalog' def PrincipiaSearchSource(self): """Return cataloguable key for ourselves.""" return str(self) manage_options = Folder.manage_options+( {'label':'Edit','action':'changeMPIWGStaffForm'}, ) def __init__(self,id, lastName,firstName): """init""" self.id=id self.title="%s, %s"%(lastName,firstName) self.lastName=lastName self.firstName=firstName def index_html(self): """show homepage""" pt = getTemplate(self, "members_main") return pt() def publications_full(self): """show publication""" pt=getTemplate(self, "publications_full_main") return pt() def talks_full(self): """show talks""" pt=getTemplate(self, 'talks_full_main') return pt() def teaching_full(self): """show talks""" pt=getTemplate(self, 'teaching_full_main') return pt() def changeMPIWGStaffForm(self): """change form""" pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','edit_MPIWGStaff.zpt')).__of__(self) return pt() def changeMPIWGStaff(self,lastName,firstName,RESPONSE=None): """change it""" self.title="%s, %s"%(lastName,firstName) self.lastName=lastName self.firstName=firstName if RESPONSE is not None: RESPONSE.redirect('manage_main') def manage_addMPIWGStaffForm(self): """form for adding the project""" pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','addMPIWGStaffForm.zpt')).__of__(self) return pt() def manage_addMPIWGStaff(self,id,lastName,firstName,RESPONSE=None): """add it""" newObj=MPIWGStaff(id,lastName,firstName) self._setObject(id,newObj) if RESPONSE is not None: RESPONSE.redirect('manage_main')