Diff for /MPIWGWeb/MPIWGProjects.py between versions 1.47.2.26 and 1.47.2.44

version 1.47.2.26, 2005/10/10 19:10:13 version 1.47.2.44, 2005/12/22 21:09:00
Line 2 Line 2
 for organizing and maintaining the different project pages  for organizing and maintaining the different project pages
   
 """  """
   #TODO: mechanismus fur links to personen ueberarbeiten, da jetzt alle e_mails als members auftauchen unabhaengig vom status publish_the_data
   #TODO: was passiert wenn aenderungen von jochen im filemaker nicht mit den aenderungen im sql uebereinstimmen
   #TODO: in einzelnen projecte steht als pfad auf die bilder noch wwwneu statt www
   
 from Products.PageTemplates.PageTemplateFile import PageTemplateFile  from Products.PageTemplates.PageTemplateFile import PageTemplateFile
 from Products.PageTemplates.PageTemplate import PageTemplate  from Products.PageTemplates.PageTemplate import PageTemplate
 from Products.PageTemplates.ZopePageTemplate import ZopePageTemplate  from Products.PageTemplates.ZopePageTemplate import ZopePageTemplate
Line 23  from Products.ZSQLMethods.SQL import SQL Line 27  from Products.ZSQLMethods.SQL import SQL
 from AccessControl import ClassSecurityInfo  from AccessControl import ClassSecurityInfo
 from bibliography import *  from bibliography import *
 import time  import time
   import xml.dom.minidom
   import sys
   from Ft.Xml.XPath import Evaluate
   from Ft.Xml.XPath.Context import Context
   from Ft.Xml.Domlette import NonvalidatingReader,PrettyPrint, Print
   from Ft.Xml import EMPTY_NAMESPACE
   
 definedFields=['WEB_title','xdata_01','xdata_02','xdata_03','xdata_04','xdata_05','xdata_06','xdata_07','xdata_08','xdata_09','xdata_10','xdata_11','xdata_12','xdata_13','WEB_project_header','WEB_project_description','WEB_related_pub']  definedFields=['WEB_title','xdata_01','xdata_02','xdata_03','xdata_04','xdata_05','xdata_06','xdata_07','xdata_08','xdata_09','xdata_10','xdata_11','xdata_12','xdata_13','WEB_project_header','WEB_project_description','WEB_related_pub']
   
 checkFields = ['xdata_01']  checkFields = ['xdata_01']
   
   
   def getTextFromNode(nodename):
       nodelist=nodename.childNodes
       rc = ""
       for node in nodelist:
           if node.nodeType == node.TEXT_NODE:
              rc = rc + node.data
       return rc
   
 def sortF(x,y):  def sortF(x,y):
     try:      try:
Line 269  class MPIWGRoot(ZSQLExtendFolder): Line 286  class MPIWGRoot(ZSQLExtendFolder):
             txt="""<h2>Auf dieser Seite finden Sie die Projekte mit Stand vom %s</h2>"""%str(date)              txt="""<h2>Auf dieser Seite finden Sie die Projekte mit Stand vom %s</h2>"""%str(date)
         return ""          return ""
           
           
       def createOrUpdateId_raw(self):
           """create sequence to create ids for bibliography"""
           debug=None
           #suche groesste existierende id
           founds=self.ZSQLQuery("select id from bibliography")
           
           if founds:
               ids=[int(x.id[1:]) for x in founds]
               maximum=max(ids)
               
               id_raw=self.ZSQLQuery("select nextval('id_raw')",debug=debug)
               
               if id_raw:
                   self.ZSQLQuery("drop sequence id_raw",debug=debug)
               
               self.ZSQLQuery("create sequence id_raw start %i"%(maximum+1),debug=debug)
           
       
     def queryLink(self,link):      def queryLink(self,link):
         """append querystring to the link"""          """append querystring to the link"""
         return "%s?%s"%(link,self.REQUEST.get('QUERY_STRING',''))          return "%s?%s"%(link,self.REQUEST.get('QUERY_STRING',''))
Line 501  class MPIWGRoot(ZSQLExtendFolder): Line 537  class MPIWGRoot(ZSQLExtendFolder):
                             list[urllib.quote(personNormal)]=(personNormal,[project[1]])                              list[urllib.quote(personNormal)]=(personNormal,[project[1]])
   
             except:              except:
                 zLOG.LOG("MPIWG Web (harvestHistoricalPerson)",zLOG.ERROR,"cannot annalyize: %s"%repr(project))                  zLOG.LOG("MPIWG Web (harvestHistoricalPerson)",zLOG.ERROR,"cannot analyize: %s"%repr(project))
   
                                   
         return list          return list
Line 665  class MPIWGRoot(ZSQLExtendFolder): Line 701  class MPIWGRoot(ZSQLExtendFolder):
           
                   
     manage_options = Folder.manage_options+(      manage_options = Folder.manage_options+(
         {'label':'Update Personal Homepages','action':'updateHomepages'},          {'label':'Update personal homepages','action':'updateHomepages'},
           {'label':'Reindex catalogs','action':'reindexCatalogs'},
         {'label':'Main config','action':'changeMPIWGRootForm'},          {'label':'Main config','action':'changeMPIWGRootForm'},
         {'label':'Edit Historical Persons','action':'editHistoricalPersonsForm'},          #{'label':'Edit Historical Persons','action':'editHistoricalPersonsForm'},
         {'label':'Store Historical Persons','action':'storeHistoricalPersons'},          #{'label':'Store Historical Persons','action':'storeHistoricalPersons'},
         )          )
           
     def importNamesForm(self):      def importNamesForm(self):
Line 704  class MPIWGRoot(ZSQLExtendFolder): Line 741  class MPIWGRoot(ZSQLExtendFolder):
         """updates the publication db, i.e. copy year into the main table"""          """updates the publication db, i.e. copy year into the main table"""
                   
         if personId:          if personId:
             founds = self.ZSQLInlineSearch(_table="publications",id=personId)              founds = self.ZSQLInlineSearch(_table="publications",id_main=personId)
         else:          else:
             founds = self.ZSQLInlineSearch(_table="publications")              founds = self.ZSQLInlineSearch(_table="publications")
                           
         for found in founds:          for found in founds:
             if found.id_institutsbibliographie and (not found.id_institutsbibliographie ==""):                          
               if found.id_institutsbibliographie and (not found.id_institutsbibliographie =="") and (not found.id_institutsbibliographie =="0"):
                   
                 entries = self.ZSQLInlineSearch(_table="institutsbiblio",id=found.id_institutsbibliographie)                  entries = self.ZSQLInlineSearch(_table="institutsbiblio",id=found.id_institutsbibliographie)
                 for entry in entries:                  for entry in entries:
                     self.ZSQLChange(_table='publications',_identify='oid=%s' % entry.oid,year=entry.year)                      self.ZSQLChange(_table='publications',_identify='oid=%s' % found.oid,year=entry.year,referencetype=entry.reference_type)
                                           
             if found.id_gen_bib and (not found.id_gen_bib ==""):              if found.id_gen_bib and (not found.id_gen_bib ==""):
                 entries = self.ZSQLInlineSearch(_table="bibliography",id=found.id_gen_bib)                  entries = self.ZSQLInlineSearch(_table="bibliography",id=found.id_gen_bib)
                 for entry in entries:                  for entry in entries:
                     self.ZSQLChange(_table='publications',_identify='oid=%s' % entry.oid,year=entry.year)                      self.ZSQLChange(_table='publications',_identify='oid=%s' % found.oid,year=entry.year,referencetype=entry.reference_type)
                                           
         return True                  return True        
                   
       def updateHomepages(self,RESPONSE=None):
           """ update"""
             
           RESPONSE.setHeader('Content-type', 'text/html')
           RESPONSE.write("<html><body>\n")
           url="http://itgroup.mpiwg-berlin.mpg.de:8050/FMPro?-db=personal-www&-format=-dso_xml&-lay=sql_export&-max=20000&-findall"
           dom = NonvalidatingReader.parseUri(url)
           #fh=urllib.urlopen(url)
           #dom=xml.dom.minidom.parse(fh)
           RESPONSE.write("got_xml_File\n")
           
           
           memberFolder=getattr(self,'members')
           members=memberFolder.ZopeFind(memberFolder,obj_metatypes=["MPIWGStaff"])
           
           memberList=[x[0] for x in members]
           #print dom
           #ctx=Context(dom,processorNss={EMPTY_NAMESPACE:'http://www.filemaker.com/fmpdsoresult'})
           # Evaluate(u".//dn:ROW",contextNode=dom,explicitNss={'dn':'http://www.filemaker.com/fmpdsoresult'})
           #print dom.xpath(u'.//dn:ROW',explicitNss={'dn':'http://www.filemaker.com/fmpdsoresult'})
           for row in dom.xpath(u'.//dn:ROW',explicitNss={'dn':'http://www.filemaker.com/fmpdsoresult'}):
           
               username=getTextFromNode(row.xpath('./dn:username',explicitNss={'dn':'http://www.filemaker.com/fmpdsoresult'})[0])
               id=getTextFromNode(row.xpath('./dn:ID',explicitNss={'dn':'http://www.filemaker.com/fmpdsoresult'})[0])
               name=getTextFromNode(row.xpath('./dn:Name',explicitNss={'dn':'http://www.filemaker.com/fmpdsoresult'})[0])
               vorname=getTextFromNode(row.xpath('./dn:Vorname',explicitNss={'dn':'http://www.filemaker.com/fmpdsoresult'})[0])
               title=getTextFromNode(row.xpath('./dn:Title',explicitNss={'dn':'http://www.filemaker.com/fmpdsoresult'})[0])
               position=getTextFromNode(row.xpath('./dn:Position',explicitNss={'dn':'http://www.filemaker.com/fmpdsoresult'})[0])
               e_mail=getTextFromNode(row.xpath('./dn:e_mail',explicitNss={'dn':'http://www.filemaker.com/fmpdsoresult'})[0])
               e_mail_p=getTextFromNode(row.xpath('./dn:e_mail_p',explicitNss={'dn':'http://www.filemaker.com/fmpdsoresult'})[0])
               date_from=getTextFromNode(row.xpath('./dn:Date_from',explicitNss={'dn':'http://www.filemaker.com/fmpdsoresult'})[0])
               date_to=getTextFromNode(row.xpath('./dn:Date_to',explicitNss={'dn':'http://www.filemaker.com/fmpdsoresult'})[0])
               abteilung=getTextFromNode(row.xpath('./dn:Abteilung',explicitNss={'dn':'http://www.filemaker.com/fmpdsoresult'})[0])
               heimat_inst=getTextFromNode(row.xpath('./dn:heimat_inst',explicitNss={'dn':'http://www.filemaker.com/fmpdsoresult'})[0])
               funded_by=getTextFromNode(row.xpath('./dn:funded_by',explicitNss={'dn':'http://www.filemaker.com/fmpdsoresult'})[0])
               e_mail2=getTextFromNode(row.xpath('./dn:e_mail2',explicitNss={'dn':'http://www.filemaker.com/fmpdsoresult'})[0])
               publish_the_data=getTextFromNode(row.xpath('./dn:publish_the_data',explicitNss={'dn':'http://www.filemaker.com/fmpdsoresult'})[0])
               stay_at_mpiwg=getTextFromNode(row.xpath('./dn:stay_at_mpiwg',explicitNss={'dn':'http://www.filemaker.com/fmpdsoresult'})[0])
               #cwNode=row.xpath('./dn:current_work.current',explicitNss={'dn':'http://www.filemaker.com/fmpdsoresult'})[0]
               cw=row.xpath('./dn:current_work/dn:DATA',explicitNss={'dn':'http://www.filemaker.com/fmpdsoresult'})
               if cw:
                   txt=getTextFromNode(cw[0])
               else:
                   txt=""
              
               #cwNode=row.xpath('.//dn:current_work.publish',explicitNss={'dn':'http://www.filemaker.com/fmpdsoresult'})[0]
               cw=row.xpath('./dn:current_work/dn:DATA',explicitNss={'dn':'http://www.filemaker.com/fmpdsoresult'})
   
               if cw:
                   txt_p=getTextFromNode(cw[0])
               else:
                   txt_p=""
                   
     def updateHomepages(self,RESPONSE):              project=getattr(self,'members')
         """lege members an"""              
               if not (username in memberList):#neuer eintrag
                   
                   try:
                       newObj=MPIWGStaff.MPIWGStaff(str(username),name.encode('utf-8'),vorname.encode('utf-8'))
                       memberFolder._setObject(str(username),newObj)
                       RESPONSE.write("<p>new:%s</p>\n"%username.encode('utf-8'))
                       obj=getattr(memberFolder,username)
                       ret=obj.createNewDBEntry(publish_the_data,id,name,
                                             vorname,username,title,position,e_mail,
                                             e_mail_p,date_from,date_to,
                                             abteilung,heimat_inst,funded_by,
                                             e_mail2,txt,txt_p)
                       RESPONSE.write("""<p>%s</p>"""%ret[1].encode('utf-8'))
                   except:
                       RESPONSE.write("<p>ERROR:%s %s %s</p>\n"%(username.encode('utf-8'),name.encode('utf-8'),vorname.encode('utf-8')))
                       RESPONSE.write("<p>      : %s %s"%sys.exc_info()[:2])
               else:
                   RESPONSE.write("<p>update:%s</p>\n"%username.encode('utf-8'))
                   
                   xquery=".//dn:ROW[dn:username='%s']"%username
                   results=dom.xpath(xquery,explicitNss={'dn':'http://www.filemaker.com/fmpdsoresult'})
                   if len(results)>1:
                       RESPONSE.write("<p>WARNING (update): username %s not unique</p>\n"%username.encode('utf-8'))
                       xquery=".//dn:ROW[dn:publish_the_data='yes' and dn:username='%s']"%username
                       rd=dom.xpath(xquery,explicitNss={'dn':'http://www.filemaker.com/fmpdsoresult'}) 
                       if len(rd)>1:#mehrere published
                           RESPONSE.write("<p>ERROR (update): username %s not unique and more then one date  set to be published</p>\n"%username.encode('utf-8'))
   #                    elif len(rd)==1:#nur einer published, kein published dann mache nichts
   #                        publish_the_data=getTextFromNode(rd[0].xpath('./dn:publish_the_data',explicitNss={'dn':'http://www.filemaker.com/fmpdsoresult'})[0])
   #                        date_from=getTextFromNode(rd[0].xpath('./dn:Date_from',explicitNss={'dn':'http://www.filemaker.com/fmpdsoresult'})[0])
   #                        date_to=getTextFromNode(rd[0].xpath('./dn:Date_to',explicitNss={'dn':'http://www.filemaker.com/fmpdsoresult'})[0])
   #              
   
                   obj=getattr(memberFolder,username)
                   
                   done= obj.updateDBEntry(DBid=id,publish_the_data=publish_the_data,
                                      date_from=date_from,
                                      date_to=date_to,stay_at_mpiwg=stay_at_mpiwg,position=position)
           if not done and (publish_the_data=='yes'):
               
                       ret=obj.createNewDBEntry(publish_the_data,id,name,
                                             vorname,username,title,position,e_mail,
                                             e_mail_p,date_from,date_to,
                                             abteilung,heimat_inst,funded_by,
                                             e_mail2,txt,txt_p)
                       if not ret[0]:
   
                   RESPONSE.write("<p>Error: %s</p>\n"%repr(ret[1]))
               else:
                   RESPONSE.write("<p>New: %s</p>\n"%repr(ret[1]))
   
           #TODO: reindexCatlogs and updatePublications wieder einbaue
           #self.reindexCatalogs(RESPONSE)
       
           #self.updatePublicationDB()
    
           self.ZSQLResetConnection()
       RESPONSE.write("<h2>Done</h2></body></html>")
                      
           return True
        
       def reindexCatalogs(self,RESPONSE=None):
           """reindex members and project catalog"""
           
           
           try:
               self.MembersCatalog.manage_catalogReindex(self.REQUEST,RESPONSE,self.REQUEST['URL1'])
               self.ProjectCatalog.manage_catalogReindex(self.REQUEST,RESPONSE,self.REQUEST['URL1'])
           except:
               zLOG.LOG("MPIWG Root (updatehomepage)",zLOG.WARNING," %s %s"%sys.exc_info()[:2])
               
           
       
              
           if RESPONSE:
               RESPONSE.redirect('manage_main')
   
           
           
       def updateHomepages_old(self,RESPONSE):
           """lege members an, alte version vollstaendige kopie aller fm-dateien per fm.jar"""
         self.upDateSQL('personalwww.xml')          self.upDateSQL('personalwww.xml')
         founds=self.ZSQLInlineSearch(_table='personal_www',publish_the_data='yes')          founds=self.ZSQLInlineSearch(_table='personal_www',publish_the_data='yes')
         project=getattr(self,'members')          project=getattr(self,'members')
Line 771  class MPIWGRoot(ZSQLExtendFolder): Line 942  class MPIWGRoot(ZSQLExtendFolder):
         #    ret.append(x.title.decode('utf-8'))          #    ret.append(x.title.decode('utf-8'))
   
         for x in self.ZopeFind(self.members,obj_metatypes=['MPIWGStaff']):          for x in self.ZopeFind(self.members,obj_metatypes=['MPIWGStaff']):
               if x[1].isPublished():
                                ret.append(x[1].title.decode('utf-8'))                                 ret.append(x[1].title.decode('utf-8'))
                           
         ret.sort()          ret.sort()
Line 858  class MPIWGRoot(ZSQLExtendFolder): Line 1030  class MPIWGRoot(ZSQLExtendFolder):
             ret+="""<li>\n"""              ret+="""<li>\n"""
                           
             if actualDepth==1:              if actualDepth==1:
                 departmentName={'1':'Department I','2':'Department II','3':'Department III', '4':'Ind. Research Group','5':'Ind. Research Group'}                   departmentName={'1':'Department I','2':'Department II','3':'Department III', '4':'Ind. Research Group','5':'Ind. Research Group','6':'Research Network'} 
                 department=element[3].getContent('xdata_05')                  department=element[3].getContent('xdata_05')
                 ret+="""<a href="#top"><img src="../grafik/totop.gif" vspace="10" border="0"></a><br><a name="dept%s"></a>%s: """%(department,departmentName[department])                  ret+="""<a href="#top"><img src="../grafik/totop.gif" vspace="10" border="0"></a><br><a name="dept%s"></a>%s: """%(department,departmentName[department])
   
Line 876  class MPIWGRoot(ZSQLExtendFolder): Line 1048  class MPIWGRoot(ZSQLExtendFolder):
                 return """<h2 class="hier"><a href="%s">Ind. Research Group I: %s</a></h2>"""%(element[3].absolute_url()+"/index.html",element[3].getContent('WEB_title'))                  return """<h2 class="hier"><a href="%s">Ind. Research Group I: %s</a></h2>"""%(element[3].absolute_url()+"/index.html",element[3].getContent('WEB_title'))
             if element[3].getContent('xdata_05') == "5":              if element[3].getContent('xdata_05') == "5":
                 return """<h2 class="hier"><a href="%s">Ind. Research Group II: %s</a></h2>"""%(element[3].absolute_url()+"/index.html",element[3].getContent('WEB_title'))                  return """<h2 class="hier"><a href="%s">Ind. Research Group II: %s</a></h2>"""%(element[3].absolute_url()+"/index.html",element[3].getContent('WEB_title'))
               if element[3].getContent('xdata_05') == "6":
                   return """<h2 class="hier"><a href="%s">Research Network "History of Scientific Objects": %s</a></h2>"""%(element[3].absolute_url()+"/index.html",element[3].getContent('WEB_title'))
                           
             return """<h2 class="hier"><a href="%s">Department %s: %s</a></h2>"""%(element[3].absolute_url()+"/index.html",element[3].getContent('xdata_05'),element[3].getContent('WEB_title'))              return """<h2 class="hier"><a href="%s">Department %s: %s</a></h2>"""%(element[3].absolute_url()+"/index.html",element[3].getContent('xdata_05'),element[3].getContent('WEB_title'))
   
Line 998  class MPIWGRoot(ZSQLExtendFolder): Line 1172  class MPIWGRoot(ZSQLExtendFolder):
                     except:                      except:
                         proj=None                          proj=None
   
                 if proj:                  if proj and (proj[0].getObject().isPublished()):
                     if person =="Otto Sibum" : person="H. Otto Sibum"                      if person =="Otto Sibum" : person="H. Otto Sibum"
                     if person =="Norton Wise" : person="M. Norton Wise"                      if person =="Norton Wise" : person="M. Norton Wise"
                     #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.encode('utf-8')))
Line 1144  class MPIWGRoot(ZSQLExtendFolder): Line 1318  class MPIWGRoot(ZSQLExtendFolder):
         return (fieldname in checkFields)          return (fieldname in checkFields)
   
   
       
       
           
 def manage_addMPIWGRootForm(self):  def manage_addMPIWGRootForm(self):
     """form for adding the root"""      """form for adding the root"""
     pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','addMPIWGRootForm.zpt')).__of__(self)      pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','addMPIWGRootForm.zpt')).__of__(self)
Line 1242  class MPIWGProject(CatalogAware,Folder): Line 1413  class MPIWGProject(CatalogAware,Folder):
                   
           
     def copyImageToMargin(self,RESPONSE=None):      def copyImageToMargin(self,RESPONSE=None):
           #TODO: copy more than one image
         """copy inline images to marginal images"""          """copy inline images to marginal images"""
         self.getContent('WEB_project_description',filter='yes')          self.getContent('WEB_project_description',filter='yes')
   
Line 1254  class MPIWGProject(CatalogAware,Folder): Line 1426  class MPIWGProject(CatalogAware,Folder):
                           
         self.addImage(None,self.imagecap,filename=filename)          self.addImage(None,self.imagecap,filename=filename)
         #hole die bilddaten aus der url          #hole die bilddaten aus der url
         data=urllib.urlopen(self.absolute_url()+"/"+self.imageURL).read()          url=self.absolute_url()+"/"+self.imageURL
           #url=self.absolute_url()+"/"+filename
           
           try:#relative url
               data=urllib.urlopen(url).read()
           except:
               try:#absolute
                   data=urllib.urlopen(self.imageURL).read()
               except:
                   zLOG.LOG("MPIWG Project",zLOG.ERROR,"can't open: %s"%url)
   
         obj=getattr(self,filename)          obj=getattr(self,filename)
         obj.update_data(data)          obj.update_data(data)
Line 1752  class MPIWGProject(CatalogAware,Folder): Line 1933  class MPIWGProject(CatalogAware,Folder):
                   
         return True          return True
   
     security.declareProtected('View managment screens','edit')      security.declareProtected('View management screens','edit')
     def edit(self,western=None):      def edit(self,western=None):
         """Edit pages"""          """Edit pages"""
         if western:          if western:
Line 1762  class MPIWGProject(CatalogAware,Folder): Line 1943  class MPIWGProject(CatalogAware,Folder):
         pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','edit_MPIWGProjectNeu.zpt')).__of__(self)          pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','edit_MPIWGProjectNeu.zpt')).__of__(self)
         return pt()          return pt()
   
       edit_MPIWGProject_main = PageTemplateFile('zpt/edit_MPIWGProject_main', globals())
   
       def getPathStyle(self, path, selected, style=""):
           """returns a string with the given style + 'sel' if path == selected."""
   
           if path == selected:
               return style + 'sel'
           else:
               return style    
   
     def preview(self,description):      def preview(self,description):
         """preview"""          """preview"""
         tmpPro=getattr(self,"previewTemplate",None)          tmpPro=getattr(self,"previewTemplate",None)
Line 1771  class MPIWGProject(CatalogAware,Folder): Line 1962  class MPIWGProject(CatalogAware,Folder):
         for field in definedFields:          for field in definedFields:
             setattr(tmpPro,field,getattr(self,field))              setattr(tmpPro,field,getattr(self,field))
         tmpPro.WEB_project_description=description[0:]          tmpPro.WEB_project_description=description[0:]
                   tmpPro.invisible=True
         pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','previewFrame.zpt')).__of__(self)          pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','previewFrame.zpt')).__of__(self)
         return pt()          return pt()
   
Line 1879  class MPIWGProject(CatalogAware,Folder): Line 2070  class MPIWGProject(CatalogAware,Folder):
         splitted=[y.rstrip().lstrip() for y in splitted]          splitted=[y.rstrip().lstrip() for y in splitted]
                   
         for x in splitted:          for x in splitted:
               x=re.sub(r"[^A-z ]","",x)
             if (not x==u'') and x in wert:              if (not x==u'') and x in wert:
                 return 1                  return 1
         return 0          return 0
Line 1889  class MPIWGProject(CatalogAware,Folder): Line 2081  class MPIWGProject(CatalogAware,Folder):
         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()          return pt()
   
           security.declareProtected('View management screens','editMPIWGBasisForm')
     def editMPIWGBasisForm(self):      def editMPIWGBasisForm(self):
         """editform"""          """editform"""
         pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','edit_MPIWGBasis.zpt')).__of__(self)          pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','edit_MPIWGBasis.zpt')).__of__(self)
         return pt()          return pt()
   
           security.declareProtected('View management screens','editMPIWGRelatedPublicationsForm')
     def editMPIWGRelatedPublicationsForm(self):      def editMPIWGRelatedPublicationsForm(self):
         """Edit related Publications"""          """Edit related Publications"""
         pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','edit_MPIWGRelatedPublications.zpt')).__of__(self)          pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','edit_MPIWGRelatedPublications.zpt')).__of__(self)

Removed from v.1.47.2.26  
changed lines
  Added in v.1.47.2.44


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