diff MPIWGRoot.py @ 51:d456fe185649

more work on projects. more cleanup.
author casties
date Tue, 30 Apr 2013 12:49:26 +0200
parents e30a4bd074db
children 1ed79b33200c
line wrap: on
line diff
--- a/MPIWGRoot.py	Mon Apr 29 20:34:17 2013 +0200
+++ b/MPIWGRoot.py	Tue Apr 30 12:49:26 2013 +0200
@@ -121,23 +121,6 @@
         return bt
 
 
-    def versionHeaderEN(self):
-        """version header text"""
-        
-        date= self.REQUEST.get('date',None)
-        if date:
-            txt="""<h2>This pages shows the project which existed at %s</h2>"""%str(date)
-            return txt
-        return ""
-
-    def versionHeaderDE(self):
-        """version header text"""
-        date= self.REQUEST.get('date',None)
-        if date:
-            txt="""<h2>Auf dieser Seite finden Sie die Projekte mit Stand vom %s</h2>"""%str(date)
-        return ""
-    
-        
     def createOrUpdateId_raw(self):
         """create sequence to create ids for bibliography"""
         debug=None
@@ -165,22 +148,6 @@
         splitted=url.split("/")
         return splitted[4]
 
-    def generateUrlProject(self,url,project=None):
-        """erzeuge aus absoluter url, relative des Projektes"""
-        if project:
-            splitted=url.split("/")
-            length=len(splitted)
-            short=splitted[length-2:length]
-            
-            base=self.REQUEST['URL3']+"/"+"/".join(short)
-
-        else:
-            findPart=url.find("/projects/")
-            base=self.REQUEST['URL1']+"/"+url[findPart:]
-
-                
-        return base
-    
     def isNewCapital(self,text=None,reset=None):
         
         if text:
@@ -406,34 +373,6 @@
         """quote"""
         return urllib.unquote(str)
     
-        
-
-    def getProjectsByFieldContent(self,fieldName,fieldContentsEntry, date=None):
-        """gib alle Projekte aus mit Value von field mit fieldName enthaelt ein Element der Liste fieldContents"""
-        def sort(x,y):
-                return cmp(x.WEB_title[0],y.WEB_title[0])
-
-        if type(fieldContentsEntry) is StringType:
-            fieldContentsTmp=[fieldContentsEntry]
-        else:
-            fieldContentsTmp=fieldContentsEntry
-
-        fieldContents=[]
-        for x in fieldContentsTmp:
-            fieldContents.append(" AND ".join(x.split()))
-        projects=self.ProjectCatalog({fieldName:string.join(fieldContents,' AND')})
-        #print projects
-        #ret=[x for x in projects]
-        ret=[]
-        for x in projects:
-            obj=x.getObject()
-            obj=obj.getActualVersion(date)
-            if obj and (not getattr(obj,'invisible',None)):
-                #if not (x in ret):
-                    ret.append(x)
-
-        ret.sort(sort)
-        return ret
 
     def changeMPIWGRootForm(self):
         """edit"""
@@ -534,50 +473,6 @@
     
     
     
-  
-    def getProjectFields(self,fieldName,date=None,folder=None,sort=None):
-        """getListofFieldNames"""
-        ret=[]
-    
-        objects=self.ZopeFind(self.projects,obj_metatypes=['MPIWGProject'],search_sub=0)
-
-                
-        for object in objects:
-            obj=object[1]
-            obj=obj.getActualVersion(date)
-            if obj and (not getattr(obj,'invisible',None)):
-                if fieldName=="WEB_title_or_short":
-
-                    if len(obj.getContent('xdata_07'))<3: # hack weil z.Z. manchmal noch ein Trennzeichen ; oder , im Feld statt leer
-                        fieldNameTmp="WEB_title"
-                    else:
-                        fieldNameTmp="xdata_07"
-                else:
-                    fieldNameTmp=fieldName
-
-                ret.append((obj,obj.getContent(fieldNameTmp)))
-
-        
-        if sort=="int":
-            ret.sort(sortI)
-        elif sort=="stopWords":
- 
-            ret.sort(sortStopWords(self))
-            
-        else:
-            ret.sort(sortF)
-        
-        return ret
-
-    def showNewProjects(self):
-        projects=[]
-        for objs in self.getProjectFields('WEB_title_or_short'): # Get all Projets
-            if objs[0].xdata_05 and (objs[0].xdata_05[0] == ""):
-                
-                projects.append(objs)
-                
-        return projects
-    
         
     def updatePublicationDB(self,personId=None):
         """updates the publication db, i.e. copy year and type into the main table"""
@@ -814,43 +709,6 @@
     
 
      
-    def reindexCatalogs(self,RESPONSE=None):
-        """reindex members and project catalog"""
-        
-        
-        try:
-            
-            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:
-            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])
-#            
-#        
-#        
-#        
-        
-        
-        if RESPONSE:
-            RESPONSE.redirect('manage_main')
-
-        
-        
 
     def getAllMembers(self):
         #ret=[]
@@ -900,171 +758,8 @@
         rss+="""</channel>
         </rss>"""
 
-        
         return rss
 
-    def getTree(self,dep=None,date=None,onlyActive=0,onlyArchived=0):
-        """generate Tree from project list
-        als Liste, jeder Eintrag ist ein Tupel ,(Tiefe, ProjektNummer,ProjektObject
-        onlyActive = 0  : alle Projekte
-        onlyActive = 1 : nur active Projekte
-        onlyActive = 2: nur inactive Projekte
-        
-        onlyArchived=0: alle Projekte
-        onlyArchived= 1 : nur aktuelle Projekte
-        onlyArchived = 2: nur archivierte Projekte
-        
-        department fuer das Tree geholt werden soll
-        """
-        logging.debug("MPIWGRoot.getTree()")
-
-        returnListTmp=[]
-        returnList=[]
-        
-        for project in self.getProjectFields('xdata_05',sort="int",date=date): # get Projects sorted by xdata_05
-
-            for idNr in project[1].split(";"): # more than one number
-                if not idNr=="":
-                    splittedId=idNr.split(".")
-                    depth=len(splittedId)
-                    nr=idNr
-                    #title=project[0].WEB_title
-                    title=[project[0].getContent('WEB_title')]
-                    #print title
-                    
-                    if idNr[0]=="x": # kompatibilitaet mit alter Konvention, x vor der Nummer macht project inactive
-                        project[0].setActiveFlag(False)
-                   
-                    if (not dep) or (splittedId[0]==dep): #falls dep gesetzt ist nur dieses hinzufuegen.
-                        
-                        if (onlyActive==0):
-                            returnListTmp.append((depth,nr,title,project[0]))
-                        elif (onlyActive==1) and project[0].isActiveProject(): #nur active projekte
-                            returnListTmp.append((depth,nr,title,project[0]))
-                        elif (onlyActive==2) and (not project[0].isActiveProject()): #nur active projekte
-                            returnListTmp.append((depth,nr,title,project[0]))
-                   
-                   
-        #filter jetzt die Liste nach Archived oder nicht
-        for entry in returnListTmp:
-                    if (onlyArchived==0):
-                            returnList.append(entry)
-                    elif (onlyArchived==1) and (not entry[3].isArchivedProject()): #nur active projekte
-                            returnList.append(entry)
-                    elif (onlyArchived==2) and (entry[3].isArchivedProject()): #nur active projekte
-                            returnList.append(entry)
-                   
-        
-        return returnList
-
-
-        
-    def changePosition(self,treeId,select,RESPONSE=None):
-        """Change Postion Entry"""
-        numbers=[]
-
-        # Suche hoechste bisherige nummer
-        projects=self.getProjectFields('xdata_05') # get Projects sorted by xdata_05
-        #print "pj",projects
-        for project in projects: #suche alle subtrees der treeId
-            #print treeId
-            
-            founds=re.match(treeId+"\.(.*)",project[1].split(";")[0])
-            if founds:
-                #print "x",founds.group(0),len(founds.group(0).split("."))
-                if len(founds.group(0).split("."))==len(treeId.split("."))+1: # nur ein punkt mehr, d.h. untere ebene
-                    try:
-                        numbers.append(int(founds.group(0).split(".")[len(founds.group(0).split("."))-1]))
-                    except:
-                        numbers.append(int(0))
-
-        try:
-            highest=max(numbers)
-        except:
-            highest=0
-        projects=self.showNewProjects()
-        for i in self.makeList(select):
-            highest+=10
-            projects[int(i)][0].xdata_05=treeId+"."+str(highest)
-
-
-        if RESPONSE is not None:
-            RESPONSE.redirect('showTree')
-        
-    def changeTree(self,RESPONSE=None):
-        """change the complete tree"""
-        form=self.REQUEST.form
-        hashList={}
-        onlyArchived=int(form.get("onlyArchived",0))
-        onlyActive=int(form.get("onlyActive",0))
-        dep=form.get("dep",None)
-        
-        fields=self.getTree(dep=dep,onlyArchived=onlyArchived,onlyActive=onlyActive)
-        
-        logging.info("GOT TREE!----------------------------------------------------")
-        for field in form.keys():
-            
-            splitted=field.split('_')
-            if (len(splitted)>1) and (splitted[1]=="runningNumber"): #feld hat die Form Nummer_name und runnignNumber
-            
-                
-                nr=int(splitted[0]) # nummer des Datensatzes
-                currentEntry = fields[nr]
-            
-                if form.has_key(str(nr)+'_active'): # active flag is set
-                    fields[nr][3].setActiveFlag(True)
-                else:
-                    fields[nr][3].setActiveFlag(False)
-                    
-                #nummer hat sich geaendert
-                
-                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']):
-                    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']
-                    entryChanged = True
-                    
-                #completed har sich geaendert
-                          
-                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'])
-                    logging.info(repr(td(fields[nr][3].getCompletedAt()))+" ---> "+ repr(td(form[str(nr)+'_completed'])))
-                    logging.info("Changed!Completed+++++++++++++++++++++++++++++++++")
-                    entryChanged = True
-                
-                if not (td(fields[nr][3].getStartedAt())==td(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+++++++++++++++++++++++++++++++++")
-                    entryChanged = True
-                
-                
-                if entryChanged:
-                    logging.info("Changed!+++++++++++++++++++++++++++++++++")
-                    fields[nr][3].copyObjectToArchive()
-                
-                    
-        if RESPONSE is not None:
-            RESPONSE.redirect('showTree')
-
-    def getProjectWithId(self,id):
-        fields=self.getProjectFields('xdata_05')
-        for field in fields:
-            if field[1]==id:
-                return field[0]
-
-        return None
-            
-        
-            
         
     def getRelativeUrlFromPerson(self,list):
         """get urls to person list"""