Annotation of MPIWGWeb/MPIWGStaff.py, revision 1.9

1.1       dwinter     1: """This file contains the classes for the organization of the staff"""
                      2: from OFS.Folder import Folder
1.3       dwinter     3: from Products.ZSQLExtend.ZSQLExtend import ZSQLExtendFolder
1.1       dwinter     4: from Products.PageTemplates.PageTemplateFile import PageTemplateFile
                      5: from Products.PageTemplates.PageTemplate import PageTemplate
1.9     ! dwinter     6: from Products.ZCatalog.CatalogPathAwareness import CatalogAware
1.6       casties     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:
1.7       casties    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)
1.6       casties    19:     return pt
1.1       dwinter    20: 
1.9     ! dwinter    21: class MPIWGStaff(CatalogAware,ZSQLExtendFolder):
1.1       dwinter    22:     """Staff"""
                     23: 
                     24:     meta_type="MPIWGStaff"
1.9     ! dwinter    25:     default_catalog='MembersCatalog'
        !            26:     
        !            27:     def PrincipiaSearchSource(self):
        !            28:         """Return cataloguable key for ourselves."""
        !            29:         return str(self)
1.1       dwinter    30: 
1.6       casties    31:     manage_options = Folder.manage_options+(
                     32:         {'label':'Edit','action':'changeMPIWGStaffForm'},
                     33:         )
                     34:     
1.1       dwinter    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):
1.3       dwinter    43:         """show homepage"""
1.6       casties    44:         pt = getTemplate(self, "members_main")
1.3       dwinter    45:         return pt()
1.1       dwinter    46: 
1.3       dwinter    47:     def publications_full(self):
                     48:         """show publication"""
1.7       casties    49:         pt=getTemplate(self, "publications_full_main")
1.3       dwinter    50:         return pt()
                     51: 
                     52:     def talks_full(self):
                     53:         """show talks"""
1.7       casties    54:         pt=getTemplate(self, 'talks_full_main')
1.3       dwinter    55:         return pt()
                     56: 
                     57:     def teaching_full(self):
                     58:         """show talks"""
1.7       casties    59:         pt=getTemplate(self, 'teaching_full_main')
1.3       dwinter    60:         return pt()
                     61:     
1.1       dwinter    62:     def changeMPIWGStaffForm(self):
                     63:         """change form"""
                     64:         pt=PageTemplateFile('Products/MPIWGWeb/zpt/edit_MPIWGStaff.zpt').__of__(self)
                     65:         return pt()
                     66: 
1.2       dwinter    67:     def changeMPIWGStaff(self,lastName,firstName,RESPONSE=None):
1.1       dwinter    68:         """change it"""
1.2       dwinter    69:         self.title="%s, %s"%(lastName,firstName)
1.1       dwinter    70:         self.lastName=lastName
                     71:         self.firstName=firstName
1.2       dwinter    72: 
                     73:         if RESPONSE is not None:
                     74:             RESPONSE.redirect('manage_main')
                     75: 
1.1       dwinter    76:     
                     77: 
                     78: def manage_addMPIWGStaffForm(self):
                     79:     """form for adding the project"""
                     80:     pt=PageTemplateFile('Products/MPIWGWeb/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>