Diff for /MPIWGWeb/MPIWGProjects.py between versions 1.47.2.92 and 1.47.2.97

version 1.47.2.92, 2008/08/28 18:20:09 version 1.47.2.97, 2008/09/02 12:00:06
Line 591  class MPIWGProject(CatalogAware,Folder): Line 591  class MPIWGProject(CatalogAware,Folder):
                   
     def setCompletedAt(self,date):      def setCompletedAt(self,date):
         """set the date of completion, date should be in the form DD.MM.YYYY or MM.YYYY or YYYY"""          """set the date of completion, date should be in the form DD.MM.YYYY or MM.YYYY or YYYY"""
         logging.info("DATE:"+repr(date))          #logging.info("DATE:"+repr(date))
         transformedDate=self.transformDate(date);          transformedDate=self.transformDate(date);
         logging.info("transformed"+repr(transformedDate))          #logging.info("transformed"+repr(transformedDate))
         if transformedDate is not None:          if transformedDate is not None:
             setattr(self,"completedAt",transformedDate)              setattr(self,"completedAt",transformedDate)
             return True;              return True;
Line 602  class MPIWGProject(CatalogAware,Folder): Line 602  class MPIWGProject(CatalogAware,Folder):
           
     def setStartedAt(self,date):      def setStartedAt(self,date):
         """set the date of start, date should be in the form DD.MM.YYYY or MM.YYYY or YYYY"""          """set the date of start, date should be in the form DD.MM.YYYY or MM.YYYY or YYYY"""
         logging.info("DATE:"+repr(date))          #logging.info("DATE:"+repr(date))
         transformedDate=self.transformDate(date);          transformedDate=self.transformDate(date);
         logging.info("transformed"+repr(transformedDate))          #logging.info("transformed"+repr(transformedDate))
         if transformedDate is not None:          if transformedDate is not None:
             setattr(self,"startedAt",transformedDate)              setattr(self,"startedAt",transformedDate)
             return True;              return True;
Line 616  class MPIWGProject(CatalogAware,Folder): Line 616  class MPIWGProject(CatalogAware,Folder):
         if date:          if date:
             return self.reTransformDate(date);              return self.reTransformDate(date);
         else:          else:
               # test ob parent abgeschlossen ist
               
               ct=self.getContexts(parents=self.getContent('xdata_05'),depth=1)
               if (len(ct)>0): #is there are parent
                   
                   return ct[0][0].getCompletedAt()
             return '';              return '';
                   
     def getStartedAt(self):      def getStartedAt(self):
Line 1019  class MPIWGProject(CatalogAware,Folder): Line 1025  class MPIWGProject(CatalogAware,Folder):
         # skip direct parent Folder /projects/          # skip direct parent Folder /projects/
         parent = self.aq_parent.aq_parent          parent = self.aq_parent.aq_parent
         # get parents breadcrumbs          # get parents breadcrumbs
         logging.debug("getbreadcrumbs,: title=%s self=%s parent=%s"%(self.title, repr(self), repr(parent)))  
         if hasattr(parent, 'getBreadcrumbs'):          if hasattr(parent, 'getBreadcrumbs'):
             logging.debug("getbreadcrumbs: recurse to %s"%parent)  
             crumbs = parent.getBreadcrumbs()              crumbs = parent.getBreadcrumbs()
                   
         # try to get acquisition URL from parent          # try to get acquisition URL from parent
Line 1043  class MPIWGProject(CatalogAware,Folder): Line 1047  class MPIWGProject(CatalogAware,Folder):
                           
         return crumbs          return crumbs
   
       def getRootProject(self):
           """returns the current root (=top level) project"""
           ct=self.getContexts(parents=self.getContent('xdata_05'))
           if len(ct) > 0:
               return ct[-1][0]
           else:
               return self        
   
   
     def preview(self,description):      def preview(self,description):
         """preview"""          """preview"""
         tmpPro=getattr(self,"previewTemplate",None)          tmpPro=getattr(self,"previewTemplate",None)
Line 1094  class MPIWGProject(CatalogAware,Folder): Line 1107  class MPIWGProject(CatalogAware,Folder):
         #logging.info("XXXXXXXXXXXXX"+repr(self.responsibleScientistsList))          #logging.info("XXXXXXXXXXXXX"+repr(self.responsibleScientistsList))
       
                   
         keys = [x[1] for x in getattr(self,"responsibleScientistsList",[])]          keys = [unicodify(x[1]) for x in getattr(self,"responsibleScientistsList",[])]
           #logging.error("RESP. SCIEN:%s"%getattr(self,"responsibleScientistsList",[]))
           #logging.error("RESP. SCIEN:%s"%unicodify(key))
                           
         if key in keys:          if unicodify(key) in keys:
             return True              return True
         else:          else:
             return False              return False
                   
     def getPersonKeyList(self):      def getPersonKeyList(self):
         """gibt die key Lister der beteiligten Personen zurŸck"""          """gibt die key Liste der beteiligten Personen zurŸck (utf8 codiert)"""
         return [x[1] for x in getattr(self,'responsibleScientistsList',[])]          #logging.error("getPersonKeyList:%s"%getattr(self,'responsibleScientistsList',[]))
                  try:
               return [utf8ify(x[1]) for x in getattr(self,'responsibleScientistsList',[])]
           except:
               return[]
                   
                 
       def myCapitalize(self,txt):
           """kapitalisiere auch Namen mit -"""
           splitted=[x.capitalize() for x in txt.split("-")]
           return "-".join(splitted)
                           
     def identifyNames(self,nameList):      def identifyNames(self,nameList):
         """Bekommt eine Komma oder Semikolon getrennte Liste mit Name der Form Vorname MittelName(n) Nachname          """Bekommt eine Komma oder Semikolon getrennte Liste mit Name der Form Vorname MittelName(n) Nachname
         und ordnet diese dann Mitarbeiter IDs zu falls es schone eine Liste gibt wird im Projekte gibt wird diese Upgedated.          und ordnet diese dann Mitarbeiter IDs zu falls es schone eine Liste gibt wird im Projekte gibt wird diese Upgedated.
         @param nameList          @param nameList
         """          """
         nameList=nameList.replace(";",",") # falls ; als Trenner ersetze          
           if nameList.find(";")>-1: # rate Trenner ist ;
             names=nameList.split(";")  
             
           else:
         names=nameList.split(",")          names=nameList.split(",")
                   
           ##nameList=nameList.replace(";",",") # falls ; als Trenner ersetze    
         returnNamesDict={}          returnNamesDict={}
   
                 
Line 1131  class MPIWGProject(CatalogAware,Folder): Line 1158  class MPIWGProject(CatalogAware,Folder):
                 lastname=nameSplitted[0]                  lastname=nameSplitted[0]
                                 
             #finde Mitarbeiter mit den entsprechenden Name              #finde Mitarbeiter mit den entsprechenden Name
             logging.info("Search: %s %s %s"%(name,firstname,lastname))              
             firstname=firstname.capitalize()              firstname=self.myCapitalize(firstname).encode('utf-8')
             lastname=lastname.capitalize()              lastname=self.myCapitalize(lastname).encode('utf-8')
               logging.info("Search: %s %s %s"%(name,repr(firstname),repr(lastname)))
             try:              try:
                 cataloggedNames=self.MembersCatalog(firstName=firstname,lastName=lastname)                  cataloggedNames=self.MembersCatalog({'firstName':firstname,'lastName':lastname})
             except:              except:
                 cataloggedNames=[]                  cataloggedNames=[]
                   logging.error("ERROR: identifyNames %s %s"%sys.exc_info()[0:2])
               
             #Teste ob die ensprechenden Namen schon der Liste zu geordnet sind              #Teste ob die ensprechenden Namen schon der Liste zu geordnet sind
             #if not hasattr(self,'responsibleScientistsList'):              #if not hasattr(self,'responsibleScientistsList'):
             #     self.responsibleScientistsList={}              #     self.responsibleScientistsList={}
Line 1196  class MPIWGProject(CatalogAware,Folder): Line 1226  class MPIWGProject(CatalogAware,Folder):
                     keys[nr]=self.REQUEST[key]                      keys[nr]=self.REQUEST[key]
                                   
                     
         for nr in names.keys():          for nr in names.keys():#schreibe keys und namen in die Liste, stelle ausserdem sicher, dass name unicode
              tmpList.append((names[nr],keys.get(nr,"")))               tmpList.append((unicodify(names[nr]),unicodify(keys.get(nr,""))))
                             
         self.responsibleScientistsList=tmpList          self.responsibleScientistsList=tmpList
         if fromEdit and (RESPONSE is not None):          if fromEdit and (RESPONSE is not None):
             #RESPONSE.redirect('./editMPIWGBasisEditor')              #RESPONSE.redirect('./editMPIWGBasisEditor')
             return self.editMPIWGBasisEditor(identifiedNames=self.identifyNames(self.REQUEST.get('xdata_01','')))              return self.editMPIWGBasisEditor(identifiedNames=self.identifyNames(self.decode(self.REQUEST.get('xdata_01',''))))
                           
         else:          else:
             if RESPONSE is not None:              if RESPONSE is not None:
Line 1273  class MPIWGProject(CatalogAware,Folder): Line 1303  class MPIWGProject(CatalogAware,Folder):
             identifiedNames=self.identifyNames(self.getContent('xdata_01'))              identifiedNames=self.identifyNames(self.getContent('xdata_01'))
            # identifiedNames=self.getFullNameEntries()             # identifiedNames=self.getFullNameEntries()
                           
           logging.error("IdentifiedNames: %s"% repr(identifiedNames))
         pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','edit_MPIWGBasisNeu.zpt')).__of__(self)          pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','edit_MPIWGBasisNeu.zpt')).__of__(self)
         return pt(identifiedNames=identifiedNames)          return pt(identifiedNames=identifiedNames)
   

Removed from v.1.47.2.92  
changed lines
  Added in v.1.47.2.97


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