Diff for /MPIWGWeb/MPIWGProjects.py between versions 1.11 and 1.18

version 1.11, 2004/07/06 16:49:36 version 1.18, 2004/07/29 16:39:20
Line 7  from Products.PageTemplates.PageTemplate Line 7  from Products.PageTemplates.PageTemplate
 from Products.PageTemplates.ZopePageTemplate import ZopePageTemplate  from Products.PageTemplates.ZopePageTemplate import ZopePageTemplate
 from Products.ZSQLExtend.ZSQLExtend import ZSQLExtendFolder  from Products.ZSQLExtend.ZSQLExtend import ZSQLExtendFolder
   
   import urllib
 import MPIWGStaff  import MPIWGStaff
 import string  import string
 import re  import re
Line 28  def sortF(x,y): Line 29  def sortF(x,y):
     try:      try:
         return cmp(x[1],y[1])          return cmp(x[1],y[1])
     except:      except:
           try:
               return cmp(str(x[1]),str(y[1]))
           except:           
               print "error",x[1],y[1]
         return 0          return 0
           
 def sortI(x,y):  def sortI(x,y):
Line 98  class MPIWGRoot(ZSQLExtendFolder): Line 103  class MPIWGRoot(ZSQLExtendFolder):
     def sortedNames(self,list):      def sortedNames(self,list):
         """sort names"""          """sort names"""
   
         def sortLastName(x,y):          def sortLastName(x_c,y_c):
               try:
                   x=urllib.unquote(x_c).encode('utf-8','ignore')
               except:
                   x=urllib.unquote(x_c)
   
               try:
                   y=urllib.unquote(y_c).encode('utf-8','ignore')
               except:
                   x=urllib.unquote(y_c)
                   
   
               
             try:              try:
                 last_x=x.split()[len(x.split())-1]                  last_x=x.split()[len(x.split())-1]
                 last_y=y.split()[len(y.split())-1]                  last_y=y.split()[len(y.split())-1]
Line 127  class MPIWGRoot(ZSQLExtendFolder): Line 144  class MPIWGRoot(ZSQLExtendFolder):
         self.id=id          self.id=id
         self.title=title          self.title=title
                   
       def urlQuote(self,str):
           """quote"""
           return urllib.quote(str)
   
       def urlUnQuote(self,str):
           """quote"""
           return urllib.unquote(str)
       
     def harvestHistoricalPersons(self):      def harvestHistoricalPersons(self):
         """erstelle liste aller erwaehnten actors"""          """erstelle liste aller erwaehnten actors"""
   
Line 145  class MPIWGRoot(ZSQLExtendFolder): Line 170  class MPIWGRoot(ZSQLExtendFolder):
             lg=len(project[1].xdata_03[0])-1              lg=len(project[1].xdata_03[0])-1
   
             if (lg>1) and (project[1].xdata_03[0][lg]==";"):              if (lg>1) and (project[1].xdata_03[0][lg]==";"):
                 project[1].xdata_03[0]=project[1].xdata_03[0][0:lg-1]                  project[1].xdata_03[0]=project[1].xdata_03[0][0:lg]
   
                       
             
Line 155  class MPIWGRoot(ZSQLExtendFolder): Line 180  class MPIWGRoot(ZSQLExtendFolder):
                     for person in project[1].xdata_03[0].split(";"):                      for person in project[1].xdata_03[0].split(";"):
                         personNormal=normalize(person)                          personNormal=normalize(person)
                         if personNormal in list.keys():                          if personNormal in list.keys():
                             list[personNormal].append(project[1])                              list[urllib.quote(personNormal)][1].append(project[1])
                         else:                          else:
                             list[personNormal]=[project[1]]                              list[urllib.quote(personNormal)]=(personNormal,[project[1]])
                 else: #guess , is sepeator                  else: #guess , is sepeator
                     for person in project[1].xdata_03[0].split(","):                      for person in project[1].xdata_03[0].split(","):
                         personNormal=normalize(person)                          personNormal=normalize(person)
                         if personNormal in list.keys():                          if urllib.quote(personNormal) in list.keys():
                             list[personNormal].append(project[1])                              list[urllib.quote(personNormal)][1].append(project[1])
                         else:                          else:
                             list[personNormal]=[project[1]]                              list[urllib.quote(personNormal)]=(personNormal,[project[1]])
   
             except:              except:
                 print "ERROR",project                  print "ERROR",project
Line 176  class MPIWGRoot(ZSQLExtendFolder): Line 201  class MPIWGRoot(ZSQLExtendFolder):
         self.personDict={}          self.personDict={}
         personDict=self.harvestHistoricalPersons()          personDict=self.harvestHistoricalPersons()
         for person in personDict.keys():          for person in personDict.keys():
             for project in personDict[person]:              for project in personDict[person][1]:
                 if person in self.personDict.keys():                  if person in self.personDict.keys():
                     self.personDict[person].append((project.absolute_url(),project.WEB_title[0],project.xdata_01[0]))                      self.personDict[person][1].append((project.absolute_url(),project.WEB_title[0],project.xdata_01[0]))
                 else:                  else:
                     self.personDict[person]=[(project.absolute_url(),project.WEB_title[0],project.xdata_01[0])]                      self.personDict[person]=(personDict[person][0],[(project.absolute_url(),project.WEB_title[0],project.xdata_01[0])])
   
         if RESPONSE is not None:          if RESPONSE is not None:
             RESPONSE.redirect("showHistoricalPersons")              RESPONSE.redirect("showHistoricalPersons")
                           
   
       def getPersonDict(self,name):
           """name von dict"""
   
           try:
               return self.personDict[name][0].encode('utf-8')
           except:
               return self.personDict[name][0]
               return self.personDict[name][0].decode('latin-1').encode('utf-8')
           
   
     def showHistoricalPersons(self):      def showHistoricalPersons(self):
         """show persons"""          """show persons"""
         pt=PageTemplateFile('Products/MPIWGWeb/zpt/showHistoricalPersons').__of__(self)          pt=PageTemplateFile('Products/MPIWGWeb/zpt/showHistoricalPersons').__of__(self)
Line 251  class MPIWGRoot(ZSQLExtendFolder): Line 286  class MPIWGRoot(ZSQLExtendFolder):
                 if re.match(searchStr,project[1]):                  if re.match(searchStr,project[1]):
                                           
                     if depth:                      if depth:
                         print "ho"  
                         if int(depth)>=len(project[1].split("."))-len(childs.split(".")):                          if int(depth)>=len(project[1].split("."))-len(childs.split(".")):
                                           
                             ret.append(project)                              ret.append(project)
Line 350  class MPIWGRoot(ZSQLExtendFolder): Line 385  class MPIWGRoot(ZSQLExtendFolder):
         for x in self.ZopeFind(self.members,obj_metatypes=['MPIWGStaff']):          for x in self.ZopeFind(self.members,obj_metatypes=['MPIWGStaff']):
                                ret.append(x[1].title.decode('utf-8'))                                 ret.append(x[1].title.decode('utf-8'))
                           
         #ret.sort()          ret.sort()
         #print ret          #print ret
       
         return ret          return ret
Line 381  class MPIWGRoot(ZSQLExtendFolder): Line 416  class MPIWGRoot(ZSQLExtendFolder):
                     splittedId=idNr.split(".")                      splittedId=idNr.split(".")
                     depth=len(splittedId)                      depth=len(splittedId)
                     nr=idNr                      nr=idNr
                     title=project[0].WEB_title                      #title=project[0].WEB_title
                                           title=[project[0].getContent('WEB_title')]
                       #print title
                     returnList.append((depth,nr,title,project[0]))                      returnList.append((depth,nr,title,project[0]))
                   
         return returnList          return returnList
   
       def formatElementForOverview(self,element):
           """format the element for output in overview"""
           if element[0]==1: #department
               return "<h2>Department %s: %s</h2>"%(element[3].getContent('xdata_05'),element[3].getContent('WEB_title'))
   
           elif element[0]==2: #mainprojects
               return "<h3>%s</h3><p>"%(element[3].getContent('WEB_title'))
   
           elif element[0]==3:
               return "<br>%s"%(element[3].getContent('WEB_title'))
           
     def changePosition(self,treeId,select,RESPONSE=None):      def changePosition(self,treeId,select,RESPONSE=None):
         """Change Postion Entry"""          """Change Postion Entry"""
         numbers=[]          numbers=[]
Line 445  class MPIWGRoot(ZSQLExtendFolder): Line 492  class MPIWGRoot(ZSQLExtendFolder):
                   
                           
                   
       def getRelativeUrlFromPerson(self,list):
           """get urls to person list"""
           ret=[]
           persons=list.split(";")
           for person in persons:
               
               if len(person)>1: #nicht nur Trennzeichen
                   splitted=person.split(",")
                   if len(splitted)==1:
                       splitted=person.split(" ")
                   splittedNew=[re.sub(r'\s(.*)','$1',split) for split in splitted]
                   if splittedNew[0]=='':
                       del splittedNew[0]
                   search=string.join(splittedNew,' AND ')
                   
                   if not search=='':
   
                       try:
                           proj=self.MembersCatalog({'title':search})
                       except:
                           proj=None
   
                   if proj:
                       #ret.append("<a href=%s >%s</a>"%(proj[0].absolute_url,person.encode('utf-8')))
                       ret.append("<a href=%s >%s</a>"%('members/'+proj[0].id,person))
                   else:
                       #ret.append("%s"%person.encode('utf-8'))
                       ret.append("%s"%person)
           return string.join(ret,";")
                   
                           
     def getUrlFromPerson(self,list):      def getUrlFromPerson(self,list):
Line 470  class MPIWGRoot(ZSQLExtendFolder): Line 546  class MPIWGRoot(ZSQLExtendFolder):
                         proj=None                          proj=None
   
                 if proj:                  if proj:
                       #ret.append("<a href=%s >%s</a>"%(proj[0].absolute_url,person.encode('utf-8')))
                     ret.append("<a href=%s >%s</a>"%(proj[0].absolute_url,person))                      ret.append("<a href=%s >%s</a>"%(proj[0].absolute_url,person))
                 else:                  else:
                       #ret.append("%s"%person.encode('utf-8'))
                     ret.append("%s"%person)                      ret.append("%s"%person)
         return string.join(ret,";")          return string.join(ret,";")
                                                     
Line 489  class MPIWGRoot(ZSQLExtendFolder): Line 567  class MPIWGRoot(ZSQLExtendFolder):
         """get project of a member"""          """get project of a member"""
         def sortP(x,y):          def sortP(x,y):
             """sort by sorting number"""              """sort by sorting number"""
                           #print x.xdata_05,y.xdata_05
             return cmp(x.xdata_05,y.xdata_05)              return cmp(x.WEB_title,y.WEB_title)
                   
     
         ret=[]          ret=[]
Line 508  class MPIWGRoot(ZSQLExtendFolder): Line 586  class MPIWGRoot(ZSQLExtendFolder):
         proj=self.ProjectCatalog({'xdata_01':search})          proj=self.ProjectCatalog({'xdata_01':search})
         if proj:          if proj:
             proj2=[x for x in proj]              proj2=[x for x in proj]
             proj2.sort(sortP)          #    proj2.sort(sortP)
             ret.append((y,proj2))          #    ret.append((y,proj2))
           else:
               proj2=[]
   
         proj=self.ProjectCatalog({'xdata_08':search})          proj=self.ProjectCatalog({'xdata_08':search})
         if proj:          if proj:
             proj2=[x for x in proj]              names=[x.WEB_title for x in proj]
               for x in proj:
                   if not x.WEB_title in names:
                       proj2.append(x)
   
   
             proj2.sort(sortP)              proj2.sort(sortP)
             ret.append((y,proj2))  
   
           if len(proj2)>0:
               ret.append((y,proj2))
                   
         return ret          return ret
             
Line 677  class MPIWGProject(Folder): Line 763  class MPIWGProject(Folder):
         """giveListofDatafields"""          """giveListofDatafields"""
         ret=[]          ret=[]
         for x in range(1,14):          for x in range(1,14):
               if not x in [6,10,9]: # not used fields
             ret.append('xdata_%02i'%x)              ret.append('xdata_%02i'%x)
         return ret          return ret
                           
Line 703  class MPIWGProject(Folder): Line 790  class MPIWGProject(Folder):
                 try:                  try:
                     text =x.encode('utf-8')                      text =x.encode('utf-8')
                 except:                  except:
                     text="ERROR"                      text=x.decode('latin-1').encode('utf-8')
                   
         #delete separator (;) if  is there is one          #delete separator (;) if  is there is one
         try:          try:
             if text[len(text)-1]==";":              if text[len(text)-1]==";":
                 text=text[0:len(text)-1]                  text=text[0:len(text)-1].encode('utf-8')
         except:          except:
             """nothing"""              """nothing"""
                           
           if (type(text)==StringType) or (type(text)==UnicodeType):
         return text          return text
           else:
               return text[0]
   
           
     def show_html(self):      def show_html(self):

Removed from v.1.11  
changed lines
  Added in v.1.18


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