Diff for /MPIWGWeb/Attic/MPIWGRoot.py between versions 1.1.2.1 and 1.1.2.8

version 1.1.2.1, 2008/06/24 11:16:27 version 1.1.2.8, 2008/08/29 08:25:34
Line 30  import updatePersonalWWW Line 30  import updatePersonalWWW
 import MPIWGStaff  import MPIWGStaff
 from MPIWGHelper import *  from MPIWGHelper import *
   
   
   def sortWeight(x,y):
       x1=int(getattr(x[1],'weight','0'))
       y1=int(getattr(y[1],'weight','0'))
       return cmp(x1,y1)
   
   
 class MPIWGRoot(ZSQLExtendFolder):  class MPIWGRoot(ZSQLExtendFolder):
     """Stammordner fuer den Web-Server"""      """Stammordner fuer den Web-Server"""
   
     fieldLabels={'WEB_title':'WEB_Title','xdata_01':'Responsible Scientists','xdata_02':'Department',      fieldLabels={'WEB_title':'WEB_Title',
              'xdata_03':'Historical Persons','xdata_04':'Time period',                   'xdata_01':'Responsible Scientists',
              'xdata_05':'Sorting number','xdata_06':'Keywords','xdata_07':'Short title',                   'xdata_02':'Department',
              'xdata_08':'Other involved scholars' ,'xdata_09':'Disciplines','xdata_10':'Themes',                   'xdata_03':'Historical Persons',
              'xdata_11':'Object Digitallibrary','xdata_12':'Cooperation partners',                   'xdata_04':'Time period',
              'xdata_13':'Funding institutions','WEB_project_header':'WEB_project_header',                   'xdata_05':'Sorting number',
              'WEB_project_description':'WEB_project_description','WEB_related_pub':'WEB_related_pub'}                   'xdata_06':'Keywords',
                    'xdata_07':'Short title',
                    'xdata_08':'Other involved scholars' ,
                    'xdata_09':'Disciplines',
                    'xdata_10':'Themes',
                    'xdata_11':'Object Digitallibrary',
                    'xdata_12':'Cooperation partners',
                    'xdata_13':'Funding institutions',
                    'WEB_project_header':'WEB_project_header',
                    'WEB_project_description':'WEB_project_description',
                    'WEB_related_pub':'WEB_related_pub'}
           
     folders=['MPIWGProject','Folder','ECHO_Navigation']      folders=['MPIWGProject','Folder','ECHO_Navigation']
     meta_type='MPIWGRoot'      meta_type='MPIWGRoot'
Line 56  class MPIWGRoot(ZSQLExtendFolder): Line 73  class MPIWGRoot(ZSQLExtendFolder):
                         proj.responsibleScientistsList=[]                          proj.responsibleScientistsList=[]
                                                   
             for person in persons.items():              for person in persons.items():
                 logging.info("XXXX"+repr(person))                
                 if len(person[1]) >1: #nicht eindeutig                  if len(person[1]) >1: #nicht eindeutig
                     ret+="nicht eindeutig ---  %s:  %s\n"%(proj.getId(),person[0])                      ret+="nicht eindeutig ---  %s:  %s\n"%(proj.getId(),person[0])
                                           
Line 87  class MPIWGRoot(ZSQLExtendFolder): Line 104  class MPIWGRoot(ZSQLExtendFolder):
                                   
     def decode(self,str):      def decode(self,str):
         """decoder"""          """decoder"""
   
         if not str:          if not str:
             return ""              return ""
         if type(str) is StringType:          if type(str) is StringType:
Line 263  class MPIWGRoot(ZSQLExtendFolder): Line 281  class MPIWGRoot(ZSQLExtendFolder):
                 return True                  return True
         return False          return False
                   
     def getSection(self):      
         """returns the current section name"""      def getSections(self):
         root = self.absolute_url()          """returns a list of all sections i.e. top-level MPIWGFolders"""
         url = self.REQUEST['URL']          secs = self.objectItems(['MPIWGFolder'])
         if not url:          secs.sort(sortWeight)
             return None          #logging.debug("root: %s secs: %s"%(repr(self.absolute_url()), repr(secs)))
         path = string.replace(url, root, '')          return secs
         paths = path.split('/')  
         if len(paths) > 0:  
             sec = paths[1]  
             if sec.find('.') < 0:  
                 return sec  
             else:  
                 return None  
         return None  
   
     def getSectionStyle(self, name, style=""):      def getSectionStyle(self, name, style=""):
         """returns a string with the given style + '-sel' if the current section == name"""          """returns a string with the given style + '-sel' if the current section == name"""
Line 310  class MPIWGRoot(ZSQLExtendFolder): Line 320  class MPIWGRoot(ZSQLExtendFolder):
     def replaceNotEmpty(self,format,field):      def replaceNotEmpty(self,format,field):
         """replace not empty"""          """replace not empty"""
         if field and (not field.lstrip()==''):          if field and (not field.lstrip()==''):
             return format%field              return self.decode(format%field)
         else:          else:
             return ""              return ""
                   
Line 483  class MPIWGRoot(ZSQLExtendFolder): Line 493  class MPIWGRoot(ZSQLExtendFolder):
             RESPONSE.redirect('manage_main')              RESPONSE.redirect('manage_main')
   
   
   
     def getContexts(self,childs=None,parents=None,depth=None,date=None,onlyActive=True):      def getContexts(self,childs=None,parents=None,depth=None,date=None,onlyActive=True):
         """childs alle childs, alle parents"""          """childs alle childs, alle parents"""
         ret=[]          ret=[]
                   
         if parents:          if parents:
             splitted=parents.split(".")              pnums=parents.split(".")
             parentId=string.join(splitted[0:len(splitted)-1],".")              while len(pnums) > 1:
                   pnums.pop()
                   parentId=string.join(pnums,".")
                   
             for project in self.getProjectFields('xdata_05',sort='int',date=date):              for project in self.getProjectFields('xdata_05',sort='int',date=date):
                 if project[1]==parentId:                  if project[1]==parentId:
                     ret.append(project)                      ret.append(project)
   
                   if (depth is not None) and (len(ret) >= depth):
                       break
   
         if childs:          if childs:
             for project in self.getProjectFields('xdata_05',sort='int',date=date):              for project in self.getProjectFields('xdata_05',sort='int',date=date):
                 searchStr=childs+"(\..*)"                  searchStr=childs+"(\..*)"
Line 510  class MPIWGRoot(ZSQLExtendFolder): Line 524  class MPIWGRoot(ZSQLExtendFolder):
                                 ret.append(project)                                  ret.append(project)
                         else:                          else:
                             ret.append(project)                              ret.append(project)
           
           logging.debug("getContexts: childs=%s parents=%s depth=%s => %s"%(childs,parents,depth,repr(ret)))
         return ret          return ret
           
       
     def getProjectFields(self,fieldName,date=None,folder=None,sort=None):      def getProjectFields(self,fieldName,date=None,folder=None,sort=None):
         """getListofFieldNames"""          """getListofFieldNames"""
         ret=[]          ret=[]
Line 844  class MPIWGRoot(ZSQLExtendFolder): Line 861  class MPIWGRoot(ZSQLExtendFolder):
         else:          else:
             return entry              return entry
   
       def getTreeRSS(self,dep=None,date=None,onlyActive=1,onlyArchived=0):
           """generateTree"""
           rss="""<?xml version="1.0" encoding="utf-8"?>
                    <rss version="2.0">
                      <channel>"""
           
           for obj in self.getTree(dep, date, onlyActive, onlyArchived):
               linkStr="""<link>http://wwwneu.mpiwg-berlin.mpg.de/en/research/projects/%s</link>"""
               rss+="""<item>"""
               rss+=linkStr%obj[3].getId()
               rss+="""</item>"""
               if hasattr(obj[3],'publicationList'):
               rss+="""<item>"""
                   rss+=linkStr%(obj[3].getId()+"/publicationList");
                   rss+="""</item>"""
           rss+="""</channel>
           </rss>"""
   
           
           return rss
   
     def getTree(self,dep=None,date=None,onlyActive=0,onlyArchived=0):      def getTree(self,dep=None,date=None,onlyActive=0,onlyArchived=0):
         """generate Tree from project list          """generate Tree from project list
Line 972  class MPIWGRoot(ZSQLExtendFolder): Line 1009  class MPIWGRoot(ZSQLExtendFolder):
                     logging.info("Changed!Completed+++++++++++++++++++++++++++++++++")                      logging.info("Changed!Completed+++++++++++++++++++++++++++++++++")
                     entryChanged = True                      entryChanged = True
                                   
                   if not (fields[nr][3].getStartedAt()==fields[nr][3].transformDate(form[str(nr)+'_started'])):
                       fields[nr][3].setStartedAt(form[str(nr)+'_started'])
                       logging.info("Changed!Started+++++++++++++++++++++++++++++++++")
                       entryChanged = True
                   
                                   
                 if entryChanged:                  if entryChanged:
                     logging.info("Changed!+++++++++++++++++++++++++++++++++")                      logging.info("Changed!+++++++++++++++++++++++++++++++++")
Line 1035  class MPIWGRoot(ZSQLExtendFolder): Line 1077  class MPIWGRoot(ZSQLExtendFolder):
                   
   
                           
 #    def getMembersFromList(self,list):  
 #        """get member names from person full text list"""  
 #        memberlist=[]  
 #        persons=list.split(";")  
 #        for person in persons:  
 #            if len(person)>1: #nicht nur Trennzeichen  
 #                splitted=person.split(",")  
 #                if len(splitted)==1:  
 #                    splitted=person.lstrip().rstrip().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:  
 #                         
 #                        member=self.MembersCatalog({'title':search})  
 #                    
 #                    except:  
 #                        member=None  
 #                if member:  
 #                   logging.error("search publ %s:"%member[0].getObject().isPublished())  
 #                if member and (member[0].getObject().isPublished()):  
 #                    if person =="Otto Sibum" : person="H. Otto Sibum"  
 #                    if person =="Norton Wise" : person="M. Norton Wise"  
 #                      
 #                    #memberlist.append("<a href=%s >%s</a>"%(member[0].absolute_url,person.encode('utf-8')))  
 #                    memberlist.append((person, member[0].getObject().getId()))  
 #                else:  
 #                    #memberlist.append("%s"%person.encode('utf-8'))  
 #                    memberlist.append((person,None))  
 #        return memberlist  
                                                     
 #    def getUrlFromPerson(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.lstrip().rstrip().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 and (proj[0].getObject().isPublished()):  
 #                    if person =="Otto Sibum" : person="H. Otto Sibum"  
 #                    if person =="Norton Wise" : person="M. Norton Wise"  
 #                    #ret.append("<a href=%s >%s</a>"%(proj[0].absolute_url,person.encode('utf-8')))  
 #                   if self.MPIWGrootURL().split("/")[-1]=='en':  
 #                       tmpPath="/en/staff/members/"  
 #                   else:  
 #                        tmpPath="/de/mitarbeiter/members/"  
 #                    ret.append("<a href=%s >%s</a>"%(tmpPath+proj[0].getObject().getId()+"/index.html",person))  
 #                else:  
 #                    #ret.append("%s"%person.encode('utf-8'))  
 #                    ret.append("%s"%person)  
 #        return string.join(ret,";")  
 #                           
     def getProjectsOfMembers(self,date=None):      def getProjectsOfMembers(self,date=None):
         """give tuple member /projects"""          """give tuple member /projects"""
         ret=[]          ret=[]

Removed from v.1.1.2.1  
changed lines
  Added in v.1.1.2.8


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