Diff for /MPIWGWeb/Attic/MPIWGRoot.py between versions 1.1.2.13 and 1.1.2.27

version 1.1.2.13, 2008/09/03 21:16:40 version 1.1.2.27, 2010/06/23 15:01:56
Line 40  def sortWeight(x,y): Line 40  def sortWeight(x,y):
 class MPIWGRoot(ZSQLExtendFolder):  class MPIWGRoot(ZSQLExtendFolder):
     """Stammordner fuer den Web-Server"""      """Stammordner fuer den Web-Server"""
   
       meta_type='MPIWGRoot'
   
     fieldLabels={'WEB_title':'WEB_Title',      fieldLabels={'WEB_title':'WEB_Title',
                  'xdata_01':'Responsible Scientists',                   'xdata_01':'Responsible Scientists',
                  'xdata_02':'Department',                   'xdata_02':'Department',
Line 58  class MPIWGRoot(ZSQLExtendFolder): Line 60  class MPIWGRoot(ZSQLExtendFolder):
                  'WEB_project_description':'WEB_project_description',                   'WEB_project_description':'WEB_project_description',
                  'WEB_related_pub':'WEB_related_pub'}                   'WEB_related_pub':'WEB_related_pub'}
           
       # (is this used?)
     folders=['MPIWGProject','Folder','ECHO_Navigation']      folders=['MPIWGProject','Folder','ECHO_Navigation']
     meta_type='MPIWGRoot'      # language of this instance
       lang = 'en'
       # types of objects that show up in navigation
       nav_meta_types = ['MPIWGTemplate','MPIWGLink','MPIWGFolder']
   
     def getGetNeighbourhood(self,obj, wordStr, length=100,tagging=True):      def getGetNeighbourhood(self,obj, wordStr, length=100,tagging=True):
         """finde umgebung um die worte in wordStr, zurueckgegeben wird eine Array mit den Umgebungen von Fundstellen der Worte          """finde umgebung um die worte in wordStr, zurueckgegeben wird eine Array mit den Umgebungen von Fundstellen der Worte
Line 74  class MPIWGRoot(ZSQLExtendFolder): Line 80  class MPIWGRoot(ZSQLExtendFolder):
         ret=[] # nimmt das Array auf, dass spaeter zurueckgegeben wird          ret=[] # nimmt das Array auf, dass spaeter zurueckgegeben wird
         ranges=[] #Array mit tupeln x,y wobei x die Position des Anfang und y des Endes der i-ten Umgebung angiebt          ranges=[] #Array mit tupeln x,y wobei x die Position des Anfang und y des Endes der i-ten Umgebung angiebt
                   
           wordStr=wordStr.lstrip().rstrip()
           
         def isInRanges(nr,length):          def isInRanges(nr,length):
             """test ob eine gegeben Position nr schon irgendwo in einer Umgebung ist, gibt den Index des ersten Wertes aus ranges zurueck,               """test ob eine gegeben Position nr schon irgendwo in einer Umgebung ist, gibt den Index des ersten Wertes aus ranges zurueck, 
             -1, wenn kein Treffer              -1, wenn kein Treffer
Line 222  class MPIWGRoot(ZSQLExtendFolder): Line 230  class MPIWGRoot(ZSQLExtendFolder):
         else:          else:
             return array[idx]              return array[idx]
                   
       def getLang(self):
           """returns the default language"""
           return self.lang
   
     def browserCheck(self):      def browserCheck(self):
         """check the browsers request to find out the browser type"""          """check the browsers request to find out the browser type"""
Line 324  class MPIWGRoot(ZSQLExtendFolder): Line 335  class MPIWGRoot(ZSQLExtendFolder):
           
     def subNavStatic(self,obj):      def subNavStatic(self,obj):
         """subnav" von self"""          """subnav" von self"""
         def sortWeight(x,y):  
             x1=int(getattr(x[1],'weight','0'))  
             y1=int(getattr(y[1],'weight','0'))  
             return cmp(x1,y1)  
         
         subs=self.ZopeFind(obj,obj_metatypes=['MPIWGTemplate','MPIWGLink'])          subs=self.ZopeFind(obj,obj_metatypes=['MPIWGTemplate','MPIWGLink'])
         subret=[]          subret=[]
   
Line 339  class MPIWGRoot(ZSQLExtendFolder): Line 345  class MPIWGRoot(ZSQLExtendFolder):
         return subret          return subret
           
     def subNav(self,obj):      def subNav(self,obj):
         """return subnav elemente"""          """return sub-navigation elements i.e. below sections"""
         def sortWeight(x,y):          # get section -> parent should be MPIWGRoot
             x1=int(getattr(x[1],'weight','0'))          p = obj
             y1=int(getattr(y[1],'weight','0'))          sec = None
             return cmp(x1,y1)          # descend parents to the root (and remember the last id)
         #if obj.meta_type in ['MPIWGTemplate','MPIWGLink']:          while p is not None and p.meta_type != 'MPIWGRoot':
         #    id=obj.aq_parent.getId()              sec = p
         #else:              p = p.aq_parent
       
         #id=obj.getId()          subsecs = sec.objectItems(self.nav_meta_types)
           subsecs = [s for s in subsecs if s[1].title != ""]
                   subsecs.sort(sortWeight)
         #suche die zweite ebene          return subsecs
           
         if not obj.aq_parent.getId() in ['de','en']:  
             obj=obj.aq_parent  
           
         while not self.ZopeFind(self,obj_ids=[obj.getId()]):  
             obj=obj.aq_parent  
           
         
         if hasattr(self,obj.getId()):  
               
             subs=self.ZopeFind(getattr(self,obj.getId()),obj_metatypes=['MPIWGTemplate','MPIWGLink'])  
             subret=[]  
   
             for x in subs:  
                 if not(x[1].title==""):  
                     subret.append(x)  
             subret.sort(sortWeight)  
             return subret  
         else:  
             return None  
   
     def isType(self,object,meta_type):      def isType(self,object,meta_type):
         """teste ob ein object vom meta_type ist."""          """teste ob ein object vom meta_type ist."""
Line 400  class MPIWGRoot(ZSQLExtendFolder): Line 386  class MPIWGRoot(ZSQLExtendFolder):
         else:          else:
             return style                  return style    
   
     def getFeatures(self):      def getFeatures(self, num=None):
         """returns a list of all Features"""          """returns a list of the last num Features"""
         dir = getattr(self, 'features')          dir = getattr(self, 'features')
         features = dir.objectItems(['MPIWGFeature'])          features = dir.objectItems(['MPIWGFeature'])
         features.sort(sortWeight)          features.sort(sortWeight)
           if num is not None:
               # take only the last num elements
               features = features[-num:]
         # return pure list of objects          # return pure list of objects
         return [f[1] for f in features]          return [f[1] for f in features]
   
   
       def getMPIWGRoot(self):
           """returns the MPIWG root"""
           return self
   
     def MPIWGrootURL(self):      def MPIWGrootURL(self):
         """returns the URL to the root"""          """returns the URL to the root"""
         return self.absolute_url()          return self.absolute_url()
Line 596  class MPIWGRoot(ZSQLExtendFolder): Line 589  class MPIWGRoot(ZSQLExtendFolder):
         pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','changeMPIWGRootForm')).__of__(self)          pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','changeMPIWGRootForm')).__of__(self)
         return pt()          return pt()
   
     def changeMPIWGRoot(self,title,disciplineList,themesList,connection_id,RESPONSE=None):      def changeMPIWGRoot(self,title,disciplineList,themesList,connection_id,lang=None,RESPONSE=None):
         """change"""          """change"""
         self.title=title          self.title=title
         self.connection_id=connection_id          self.connection_id=connection_id
         self.disciplineList=disciplineList          self.disciplineList=disciplineList
         self.themesList=themesList          self.themesList=themesList
           if lang is not None:
               self.lang = lang
   
         if RESPONSE is not None:          if RESPONSE is not None:
             RESPONSE.redirect('manage_main')              RESPONSE.redirect('manage_main')
Line 640  class MPIWGRoot(ZSQLExtendFolder): Line 635  class MPIWGRoot(ZSQLExtendFolder):
                             ret.append(project)                              ret.append(project)
                   
         #logging.debug("getContexts: childs=%s parents=%s depth=%s => %s"%(childs,parents,depth,repr(ret)))          #logging.debug("getContexts: childs=%s parents=%s depth=%s => %s"%(childs,parents,depth,repr(ret)))
        
         return ret          return ret
   
           
Line 783  class MPIWGRoot(ZSQLExtendFolder): Line 779  class MPIWGRoot(ZSQLExtendFolder):
                   
                   
         result,msg=MPIWGStaff.createNewDBEntry(self,data['publish_the_data'],data['key'],data['last_name'],          result,msg=MPIWGStaff.createNewDBEntry(self,data['publish_the_data'],data['key'],data['last_name'],
                                   data['first_name'],data['title'],data['status'],"",                                    data['first_name'],data['titles_new'],data['status'],"",
                                   "",data['date_from'],data['date_to'],                                    "",data['date_from'],data['date_to'],
                                   data['department'],data['home_inst'],data['funded_by'],                                    data['department'],'',data['funded_by'],
                                   data['e_mail2'],data['current_work'],"yes",data['date_stay_at_mpiwg'],data['group'],"no",data['current_work'])                                    data['e_mail2'],data['current_work'],"yes",data['date_stay_at_mpiwg'],data['group'],"no",data['current_work'])
                   
         return result,msg          return result,msg
Line 934  class MPIWGRoot(ZSQLExtendFolder): Line 930  class MPIWGRoot(ZSQLExtendFolder):
         try:          try:
                           
             self.ProjectCatalog.manage_catalogReindex(self.REQUEST,RESPONSE,self.REQUEST['URL1'])              self.ProjectCatalog.manage_catalogReindex(self.REQUEST,RESPONSE,self.REQUEST['URL1'])
               logger("MPIWG Root (reindexCatalog: projects)",logging.INFO,"DONE")
           except:
               logger("MPIWG Root (reindexCatalog: projects)",logging.WARNING," %s %s"%sys.exc_info()[:2])
           
           try:
               
               self.MembersCatalog.manage_catalogReindex(self.REQUEST,RESPONSE,self.REQUEST['URL1'])
               logger("MPIWG Root (reindexCatalog: members)",logging.INFO,"DONE")
         except:          except:
             logger("MPIWG Root (updatehomepage)",logging.WARNING," %s %s"%sys.exc_info()[:2])              logger("MPIWG Root (reindexCatalog: members)",logging.WARNING," %s %s"%sys.exc_info()[:2])
           
           try:
               
               self.fulltextProjectsMembers.manage_catalogReindex(self.REQUEST,RESPONSE,self.REQUEST['URL1'])
               logger("MPIWG Root (reindexCatalog: fulltextProjectsMembers)",logging.INFO,"DONE")
           except:
               logger("MPIWG Root (reindexCatalog: fulltextProjectsMembers)",logging.WARNING," %s %s"%sys.exc_info()[:2])
                           
                   
           
Line 955  class MPIWGRoot(ZSQLExtendFolder): Line 966  class MPIWGRoot(ZSQLExtendFolder):
                                           
         results=self.MembersCatalog({'isPublished':True})          results=self.MembersCatalog({'isPublished':True})
                 
         ret=[(", ".join([proj.lastName, proj.firstName]).decode('utf-8'),proj.getKey) for proj in results]          ret=[(unicodify(", ".join([proj.lastName, proj.firstName])), proj.getKey) for proj in results]
                   
         ret.sort(sorter)          ret.sort(sorter)
         return ret          return ret
Line 984  class MPIWGRoot(ZSQLExtendFolder): Line 995  class MPIWGRoot(ZSQLExtendFolder):
                    <channel>"""                     <channel>"""
                   
         for obj in self.getTree(dep, date, onlyActive, onlyArchived):          for obj in self.getTree(dep, date, onlyActive, onlyArchived):
             linkStr="""<link>http://wwwneu.mpiwg-berlin.mpg.de/en/research/projects/%s</link>"""              linkStr="""<link>http://www.mpiwg-berlin.mpg.de/en/research/projects/%s</link>"""
             rss+="""<item>"""              rss+="""<item>"""
             rss+=linkStr%obj[3].getId()              rss+=linkStr%obj[3].getId()
             rss+="""</item>"""              rss+="""</item>"""
Line 1008  class MPIWGRoot(ZSQLExtendFolder): Line 1019  class MPIWGRoot(ZSQLExtendFolder):
         onlyArchived=0: alle Projekte          onlyArchived=0: alle Projekte
         onlyArchived= 1 : nur aktuelle Projekte          onlyArchived= 1 : nur aktuelle Projekte
         onlyArchived = 2: nur archivierte Projekte          onlyArchived = 2: nur archivierte Projekte
           
           department fuer das Tree geholt werden soll
         """          """
   
         returnListTmp=[]          returnListTmp=[]
Line 1027  class MPIWGRoot(ZSQLExtendFolder): Line 1040  class MPIWGRoot(ZSQLExtendFolder):
                     if idNr[0]=="x": # kompatibilitaet mit alter Konvention, x vor der Nummer macht project inactive                      if idNr[0]=="x": # kompatibilitaet mit alter Konvention, x vor der Nummer macht project inactive
                         project[0].setActiveFlag(False)                          project[0].setActiveFlag(False)
                                         
                     if (not dep) or (idNr[0]==dep): #falls dep gesetzt ist nur dieses hinzufuegen.                      if (not dep) or (splittedId[0]==dep): #falls dep gesetzt ist nur dieses hinzufuegen.
                                                   
                         if (onlyActive==0):                          if (onlyActive==0):
                             returnListTmp.append((depth,nr,title,project[0]))                              returnListTmp.append((depth,nr,title,project[0]))
Line 1089  class MPIWGRoot(ZSQLExtendFolder): Line 1102  class MPIWGRoot(ZSQLExtendFolder):
         hashList={}          hashList={}
         onlyArchived=int(form.get("onlyArchived",0))          onlyArchived=int(form.get("onlyArchived",0))
         onlyActive=int(form.get("onlyActive",0))          onlyActive=int(form.get("onlyActive",0))
           dep=form.get("dep",None)
                   
                   fields=self.getTree(dep=dep,onlyArchived=onlyArchived,onlyActive=onlyActive)
         fields=self.getTree(onlyArchived=onlyArchived,onlyActive=onlyActive)  
                   
         logging.info("GOT TREE!----------------------------------------------------")          logging.info("GOT TREE!----------------------------------------------------")
         for field in form.keys():          for field in form.keys():
Line 1108  class MPIWGRoot(ZSQLExtendFolder): Line 1121  class MPIWGRoot(ZSQLExtendFolder):
                 else:                  else:
                     fields[nr][3].setActiveFlag(False)                      fields[nr][3].setActiveFlag(False)
                                           
                 #nummer hat sich geŠndert                  #nummer hat sich geaendert
                                   
                 entryChanged = False;                  entryChanged = False;
                                   
                   if isinstance(fields[nr][3].xdata_05,list): #for some reasons somtimes the content of the field is a list with one entry.
                       fields[nr][3].xdata_05=fields[nr][3].xdata_05[0]
                                   
                 if not (fields[nr][3].xdata_05==form[str(nr)+'_number']):                  if not (fields[nr][3].xdata_05==form[str(nr)+'_number']):
                     logging.info("Changed!Number+++++++++++++++++++++++++++++++++")                      logging.info("Changed!Number+++++++++++++++++++++++++++++++++")
                       logging.info(repr(fields[nr][3].xdata_05)+" ---> "+ repr(form[str(nr)+'_number']))
                     fields[nr][3].xdata_05=form[str(nr)+'_number']                      fields[nr][3].xdata_05=form[str(nr)+'_number']
                     entryChanged = True                      entryChanged = True
                                           
                 #completed har sich geaendert                  #completed har sich geaendert
                                                           
                 if not (fields[nr][3].getCompletedAt()==fields[nr][3].transformDate(form[str(nr)+'_completed'])):                  td = fields[nr][3].transformDate # hole die funktion zum transformieren des datums
                     
                   if not (td(fields[nr][3].getCompletedAt())==td(form[str(nr)+'_completed'])):
                     fields[nr][3].setCompletedAt(form[str(nr)+'_completed'])                      fields[nr][3].setCompletedAt(form[str(nr)+'_completed'])
                       logging.info(repr(td(fields[nr][3].getCompletedAt()))+" ---> "+ repr(td(form[str(nr)+'_completed'])))
                     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'])):                  if not (td(fields[nr][3].getStartedAt())==td(form[str(nr)+'_started'])):
                     fields[nr][3].setStartedAt(form[str(nr)+'_started'])                      fields[nr][3].setStartedAt(form[str(nr)+'_started'])
               
                       logging.info(repr(td(fields[nr][3].getStartedAt()))+" ---> "+ repr(td(form[str(nr)+'_started'])))
                     logging.info("Changed!Started+++++++++++++++++++++++++++++++++")                      logging.info("Changed!Started+++++++++++++++++++++++++++++++++")
                     entryChanged = True                      entryChanged = True
                                   
Line 1185  class MPIWGRoot(ZSQLExtendFolder): Line 1206  class MPIWGRoot(ZSQLExtendFolder):
                   
         if key=="":          if key=="":
             return ""              return ""
           try:
         key=utf8ify(key)          key=utf8ify(key)
         catalogged=self.MembersCatalog({'getKey':key})          catalogged=self.MembersCatalog({'getKey':key})
         if len(catalogged)==0:          if len(catalogged)==0:
Line 1192  class MPIWGRoot(ZSQLExtendFolder): Line 1214  class MPIWGRoot(ZSQLExtendFolder):
         else:          else:
             return catalogged[0].getObject().getId()              return catalogged[0].getObject().getId()
                   
           except:
               return ""
   
                           
   

Removed from v.1.1.2.13  
changed lines
  Added in v.1.1.2.27


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