--- MPIWGWeb/MPIWGProjects.py 2005/06/14 12:35:55 1.47.2.13 +++ MPIWGWeb/MPIWGProjects.py 2005/06/20 17:53:25 1.47.2.15 @@ -61,6 +61,83 @@ def sortI(x,y): except: 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.lstrip().split("/") + obj=self + for x in splitted: + if not x=="": + 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): """Create a layout Template for different purposes""" @@ -203,7 +280,7 @@ class MPIWGRoot(ZSQLExtendFolder): y1=int(getattr(y[1],'weight','0')) 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','MPIWGLink']) subret=[] for x in subs: if not(x[1].title==""): @@ -865,7 +942,7 @@ class MPIWGRoot(ZSQLExtendFolder): ret=[] splitNeu=[] if email: - print "IIII:",self.getId() + members=self.ZopeFind(self.members,obj_metatypes=['MPIWGStaff'],obj_ids=[email],search_sub=1) name = members[0][1].title.decode('utf-8')