Diff for /MPIWGWeb/MPIWGStaff.py between versions 1.4 and 1.10.2.2

version 1.4, 2004/07/29 07:36:16 version 1.10.2.2, 2005/10/10 08:42:48
Line 1 Line 1
 """This file contains the classes for the organization of the staff"""  """This file contains the classes for the organization of the staff"""
   
 from OFS.Folder import Folder  from OFS.Folder import Folder
 from Products.ZSQLExtend.ZSQLExtend import ZSQLExtendFolder  from Products.ZSQLExtend.ZSQLExtend import ZSQLExtendFolder
 from Products.PageTemplates.PageTemplateFile import PageTemplateFile  from Products.PageTemplates.PageTemplateFile import PageTemplateFile
 from Products.PageTemplates.PageTemplate import PageTemplate  from Products.PageTemplates.PageTemplate import PageTemplate
   from Products.ZCatalog.CatalogPathAwareness import CatalogAware
   import os
   import bibliography
   from Globals import package_home
   from Products.PythonScripts.standard import sql_quote
   
   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(ZSQLExtendFolder):  class MPIWGStaff(CatalogAware,ZSQLExtendFolder):
     """Staff"""      """Staff"""
   
     meta_type="MPIWGStaff"      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'},
           {'label':'Change Publications Special','action':'changePublications_specialForm'},
           )
   
     def __init__(self,id, lastName,firstName):      def __init__(self,id, lastName,firstName):
         """init"""          """init"""
Line 17  class MPIWGStaff(ZSQLExtendFolder): Line 41  class MPIWGStaff(ZSQLExtendFolder):
         self.lastName=lastName          self.lastName=lastName
         self.firstName=firstName          self.firstName=firstName
   
     manage_options = Folder.manage_options+(  
         {'label':'Edit','action':'changeMPIWGStaffForm'},  
         )  
     def index_html(self):      def index_html(self):
         """show homepage"""          """show homepage"""
     ext=self.ZopeFind(self.aq_parent,obj_ids=["members_main"])          pt = getTemplate(self, "members_main")
           return pt()
         if ext:  
             return getattr(self,ext[0][1].getId())()  
   
         pt=PageTemplateFile('Products/MPIWGWeb/zpt/members_main').__of__(self)      def changePublications_specialForm(self):
           """Priority publications manual field"""
           pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','changePublications_special.zpt')).__of__(self)
         return pt()          return pt()
   
       def changePublications_special(self,usePublicationsSpecial=None,specialPublicationsField=None,RESPONSE=None):
           """change publications special params"""
           if usePublicationsSpecial:
             self.usePublicationsSpecial=True
            
           else:
             self.usePublicationsSpecial=False
   
           self.specialPublicationsField=specialPublicationsField[0:]
   
           if RESPONSE is not None:
               RESPONSE.redirect('manage_main')
   
           
     def publications_full(self):      def publications_full(self):
         """show publication"""          """show publication"""
         pt=PageTemplateFile('Products/MPIWGWeb/zpt/publications_full').__of__(self)          pt=getTemplate(self, "publications_full_main")
         return pt()          return pt()
   
     def talks_full(self):      def talks_full(self):
         """show talks"""          """show talks"""
         pt=PageTemplateFile('Products/MPIWGWeb/zpt/talks_full').__of__(self)          pt=getTemplate(self, 'talks_full_main')
         return pt()          return pt()
   
     def teaching_full(self):      def teaching_full(self):
         """show talks"""          """show talks"""
         pt=PageTemplateFile('Products/MPIWGWeb/zpt/teaching_full').__of__(self)          pt=getTemplate(self, 'teaching_full_main')
         return pt()          return pt()
           
     def changeMPIWGStaffForm(self):      def changeMPIWGStaffForm(self):
         """change form"""          """change form"""
         pt=PageTemplateFile('Products/MPIWGWeb/zpt/edit_MPIWGStaff.zpt').__of__(self)          pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','edit_MPIWGStaff.zpt')).__of__(self)
         return pt()          return pt()
   
     def changeMPIWGStaff(self,lastName,firstName,RESPONSE=None):      def changeMPIWGStaff(self,lastName,firstName,RESPONSE=None):
Line 59  class MPIWGStaff(ZSQLExtendFolder): Line 95  class MPIWGStaff(ZSQLExtendFolder):
         if RESPONSE is not None:          if RESPONSE is not None:
             RESPONSE.redirect('manage_main')              RESPONSE.redirect('manage_main')
   
       def edit(self):
           """Edit the pages"""
   
           pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','editMPIWGStaff.zpt')).__of__(self)
           return pt()
   
       mainEditFile=PageTemplateFile(os.path.join(package_home(globals()),'zpt','editMPIWGStaff_main.zpt'))
   
       def changeResearch(self,noredirect=None):
           """change the research entries"""
           newEntries={}
           id_main=self.REQUEST.form['id_main']
   
           mainfieldL=self.REQUEST.form['main_fields'].split(",")
           mainfield={}
           for x in mainfieldL:
               tmp=x.split('__')
               mainfield[tmp[0]]=tmp[1]
           for field in self.REQUEST.form.keys():
               splittedField=field.split("__")
               if len(splittedField)<3:
                   pass #kein datenbank eintrag
   
               elif splittedField[2]=='new': # store new entries
                   if not newEntries.has_key(splittedField[0]):
                       newEntries[splittedField[0]]={}
                       
                   newEntries[splittedField[0]][splittedField[1]]=self.REQUEST.form[field]
   
               else:
                   query="UPDATE %s "%splittedField[0]
                   query+="SET %s = '%s' "%(splittedField[1],sql_quote(self.REQUEST.form[field]))
                   query+="WHERE oid = '%s' "%sql_quote(splittedField[2])
   
                   self.ZSQLQuery(query)
   
   
           #new entries
           for newEntry in newEntries.keys():
               query="INSERT INTO %s "%newEntry
               keys=['id_main']
               values=["'"+id_main+"'"]
               for key in newEntries[newEntry].keys():
                   keys.append(key)
                   values.append("'"+newEntries[newEntry][key]+"'")
   
   
               keystring=",".join(keys)
                   
               valuestring=",".join(values)
                   
               query+=" (%s) "%keystring
               query+="VALUES (%s)"%valuestring
               if not (newEntries[newEntry][mainfield[newEntry]].lstrip().rstrip()==""):
                   self.ZSQLQuery(query)
   
           if not noredirect:
               self.REQUEST.RESPONSE.redirect(self.REQUEST['HTTP_REFERER'])
           
       def editCV(self,cv=None,oid=None,RESPONSE=None):
            """edit Cv"""
   
            if (not cv):
                pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','editCV.zpt')).__of__(self)
                return pt()
           
            query="UPDATE personal_www SET cv ='%s' WHERE oid='%s'"
   
            self.ZSQLQuery(query%(cv,oid))
           
            if RESPONSE:
               RESPONSE.redirect("editCV")
   
       def editAwards(self,awards=None,oid=None,RESPONSE=None):
            """edit a awards"""
   
            if (not awards):
                pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','editAwards.zpt')).__of__(self)
                return pt()
           
            query="UPDATE personal_www SET awards ='%s' WHERE oid='%s'"
   
            self.ZSQLQuery(query%(awards,oid))
           
            if RESPONSE:
               RESPONSE.redirect("editAwards")
   
       def editTalks(self):
           """edit talks"""
   
           pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','editTalks.zpt')).__of__(self)
           return pt()
           
            
       def editTeaching(self):
           """edit Teaching"""
   
           pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','editTeaching.zpt')).__of__(self)
           return pt()
           
       def editPublications(self):
           """edit the bibliographie"""
   
           pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','editPublications.zpt')).__of__(self)
           return pt()
   
       def changePublications(self):
           """change the publication list"""
   
           self.changeResearch(noredirect=True)
           self.REQUEST.RESPONSE.redirect(self.REQUEST['HTTP_REFERER'])
   
   
       def addPublications(self):
           """add publications"""
   
           pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','addPublications.zpt')).__of__(self)
           return pt()
   
       formatBiblHelp=bibliography.formatBiblHelp
       
       def sortPriority(self,list):
           tmp=[x for x in list]
           
           def sort(x,y):
               try:
                   xInt=int(x.priority)
               except:
                   xInt=0
               try:
                   yInt=int(y.priority)
               except:
                   yInt=0
   
               return cmp(xInt,yInt)
   
           tmp.sort(sort)
           return tmp
   
       def deleteField(self,table,oid):
           """delete entry"""
           query="DELETE FROM %s WHERE oid = '%s'"%(table,oid)
           print "query"
           self.ZSQLQuery(query)
           self.REQUEST.RESPONSE.redirect(self.REQUEST['HTTP_REFERER'])
           
   
 def manage_addMPIWGStaffForm(self):  def manage_addMPIWGStaffForm(self):
     """form for adding the project"""      """form for adding the project"""
     pt=PageTemplateFile('Products/MPIWGWeb/zpt/addMPIWGStaffForm.zpt').__of__(self)      pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','addMPIWGStaffForm.zpt')).__of__(self)
     return pt()      return pt()
   
 def manage_addMPIWGStaff(self,id,lastName,firstName,RESPONSE=None):  def manage_addMPIWGStaff(self,id,lastName,firstName,RESPONSE=None):

Removed from v.1.4  
changed lines
  Added in v.1.10.2.2


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>