--- MPIWGWeb/MPIWGProjects.py 2006/09/13 08:17:33 1.47.2.59
+++ MPIWGWeb/MPIWGProjects.py 2006/11/06 16:08:30 1.47.2.63
@@ -33,7 +33,6 @@ 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
-import psycopg
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']
@@ -148,9 +147,9 @@ class MPIWGLink(SimpleItem):
else:
return self.getObj().weight
- manage_options=SimpleItem.manage_options+(
+ manage_options=(
{'label':'main config','action':'changeLinkForm'},
- )
+ )+SimpleItem.manage_options
def changeLinkForm(self):
@@ -325,6 +324,35 @@ class MPIWGRoot(ZSQLExtendFolder):
return str
+
+ def browserCheck(self):
+ """check the browsers request to find out the browser type"""
+ bt = {}
+ ua = self.REQUEST.get_header("HTTP_USER_AGENT")
+ bt['ua'] = ua
+ bt['isIE'] = False
+ bt['isN4'] = False
+ if string.find(ua, 'MSIE') > -1:
+ bt['isIE'] = True
+ else:
+ bt['isN4'] = (string.find(ua, 'Mozilla/4.') > -1)
+
+ try:
+ nav = ua[string.find(ua, '('):]
+ ie = string.split(nav, "; ")[1]
+ if string.find(ie, "MSIE") > -1:
+ bt['versIE'] = string.split(ie, " ")[1]
+ except: pass
+
+ bt['isMac'] = string.find(ua, 'Macintosh') > -1
+ bt['isWin'] = string.find(ua, 'Windows') > -1
+ bt['isIEWin'] = bt['isIE'] and bt['isWin']
+ bt['isIEMac'] = bt['isIE'] and bt['isMac']
+ bt['staticHTML'] = False
+
+ return bt
+
+
def versionHeaderEN(self):
"""version header text"""
@@ -454,6 +482,30 @@ class MPIWGRoot(ZSQLExtendFolder):
return True
return False
+ def getSection(self):
+ """returns the current section name"""
+ root = self.absolute_url()
+ url = self.REQUEST['URL']
+ path = string.replace(url, root, '')
+ paths = path.split('/')
+ if len(paths) > 0:
+ sec = paths[1]
+ if sec.find('.') < 0:
+ return sec
+ else:
+ return None
+ return None
+
+ def getSectionStyle(self, name, style=""):
+ """returns a string with the given style + '-sel' if the current section == name"""
+ if self.getSection() == name:
+ return style + '-sel'
+ else:
+ return style
+
+ def MPIWGrootURL(self):
+ """returns the URL to the root"""
+ return self.absolute_url()
def upDateSQL(self,fileName):
"""updates SQL databases using fm.jar"""
@@ -1077,7 +1129,7 @@ class MPIWGRoot(ZSQLExtendFolder):
return entry
- def getTree(self,date=None,onlyActive=None):
+ def getTree(self,dep=None,date=None,onlyActive=None):
"""generate Tree from project list"""
returnList=[]
@@ -1095,13 +1147,14 @@ class MPIWGRoot(ZSQLExtendFolder):
if idNr[0]=="x": # kompatibilitt mit alter Konvention, x vor der Nummer macht project inactive
project[0].setActiveFlag(False)
- if onlyActive and project[0].isActiveProject(): #nur active projekte
- returnList.append((depth,nr,title,project[0]))
- elif not onlyActive:
- returnList.append((depth,nr,title,project[0]))
+ if (not dep) or (idNr[0]==dep): #falls dep gesetzt ist nur dieses hinzufgen.
+ if onlyActive and project[0].isActiveProject(): #nur active projekte
+ returnList.append((depth,nr,title,project[0]))
+ elif not onlyActive:
+ returnList.append((depth,nr,title,project[0]))
return returnList
- def formatElementsAsList(self,elements):
+ def formatElementsAsList(self,elements,onlyOneDept=False):
"""formatiere tree als liste"""
actualDepth=0
@@ -1147,7 +1200,8 @@ class MPIWGRoot(ZSQLExtendFolder):
if actualDepth==1:
departmentName={'1':'Department I','2':'Department II','3':'Department III', '4':'Ind. Research Group','5':'Ind. Research Group','6':'Ind. Research Group','7':'Research Network'}
department=element[3].getContent('xdata_05')
- ret+="""
%s: """%(department,departmentName[department])
+ if not onlyOneDept:
+ ret+="""
%s: """%(department,departmentName[department])
if self.REQUEST.has_key('date'):
ret+="""%s"""%(self.generateUrlProject(element[3].absolute_url())+"/index.html",self.REQUEST['date'],element[3].getContent('WEB_title'))
@@ -1301,7 +1355,11 @@ class MPIWGRoot(ZSQLExtendFolder):
if person =="Otto Sibum" : person="H. Otto Sibum"
if person =="Norton Wise" : person="M. Norton Wise"
#ret.append("%s"%(proj[0].absolute_url,person.encode('utf-8')))
- ret.append("%s"%(proj[0].absolute_url+"/index.html",person))
+ if self.MPIWGrootURL().split("/")[-1]=='en':
+ tmpPath="/en/staff/members/"
+ else:
+ tmpPath="/de/mitarbeiter/members/"
+ ret.append("%s"%(tmpPath+proj[0].getObject().getId()+"/index.html",person))
else:
#ret.append("%s"%person.encode('utf-8'))
ret.append("%s"%person)
@@ -1448,6 +1506,7 @@ class MPIWGRoot(ZSQLExtendFolder):
def generateNameIndex(self):
"""erzeuge einen index verwendeter personen"""
+ import psycopg
o = psycopg.connect('dbname=authorities user=dwinter password=3333',serialize=0)
results={}
print self.fulltext.historicalNames.items()
@@ -2494,4 +2553,4 @@ def manage_addMPIWGProject(self,id,RESPO
if RESPONSE is not None:
- RESPONSE.redirect('manage_main')
\ No newline at end of file
+ RESPONSE.redirect('manage_main')