--- MPIWGWeb/MPIWGProjects.py 2005/06/05 22:06:35 1.47.2.9
+++ MPIWGWeb/MPIWGProjects.py 2005/08/30 17:07:53 1.47.2.20
@@ -61,6 +61,90 @@ 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 isActiveItem(self):
+ """teste ob ausgewaehlt"""
+ #url1 beim link anstelle von url1, da link jeweils index_html als url hat.
+ if self.absolute_url()==self.REQUEST['URL1']:
+ return "aktiv"
+ else:
+ return ""
+
+ 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"""
@@ -97,13 +181,13 @@ class MPIWGTemplate(ZopePageTemplate):
"""change form"""
- def isActive(self):
+ def isActiveItem(self):
"""teste ob ausgewaehlt"""
if self.absolute_url()==self.REQUEST['URL']:
return "aktiv"
else:
return ""
-
+
def manage_addMPIWGTemplateForm(self):
"""Form for adding"""
pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt/AddMPIWGTemplate.zpt')).__of__(self)
@@ -160,7 +244,7 @@ class MPIWGRoot(ZSQLExtendFolder):
fieldLabels={'WEB_title':'WEB_Title','xdata_01':'Responsible Scientists','xdata_02':'Department',
'xdata_03':'Historical Persons','xdata_04':'Time period',
'xdata_05':'Sorting number','xdata_06':'Keywords','xdata_07':'Short title',
- 'xdata_08':'Other involved scholars' ,'xdata_09':'Part of','xdata_10':'Covered by',
+ 'xdata_08':'Other involved scholars' ,'xdata_09':'Disciplines','xdata_10':'Themes',
'xdata_11':'Object Digitallibrary','xdata_12':'Cooperation partners',
'xdata_13':'Funding institutions','WEB_project_header':'WEB_project_header',
'WEB_project_description':'WEB_project_description','WEB_related_pub':'WEB_related_pub'}
@@ -168,6 +252,26 @@ class MPIWGRoot(ZSQLExtendFolder):
folders=['MPIWGProject','Folder','ECHO_Navigation']
meta_type='MPIWGRoot'
+ def versionHeaderEN(self):
+ """version header text"""
+
+ date= self.REQUEST.get('date',None)
+ if date:
+ txt="""
This pages shows the project which existed at %s
"""%str(date)
+ return txt
+ return ""
+
+ def versionHeaderDE(self):
+ """version header text"""
+ date= self.REQUEST.get('date',None)
+ if date:
+ txt="""Auf dieser Seite finden Sie die Projekte mit Stand vom %s
"""%str(date)
+ return ""
+
+ def queryLink(self,link):
+ """append querystring to the link"""
+ return "%s?%s"%(link,self.REQUEST.get('QUERY_STRING',''))
+
def getKategory(self,url):
"""kategorie"""
splitted=url.split("/")
@@ -175,14 +279,18 @@ class MPIWGRoot(ZSQLExtendFolder):
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)
+ splitted=url.split("/")
+ length=len(splitted)
+ short=splitted[length-2:length]
+
+ base=self.REQUEST['URL3']+"/"+"/".join(short)
+
else:
- base=self.REQUEST['URL1']+"/"+"/".join(short)
+ findPart=url.find("/projects/")
+ base=self.REQUEST['URL1']+"/"+url[findPart:]
+
+
return base
def isNewCapital(self,text=None,reset=None):
@@ -196,15 +304,31 @@ class MPIWGRoot(ZSQLExtendFolder):
else:
return False
- def subNav(self,id):
+ def subNav(self,obj):
"""return subnav elemente"""
def sortWeight(x,y):
x1=int(getattr(x[1],'weight','0'))
y1=int(getattr(y[1],'weight','0'))
return cmp(x1,y1)
- if hasattr(self,id):
- subs=self.ZopeFind(getattr(self,id),obj_metatypes=['MPIWGTemplate'])
+ #if obj.meta_type in ['MPIWGTemplate','MPIWGLink']:
+ # id=obj.aq_parent.getId()
+ #else:
+
+ #id=obj.getId()
+
+
+ #suche die zweite ebene
+ if not obj.aq_parent.getId() in ['de','en']:
+ obj=obj.aq_parent
+
+ while not self.ZopeFind(self,obj_ids=[obj.getId()]):
+ obj=obj.aq_parent
+
+ if hasattr(self,obj.getId()):
+
+ subs=self.ZopeFind(getattr(self,obj.getId()),obj_metatypes=['MPIWGTemplate','MPIWGLink'])
subret=[]
+
for x in subs:
if not(x[1].title==""):
subret.append(x)
@@ -212,6 +336,7 @@ class MPIWGRoot(ZSQLExtendFolder):
return subret
else:
return None
+
def isActive(self,name):
"""teste ob subnavigation aktiv"""
for part in self.REQUEST['URL'].split("/"):
@@ -416,16 +541,32 @@ class MPIWGRoot(ZSQLExtendFolder):
pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','editHistoricalPersonsForm')).__of__(self)
return pt()
- def getProjectsByFieldContent(self,fieldName,fieldContentsEntry):
+ def getProjectsByFieldContent(self,fieldName,fieldContentsEntry, date=None):
"""gib alle Projekte aus mit Value von field mit fieldName enthält ein Element der Liste fieldContents"""
- if type(fieldContentsEntry) is StringType:
- fieldContents=[fieldContentsEntry]
+ def sort(x,y):
+ return cmp(x.WEB_title[0],y.WEB_title[0])
+
+ if type(fieldContentsEntry) is StringType:
+ fieldContentsTmp=[fieldContentsEntry]
else:
- fieldContents=fieldContentsEntry
-
- projects=self.ProjectCatalog({fieldName:string.join(fieldContents,' OR')})
+ fieldContentsTmp=fieldContentsEntry
+
+ fieldContents=[]
+ for x in fieldContentsTmp:
+ fieldContents.append(" AND ".join(x.split()))
+ projects=self.ProjectCatalog({fieldName:string.join(fieldContents,' AND')})
#print projects
- return 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"""
@@ -444,29 +585,32 @@ class MPIWGRoot(ZSQLExtendFolder):
def getDisciplineList(self):
"""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):
"""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):
"""test"""
return self.getProjectsByFieldContent('xdata_09',['biology'])[0].absolute_url
- def getContexts(self,childs=None,parents=None,depth=None):
+ def getContexts(self,childs=None,parents=None,depth=None,date=None):
"""childs alle childs, alle parents"""
ret=[]
+
if parents:
splitted=parents.split(".")
parentId=string.join(splitted[0:len(splitted)-1],".")
- for project in self.getProjectFields('xdata_05',sort='int'):
+ for project in self.getProjectFields('xdata_05',sort='int',date=date):
if project[1]==parentId:
ret.append(project)
if childs:
- for project in self.getProjectFields('xdata_05',sort='int'):
+ for project in self.getProjectFields('xdata_05',sort='int',date=date):
searchStr=childs+"(\..*)"
if re.match(searchStr,project[1]):
@@ -479,7 +623,7 @@ class MPIWGRoot(ZSQLExtendFolder):
ret.append(project)
return ret
- def getProjectFields(self,fieldName,actual="yes",folder=None,sort=None):
+ def getProjectFields(self,fieldName,date=None,folder=None,sort=None):
"""getListofFieldNames"""
ret=[]
@@ -488,8 +632,8 @@ class MPIWGRoot(ZSQLExtendFolder):
for object in objects:
obj=object[1]
-
- if (not getattr(obj,'invisible',None)) and (obj.isActual()):
+ 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
@@ -512,7 +656,7 @@ class MPIWGRoot(ZSQLExtendFolder):
def showNewProjects(self):
projects=[]
for objs in self.getProjectFields('WEB_title_or_short'): # Get all Projets
- if objs[0].xdata_05[0] == "":
+ if objs[0].xdata_05 and (objs[0].xdata_05[0] == ""):
projects.append(objs)
@@ -626,10 +770,11 @@ class MPIWGRoot(ZSQLExtendFolder):
return entry
- def getTree(self):
+ def getTree(self,date=None):
"""generate Tree from project list"""
+
returnList=[]
- for project in self.getProjectFields('xdata_05',sort="int"): # get Projects sorted by xdata_05
+ 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=="":
@@ -639,7 +784,8 @@ class MPIWGRoot(ZSQLExtendFolder):
#title=project[0].WEB_title
title=[project[0].getContent('WEB_title')]
#print title
- returnList.append((depth,nr,title,project[0]))
+ if idNr[0]!="x":
+ returnList.append((depth,nr,title,project[0]))
return returnList
@@ -652,37 +798,49 @@ class MPIWGRoot(ZSQLExtendFolder):
if (element[0]>actualDepth):
#fuege soviele ul ein wie unterschied in tiefe
if element[0]==1:
- ret+="""\n"""
+ if department==4: #hack
+ department=3
+
ret+="""
- \n
\n
+ \n
\n
"""%department
actualDepth=element[0]
else:
- ret+="""\n"""
+ ret+="""\n\n"""
ret+="""- \n"""
if actualDepth==1:
- departmentName={'1':'Department I','2':'Department II','3':'Department III', '4':'NWG','5':'NWG'}
+ 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+="""
%s: """%(department,departmentName[department])
+ ret+="""
%s: """%(department,departmentName[department])
- ret+="""%s"""%(self.generateUrlProject(element[3].absolute_url())+"/index.html",element[3].getContent('WEB_title'))
+ if self.REQUEST.has_key('date'):
+ ret+="""%s"""%(self.generateUrlProject(element[3].absolute_url())+"/index.html",self.REQUEST['date'],element[3].getContent('WEB_title'))
+ else:
+ ret+="""%s"""%(self.generateUrlProject(element[3].absolute_url())+"/index.html",element[3].getContent('WEB_title'))
return ret
def formatElementForOverview(self,element):
@@ -743,8 +901,9 @@ class MPIWGRoot(ZSQLExtendFolder):
for idNr in form.keys():
- fields[int(idNr)][3].xdata_05=form[idNr]
-
+ if not (fields[int(idNr)][3].xdata_05==form[idNr]):
+ fields[int(idNr)][3].xdata_05=form[idNr]
+ fields[int(idNr)][3].copyObjectToArchive()
if RESPONSE is not None:
@@ -824,17 +983,17 @@ class MPIWGRoot(ZSQLExtendFolder):
ret.append("%s"%person)
return string.join(ret,";")
- def getProjectsOfMembers(self):
+ def getProjectsOfMembers(self,date=None):
"""give tuple member /projects"""
ret=[]
members=self.getAllMembers()
#return str(members)
for x in members:
- ret+=self.getProjectsOfMember(name=x)
+ ret+=self.getProjectsOfMember(name=x,date=date)
return ret
- def getProjectsOfMember(self,name=None,email=None):
+ def getProjectsOfMember(self,name=None,email=None,date=None):
"""get project of a member"""
def sortP(x,y):
"""sort by sorting number"""
@@ -845,7 +1004,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')
@@ -863,8 +1022,7 @@ class MPIWGRoot(ZSQLExtendFolder):
if proj:
proj2=[]
for x in proj:
-
- if not getattr(x.getObject(),'invisible',None):
+ if (not getattr(x.getObject(),'invisible',None)) and (getattr(x.getObject(),'archiveTime','')==''):
if not((splitted[1]==" Christoph") and (splitted[0]=="Hoffmann") and (str(x.WEB_title).find('Einstein')>0)):
proj2.append(x)
@@ -875,8 +1033,8 @@ class MPIWGRoot(ZSQLExtendFolder):
if proj:
names=[x.WEB_title for x in proj]
for x in proj:
-
- if not x.WEB_title in names:
+
+ if (not x.WEB_title in names) and (getattr(x.getObject(),'archiveTime','')==''):
proj2.append(x)
@@ -1000,6 +1158,47 @@ class MPIWGProject(CatalogAware,Folder):
return retTXT%(s,s)
else:
return ""
+
+ def getActualVersion(self,date=None):
+ """actuelle version"""
+ def sortProjectsByTime(x,y):
+ return cmp(x[1].archiveTime,y[1].archiveTime)
+
+ if not date:
+ if self.isActual():
+ return self
+ else:
+ return None
+
+ #suche ob aeltere versionen vorhanden sind
+
+ finds=self.ZopeFind(self,obj_metatypes=['MPIWGProject'])
+ if not finds: #wenn nicht dann teste ob die aktuelle version schon existiert hat.
+ ad=getattr(self,'creationTime','20050101000000')
+ if int(date)>int(ad):
+ return self
+ else:
+ return None
+
+
+ else:
+ finds.sort(sortProjectsByTime)
+
+ for find in finds:
+ #gehe durch die alten Projekte und finde das entprechende
+ if (int(find[1].archiveTime) > int(date)) and (int(date)>int(getattr(find[1],'creationTime','20050101000000'))):
+ return find[1]
+
+ #kein passendes gefunden, dann teste ob das aktuelle in frage kommt
+ ad=getattr(self,'creationTime','20050101000000')
+
+ if int(date)>int(ad):
+
+ return self
+ else:
+ return None
+
+
def isActual(self):
"""gibt 1 zurueck wenn aktuell, 0 sonst"""
actualTime=time.localtime()
@@ -1076,8 +1275,9 @@ class MPIWGProject(CatalogAware,Folder):
RESPONSE.redirect('manage_main')
def __init__(self, id, argv=None):
- """initieriere classe"""
-
+ """initiere classe"""
+
+ self.creationTime=time.strftime("%Y%m%d%H%M%S",time.localtime())[0:]
self.id=id
self.title=id
if argv:
@@ -1106,36 +1306,59 @@ class MPIWGProject(CatalogAware,Folder):
def sortProjectsByTime(x,y):
return cmp(x[1].archiveTime,y[1].archiveTime)
-
+
+ #suche ob aeltere versionen vorhanden sind
+
finds=self.ZopeFind(self,obj_metatypes=['MPIWGProject'])
- if not finds:
- return self.absolute_url()
+ if not finds: #wenn nicht dann teste ob die aktuelle version schon existiert hat.
+ ad=getattr(self,'creationTime','20050101000000')
+ if int(date)>int(ad):
+ return self.REQUEST['URL1']+"/"+self.getId()
+ else:
+ return self.REQUEST['URL1']+"/no_project"
+
+
else:
finds.sort(sortProjectsByTime)
for find in finds:
- if int(find[1].archiveTime) > int(date):
- return find[1].absolute_url()
+ #gehe durch die alten Projekte und finde das entprechende
+ if (int(find[1].archiveTime) > int(date)) and (int(date)>int(getattr(find[1],'creationTime','20050101000000'))):
+ return self.REQUEST['URL1']+"/"+find[1].getId()
- return self.absolute_url()
+ #kein passendes gefunden, dann teste ob das aktuelle in frage kommt
+ ad=getattr(self,'creationTime','20050101000000')
-
-
- def index_html(self):
- """show homepage"""
+ if int(date)>int(ad):
- if self.REQUEST.has_key('date') and self.REQUEST.SESSION.get('MPI_redirected',None)==None:
- self.REQUEST.SESSION['MPI_redirected']=1
- self.REQUEST.RESPONSE.redirect(self.checkDate(self.REQUEST['date']))
+ return self.REQUEST['URL1']+"/"+self.getId()
else:
- self.REQUEST.SESSION['MPI_redirected']=None
+ return self.REQUEST['URL1']+"/no_project"
- ext=self.ZopeFind(self.aq_parent,obj_ids=["project_main"])
-
+
+ def no_project(self):
+ """warnung: project noch nicht existent"""
+ pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','no_project')).__of__(self)
+ return pt()
+
+ def index_html(self,request=True,context=None):
+ """show homepage"""
+ if not context:
+ context=self
+ if request:
+ if self.REQUEST.has_key('date') and self.REQUEST.SESSION.get('MPI_redirected',None)==None:
+ self.REQUEST.SESSION['MPI_redirected']=1
+ self.REQUEST.RESPONSE.redirect(self.checkDate(self.REQUEST['date'])+"?date="+self.REQUEST['date'])
+ else:
+ self.REQUEST.SESSION['MPI_redirected']=None
+
+ #ext=self.ZopeFind(self.aq_parent,obj_ids=["project_main"])
+ ext=getattr(self,"project_main",None)
if ext:
- return getattr(self,ext[0][1].getId())()
+ return getattr(self,ext.getId())()
+
+ pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','project_main')).__of__(context)
- pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','project_main')).__of__(self)
return pt()
@@ -1192,7 +1415,12 @@ class MPIWGProject(CatalogAware,Folder):
splitted=text2.split("""""")
if len(splitted)>1:
tmp=splitted[1].split("
")
- self.REQUEST.SESSION['image']=tmp[0].split("\"")[1].encode('utf-8')
+ #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="".join(tmp[1:])
text3=splitted[0]+split2
@@ -1200,7 +1428,8 @@ class MPIWGProject(CatalogAware,Folder):
splitted=text3.split("""""")
if len(splitted)>1:
tmp=splitted[1].split("
")
- self.REQUEST.SESSION['imagecap']=tmp[0].encode('utf-8')
+ self.imagecap=tmp[0].encode('utf-8')
+
split4="".join(tmp[1:])
text5=splitted[0]+split4
@@ -1215,12 +1444,12 @@ class MPIWGProject(CatalogAware,Folder):
#teste ob WEB_project_description und keine führenden p tags
if (len(text5)>4) and (not text5[0:3]=='') and (field=='WEB_project_description'):
- return "
"+text5+"
"
+ text5= ""+text5+"
"
#filter image
-
+
return text5.encode('utf-8')
def showImagesOfPage(self,imageUrl=None):
@@ -1236,12 +1465,65 @@ class MPIWGProject(CatalogAware,Folder):
pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','MPIWGProject_index.zpt')).__of__(self)
return pt()
+ def saveFromPreview(self):
+ """save content aus preview"""
+ self.WEB_project_description=self.previewTemplate.WEB_project_description[0:]
+ self.REQUEST.RESPONSE.redirect("./index.html")
+
+ def saveEditedContent(self,kupu=None,preview=None):
+ """save Edited content"""
+
+ kupu=preview
+ #find content of body tags
+ start=kupu.find("")
+ end=kupu.find("")
+ newcontent= kupu[start+6:end]
+
+ if preview:
+ return self.preview(newcontent)
+
+ self.WEB_project_description=newcontent[0:]
+
+ self.REQUEST.RESPONSE.redirect("./edit")
+
+ return True
+
+ def edit(self):
+ """Edit pages"""
+ pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','edit_MPIWGProjectNeu.zpt')).__of__(self)
+ return pt()
+
+ def preview(self,description):
+ """preview"""
+ tmpPro=getattr(self,"previewTemplate",None)
+ if not tmpPro:
+ tmpPro=MPIWGProject("previewTemplate")
+ self._setObject("previewTemplate",tmpPro)
+ for field in definedFields:
+ setattr(tmpPro,field,getattr(self,field))
+ tmpPro.WEB_project_description=description[0:]
+
+ pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','previewFrame.zpt')).__of__(self)
+ return pt()
+
+ #return self.REQUEST.RESPONSE.redirect(self.REQUEST['URL1']+"/previewTemplate")
+
+
+ def getWebProject_description(self):
+ """get description"""
+
+ if type(self.WEB_project_description) is ListType:
+ return "Hello"+self.WEB_project_description[0]+""
+ else:
+ return self.WEB_project_description
+
+
def editMPIWGProjectForm(self):
"""editform"""
pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','edit_MPIWGProject.zpt')).__of__(self)
return pt()
- def editMPIWGProject(self,RESPONSE=None):
+ def editMPIWGProject(self,RESPONSE=None,fromEdit=None):
"""edit the project and archive the old version"""
self.copyObjectToArchive() # archive the object
@@ -1252,17 +1534,27 @@ class MPIWGProject(CatalogAware,Folder):
setattr(self,x,[self.REQUEST[x].decode('utf-8')])
+ if fromEdit and (RESPONSE is not None):
+ RESPONSE.redirect('./editMPIWGBasisEditor')
-
- if RESPONSE is not None:
- RESPONSE.redirect('manage_main')
+ else:
+ if RESPONSE is not None:
+ RESPONSE.redirect('manage_main')
+
+ def editMPIWGDisciplinesThemesEditor(self):
+ """edit from edit"""
+ pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','edit_MPIWGDisciplinesThemesNeu.zpt')).__of__(self)
+ return pt()
+
+
def editMPIWGDisciplinesThemesForm(self):
"""edit the disciplines and themes Form"""
+
pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','edit_MPIWGDisciplinesThemes.zpt')).__of__(self)
return pt()
- def editMPIWGDisciplinesThemes(self,disciplines=None,themes=None,RESPONSE=None):
+ def editMPIWGDisciplinesThemes(self,disciplines=None,themes=None,RESPONSE=None,fromEdit=None):
"""edit disciplin and form"""
if disciplines:
if type(disciplines) is StringType:
@@ -1278,9 +1570,13 @@ class MPIWGProject(CatalogAware,Folder):
self.xdata_10=string.join(themes,";")
else:
self.xdata_10=""
-
- if RESPONSE is not None:
- RESPONSE.redirect('manage_main')
+
+ if fromEdit and (RESPONSE is not None):
+ RESPONSE.redirect('./editMPIWGDisciplinesThemesEditor')
+
+ else:
+ if RESPONSE is not None:
+ RESPONSE.redirect('manage_main')
def isChecked(self,wert,list):
@@ -1292,16 +1588,25 @@ class MPIWGProject(CatalogAware,Folder):
else:
splitted=list[0].split(";")
-
+ splitted=[y.rstrip().lstrip() for y in splitted]
+
for x in splitted:
if (not x==u'') and x in wert:
return 1
return 0
+
+ def editMPIWGBasisEditor(self):
+ """editform"""
+ pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','edit_MPIWGBasisNeu.zpt')).__of__(self)
+ return pt()
+
def editMPIWGBasisForm(self):
"""editform"""
pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','edit_MPIWGBasis.zpt')).__of__(self)
return pt()
+
+
def editMPIWGRelatedPublicationsForm(self):
"""Edit related Publications"""
pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','edit_MPIWGRelatedPublications.zpt')).__of__(self)
@@ -1359,6 +1664,6 @@ def manage_addMPIWGProject(self,id,RESPO
self._setObject(id,newObj)
-
+
if RESPONSE is not None:
RESPONSE.redirect('manage_main')