Diff for /MPIWGWeb/MPIWGProjects.py between versions 1.47.2.1 and 1.47.2.14

version 1.47.2.1, 2005/05/25 15:15:25 version 1.47.2.14, 2005/06/20 17:11:46
Line 61  def sortI(x,y): Line 61  def sortI(x,y):
     except:      except:
         return cmp(x[1],y[1])          return cmp(x[1],y[1])
   
   class MPIWGLink(SimpleItem):
       """create a symbolic link to another page"""
   
       meta_type="MPIWGLink"
       
       def __init__(self,id,link,title='',weight=''):
           """init mpiwglink"""
           self.id=id
           self.link=link
           self.title=title
           self.weight=weight
   
       def getObj(self):
           """bekomme original"""
          ##  objpath=self.link.replace("/",".")
   ##         if objpath[0]!=".":
   ##             objpath="."+objpath
   
   ##         print objpath
   ##         return eval("self"+objpath)
   
   
           splitted=self.link.split("/")
           obj=self
           for x in splitted:
               obj=getattr(obj,x)
               
           return obj
   
       def getWeight(self):
           if self.linkWeight and linkWeight!="":
               return self.linkWeight
           else:
               return self.getObj().weight
   
       manage_options=SimpleItem.manage_options+(
           {'label':'main config','action':'changeLinkForm'},
           )
   
   
       def changeLinkForm(self):
           """change MPIWG link"""
           pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','MPIWGLinkChange.zpt')).__of__(self)
           return pt()
   
       def changeLink(self,link,title,weight,RESPONSE=None):
           """change links"""
           self.link=link
           self.title=title
           self.weight=weight
   
           if RESPONSE is not None:
               RESPONSE.redirect('manage')
   
       def index_html(self):
           """index"""
           
           return self.getObj().pt_render(extra_context={'here':self})
                                          
   
   def manage_addMPIWGLinkForm(self):
       """Form for adding link"""
       pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt/AddMPIWGLink.zpt')).__of__(self)
       return pt()
   
   def manage_addMPIWGLink(self,id,link,title,weight,RESPONSE=None):
       """add link"""
       newObj=MPIWGLink(id,link,title,weight)
   
       self._setObject(id,newObj)
       
       if RESPONSE is not None:
           RESPONSE.redirect('manage_main')
   
   
 class MPIWGTemplate(ZopePageTemplate):  class MPIWGTemplate(ZopePageTemplate):
     """Create a layout Template for different purposes"""      """Create a layout Template for different purposes"""
   
Line 168  class MPIWGRoot(ZSQLExtendFolder): Line 243  class MPIWGRoot(ZSQLExtendFolder):
     folders=['MPIWGProject','Folder','ECHO_Navigation']      folders=['MPIWGProject','Folder','ECHO_Navigation']
     meta_type='MPIWGRoot'      meta_type='MPIWGRoot'
   
       def getKategory(self,url):
       """kategorie"""
       splitted=url.split("/")
       return splitted[4]
   
       def generateUrlProject(self,url,project=None):
           """erzeuge aus absoluter url, relative des Projektes"""
   
           splitted=url.split("/")
           length=len(splitted)
           short=splitted[length-2:length]
       if project:
               base=self.REQUEST['URL3']+"/"+"/".join(short)
       else:
           base=self.REQUEST['URL1']+"/"+"/".join(short)
           return base
       
     def isNewCapital(self,text=None,reset=None):      def isNewCapital(self,text=None,reset=None):
         if reset:          if reset:
             self.REQUEST['capital']="A"              self.REQUEST['capital']="A"
Line 185  class MPIWGRoot(ZSQLExtendFolder): Line 277  class MPIWGRoot(ZSQLExtendFolder):
             x1=int(getattr(x[1],'weight','0'))              x1=int(getattr(x[1],'weight','0'))
             y1=int(getattr(y[1],'weight','0'))              y1=int(getattr(y[1],'weight','0'))
             return cmp(x1,y1)              return cmp(x1,y1)
                   if hasattr(self,id):
         subs=self.ZopeFind(getattr(self,id),obj_metatypes=['MPIWGTemplate'])          subs=self.ZopeFind(getattr(self,id),obj_metatypes=['MPIWGTemplate'])
         subs.sort(sortWeight)              subret=[]
         return subs              for x in subs:
                           if not(x[1].title==""):
                       subret.append(x)
               subret.sort(sortWeight)
               return subret
           else:
               return None
     def isActive(self,name):      def isActive(self,name):
         """teste ob subnavigation aktiv"""          """teste ob subnavigation aktiv"""
         for part in self.REQUEST['URL'].split("/"):          for part in self.REQUEST['URL'].split("/"):
Line 396  class MPIWGRoot(ZSQLExtendFolder): Line 493  class MPIWGRoot(ZSQLExtendFolder):
   
     def getProjectsByFieldContent(self,fieldName,fieldContentsEntry):      def getProjectsByFieldContent(self,fieldName,fieldContentsEntry):
         """gib alle Projekte aus mit Value von field mit fieldName enthält ein Element der Liste fieldContents"""          """gib alle Projekte aus mit Value von field mit fieldName enthält ein Element der Liste fieldContents"""
           def sort(x,y):
           return cmp(x.WEB_title[0],y.WEB_title[0])
   
         if type(fieldContentsEntry) is StringType:          if type(fieldContentsEntry) is StringType:
             fieldContents=[fieldContentsEntry]              fieldContentsTmp=[fieldContentsEntry]
         else:          else:
             fieldContents=fieldContentsEntry              fieldContentsTmp=fieldContentsEntry
                           
         projects=self.ProjectCatalog({fieldName:string.join(fieldContents,' OR')})          fieldContents=[]
           for x in fieldContentsTmp:
               fieldContents.append(" AND ".join(x.split()))
           projects=self.ProjectCatalog({fieldName:string.join(fieldContents,' AND')})
         #print projects          #print projects
         return projects      ret=[x for x in projects]
       ret.sort(sort)
           return ret
   
     def changeMPIWGRootForm(self):      def changeMPIWGRootForm(self):
         """edit"""          """edit"""
Line 422  class MPIWGRoot(ZSQLExtendFolder): Line 527  class MPIWGRoot(ZSQLExtendFolder):
   
     def getDisciplineList(self):      def getDisciplineList(self):
         """get disciplines as list"""          """get disciplines as list"""
         return self.disciplineList.split("\n")          list= self.disciplineList.split("\n")
           return [x.rstrip().lstrip() for x in list]
           
     def getThemeList(self):      def getThemeList(self):
         """get themes as list"""          """get themes as list"""
         return self.themesList.split("\n")          list= self.themesList.split("\n")
           return [x.rstrip().lstrip() for x in list]
           
     def test(self):      def test(self):
         """test"""          """test"""
Line 617  class MPIWGRoot(ZSQLExtendFolder): Line 724  class MPIWGRoot(ZSQLExtendFolder):
                     #title=project[0].WEB_title                      #title=project[0].WEB_title
                     title=[project[0].getContent('WEB_title')]                      title=[project[0].getContent('WEB_title')]
                     #print title                      #print title
               if idNr[0]!="x":
                     returnList.append((depth,nr,title,project[0]))                      returnList.append((depth,nr,title,project[0]))
                   
         return returnList          return returnList
   
       def formatElementsAsList(self,elements):
           """formatiere tree als liste"""
           
           actualDepth=0
           ret=""
           for element in elements:
               if (element[0]>actualDepth):
                   #fuege soviele ul ein wie unterschied in tiefe
                   if element[0]==1:
                       ret+="""<div class="dept">\n<ul class="liste">\n"""
                   else:
                       for i in range(element[0]-actualDepth):
                           if i>0:
                               ret+="<li>"
                           ret+="""<ul class="liste">\n"""
   
                   actualDepth=element[0]
                   
               elif (element[0]<actualDepth):
                   #fuege soviele /ul ein wie unterschied in tiefe
                   for i in range(-element[0]+actualDepth):
   
                       ret+="<br><br></li></ul>\n"
   
                       #ret+="<br><br>\n</li>\n</ul>\n</li>\n"
   
   
                   if element[0]==1:
                       department=int(element[3].getContent('xdata_05'))-1
                       
                       ret+="""</ul></div>\n"""
               if department==4: #hack
               department=3
   
                       ret+="""<div class="bildspalte"><img src="../grafik/dept%i.jpg" width="160" height="120" vspace="40"></div>
                       <div class="dept">\n<ul class="liste">\n
                       """%department
               
                   actualDepth=element[0]
               else:
                   ret+="""\n</li>\n"""
               ret+="""<li>\n"""
               
               if actualDepth==1:
                   departmentName={'1':'Department I','2':'Department II','3':'Department III', '4':'Ind. Research Group','5':'Ind. Research Group'} 
                   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="%s">%s</a>"""%(self.generateUrlProject(element[3].absolute_url())+"/index.html",element[3].getContent('WEB_title'))
           return ret
   
     def formatElementForOverview(self,element):      def formatElementForOverview(self,element):
         """format the element for output in overview"""          """format the element for output in overview"""
Line 782  class MPIWGRoot(ZSQLExtendFolder): Line 940  class MPIWGRoot(ZSQLExtendFolder):
         ret=[]          ret=[]
         splitNeu=[]          splitNeu=[]
         if email:          if email:
             #print "IIII:",self.getId()              print "IIII:",self.getId()
             members=self.ZopeFind(self,obj_metatypes=['MPIWGStaff'],obj_ids=[email],search_sub=1)              members=self.ZopeFind(self.members,obj_metatypes=['MPIWGStaff'],obj_ids=[email],search_sub=1)
             name =  members[0][1].title.decode('utf-8')              name =  members[0][1].title.decode('utf-8')
   
         y=name          y=name
Line 1093  class MPIWGProject(CatalogAware,Folder): Line 1251  class MPIWGProject(CatalogAware,Folder):
         """get attrbiute"""          """get attrbiute"""
         return getattr(self,field)          return getattr(self,field)
   
     def getContent(self,field):      def getContent(self,field,filter=None):
         """Inhalt des Feldes"""          """Inhalt des Feldes"""
                   
         text=u''          text=u''
Line 1125  class MPIWGProject(CatalogAware,Folder): Line 1283  class MPIWGProject(CatalogAware,Folder):
         if (text2=='') and (field=='WEB_project_header'):          if (text2=='') and (field=='WEB_project_header'):
             return self.getContent('WEB_title')              return self.getContent('WEB_title')
   
           if filter:
               splitted=text2.split("""<p class="picture">""")
               if len(splitted)>1:
                   tmp=splitted[1].split("</p>")
           #return repr(splitted[1])
                   try:
               self.imageURL=tmp[0].split("\"")[1].encode('utf-8')
           except:
               self.imageURL=tmp[0].split("src=")[1].split(" ")[0].encode('utf-8')
           
                   split2="</p>".join(tmp[1:])
   
                   text3=splitted[0]+split2
   
                   splitted=text3.split("""<p class="picturetitle">""")
                   if len(splitted)>1:
                       tmp=splitted[1].split("</p>")
               self.imagecap=tmp[0].encode('utf-8')
                   
                       split4="".join(tmp[1:])
   
                       text5=splitted[0]+split4
                   else:
                       #keine caption
                       text5=text3
               else:
                   #kein bild
                   text5=text2
           else:
               text5=text2
   
         #teste ob WEB_project_description und keine führenden p tags          #teste ob WEB_project_description und keine führenden p tags
         if (len(text2)>4) and (not text2[0:3]=='<p>') and (field=='WEB_project_description'):          if (len(text5)>4) and (not text5[0:3]=='<p>') and (field=='WEB_project_description'):
             return "<p>"+text2+"</p>"              text5= "<p>"+text5+"</p>"
   
   
           #filter image
           
   
           return text5.encode('utf-8')
   
       def showImagesOfPage(self,imageUrl=None):
           """show Images of project"""
           self.getContent('WEB_project_description',filter='yes') #get the content and store image infos into session
           pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','projectImageView.zpt')).__of__(self)
           return pt()
   
         return text2.encode('utf-8')  
           
     def show_html(self):      def show_html(self):
         """simple index"""          """simple index"""
Line 1194  class MPIWGProject(CatalogAware,Folder): Line 1393  class MPIWGProject(CatalogAware,Folder):
         else:          else:
             splitted=list[0].split(";")              splitted=list[0].split(";")
   
           splitted=[y.rstrip().lstrip() for y in splitted]
   
         for x in splitted:          for x in splitted:
             if (not x==u'') and x in wert:              if (not x==u'') and x in wert:

Removed from v.1.47.2.1  
changed lines
  Added in v.1.47.2.14


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