version 1.47.2.73, 2007/04/19 12:18:50
|
version 1.47.2.79, 2007/10/18 12:00:17
|
Line 110 def sortI(x,y):
|
Line 110 def sortI(x,y):
|
except: |
except: |
return cmp(x[1],y[1]) |
return cmp(x[1],y[1]) |
|
|
|
|
|
def unicodify(str): |
|
"""decode str (utf-8 or latin-1 representation) into unicode object""" |
|
if not str: |
|
return "" |
|
if type(str) is StringType: |
|
try: |
|
return str.decode('utf-8') |
|
except: |
|
return str.decode('latin-1') |
|
else: |
|
return str |
|
|
|
def utf8ify(str): |
|
"""encode unicode object or string into byte string in utf-8 representation""" |
|
if not str: |
|
return "" |
|
if type(str) is StringType: |
|
return str |
|
else: |
|
return str.encode('utf-8') |
|
|
|
|
class MPIWGLink(SimpleItem): |
class MPIWGLink(SimpleItem): |
"""create a symbolic link to another page""" |
"""create a symbolic link to another page""" |
|
|
Line 335 class MPIWGRoot(ZSQLExtendFolder):
|
Line 358 class MPIWGRoot(ZSQLExtendFolder):
|
except: |
except: |
return str.decode('latin-1') |
return str.decode('latin-1') |
else: |
else: |
|
|
return str |
return str |
|
|
|
|
|
def getat(self,array,idx=0,default=None): |
|
"""return array element idx or default (but no exception)""" |
|
if len(array) <= idx: |
|
return default |
|
else: |
|
return array[idx] |
|
|
|
|
def browserCheck(self): |
def browserCheck(self): |
"""check the browsers request to find out the browser type""" |
"""check the browsers request to find out the browser type""" |
bt = {} |
bt = {} |
Line 830 class MPIWGRoot(ZSQLExtendFolder):
|
Line 860 class MPIWGRoot(ZSQLExtendFolder):
|
#create the object |
#create the object |
e_mail=args[key] |
e_mail=args[key] |
try: |
try: |
newObj=MPIWGStaff.MPIWGStaff(e_mail,res.last_name.encode('utf-8'),res.first_name.encode('utf-8'),k) |
newObj=MPIWGStaff.MPIWGStaff(e_mail,res.last_name,res.first_name,k) |
memberFolder._setObject(e_mail,newObj) |
memberFolder._setObject(e_mail,newObj) |
obj=getattr(memberFolder,e_mail) |
obj=getattr(memberFolder,e_mail) |
obj.reindex_object() |
obj.reindex_object() |
ret+="Created %s \n"%e_mail |
ret+="Created %s \n"%e_mail |
created=True |
created=True |
except: |
except: |
|
|
msg="Cannot create new user %s (%s %s)"%(e_mail,sys.exc_info()[0],sys.exc_info()[1]) |
msg="Cannot create new user %s (%s %s)"%(e_mail,sys.exc_info()[0],sys.exc_info()[1]) |
logging.error(msg) |
logging.error(msg) |
ret+=msg+"\n" |
ret+=msg+"\n" |
created=False |
created=False |
|
|
if created: |
if created: |
qstr="update personal_www set web_object_created='yes',e_mail='%s' where key=%s"%(e_mail,self.ZSQLQuote(k)) |
qstr="update personal_www set web_object_created='yes',e_mail='%s@mpiwg-berlin.mpg.de' where key=%s"%(e_mail,self.ZSQLQuote(k)) |
self.ZSQLQuery(qstr) |
self.ZSQLQuery(qstr) |
|
|
return ret |
return ret |
Line 891 class MPIWGRoot(ZSQLExtendFolder):
|
Line 920 class MPIWGRoot(ZSQLExtendFolder):
|
|
|
columns=data.keys() |
columns=data.keys() |
for x in ignoreEntries: |
for x in ignoreEntries: |
|
logging.info("ign rem: %s"%x) |
|
try: #falls in ignore entries felder sind, die nicht in columns sind, fange den fehler ab |
columns.remove(x) |
columns.remove(x) |
|
except: |
|
pass |
|
|
|
|
insert=[] |
insert=[] |
Line 914 class MPIWGRoot(ZSQLExtendFolder):
|
Line 946 class MPIWGRoot(ZSQLExtendFolder):
|
# self.ZSQLQuery(queryStr) |
# self.ZSQLQuery(queryStr) |
|
|
return True,msg |
return True,msg |
|
|
|
|
def updatePersonalwww_doIt(self): |
def updatePersonalwww_doIt(self): |
"""do the update""" |
"""do the update""" |
args=self.REQUEST.form |
args=self.REQUEST.form |
Line 924 class MPIWGRoot(ZSQLExtendFolder):
|
Line 958 class MPIWGRoot(ZSQLExtendFolder):
|
# generate the new entry |
# generate the new entry |
|
|
if news and (len(news)>0): |
if news and (len(news)>0): |
ret+="<h2>Hinzugefgt</h2>" |
ret+="<h2>Hinzugefügt</h2>" |
ret+="<p>Neueintrge erscheinen erst auf der Homepage, wenn ihnen eine e-mail Adresse zugeordnet wurde.</p>" |
ret+="<p>Neueinträge erscheinen erst auf der Homepage, wenn ihnen eine e-mail Adresse zugeordnet wurde.</p>" |
ret+="<ul>" |
ret+="<ul>" |
for new in news: |
for new in news: |
|
|
Line 937 class MPIWGRoot(ZSQLExtendFolder):
|
Line 971 class MPIWGRoot(ZSQLExtendFolder):
|
else: |
else: |
ret+="<li>OK: %s"%(new.encode('utf-8')) |
ret+="<li>OK: %s"%(new.encode('utf-8')) |
if news and (len(news)>0): |
if news and (len(news)>0): |
ret+="<p>Neueintrge erscheinen erst auf der Homepage, wenn ihnen eine e-mail Adresse zugeordnet wurde.</p>" |
ret+="<p>Neueinträge erscheinen erst auf der Homepage, wenn ihnen eine e-mail Adresse zugeordnet wurde.</p>" |
ret+="</ul>" |
ret+="</ul>" |
|
|
# update |
# update |
|
|
if len(conflicts.keys())>0: |
if len(conflicts.keys())>0: |
ret+="<h2>Bei nderung belassen</h2>" |
ret+="<h2>Änderung des Benutzers übernehmen</h2>" |
ret+="<p>Bitte die Filemaker-db entsprehchend ndern</p>" |
ret+="<p>Wenn nötig in Filemaker-db ändern:</p>" |
|
|
|
|
|
# konflicte |
for conflict in conflicts.keys(): |
for conflict in conflicts.keys(): |
ignoreEntries=[] |
ignoreEntries=[] |
displayIgnored=[] |
displayIgnored=[] |
Line 964 class MPIWGRoot(ZSQLExtendFolder):
|
Line 998 class MPIWGRoot(ZSQLExtendFolder):
|
|
|
self.updatePersonEntry(resultSet[conflict],ignoreEntries=ignoreEntries) |
self.updatePersonEntry(resultSet[conflict],ignoreEntries=ignoreEntries) |
|
|
|
# rest |
|
cl=list(conflicts.keys()) |
|
|
|
for key in resultSet.keys(): |
|
if key not in cl: |
|
self.updatePersonEntry(resultSet[key]) |
return ret+"</body></html>" |
return ret+"</body></html>" |
|
|
|
|
def updateInstitutsbiliography(self): |
def updateInstitutsbiliography(self): |
"""update the Institutsbibliogrpahy""" |
"""update the Institutsbibliogrpahy""" |
self.upDateSQL('personalwww.xml') |
self.upDateSQL('personalwww.xml') |
return "<html><body>DONE</body></html>" |
return "<html><body>DONE</body></html>" |
|
|
|
|
def updatePersonalwww_html(self): |
def updatePersonalwww_html(self): |
"""update form for the homepages web form""" |
"""update form for the homepages web form""" |
pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','updatePersonalwww.zpt')).__of__(self) |
pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','updatePersonalwww.zpt')).__of__(self) |
return pt() |
return pt() |
|
|
|
|
def updatePersonalwww(self,uploadfile): |
def updatePersonalwww(self,uploadfile): |
"""update personalwww |
"""update personalwww |
@param uploadfile: file handle auf das file |
@param uploadfile: file handle auf das file |
Line 1251 class MPIWGRoot(ZSQLExtendFolder):
|
Line 1295 class MPIWGRoot(ZSQLExtendFolder):
|
@param key: (optional) Key zur Idenfikation des Benutzer |
@param key: (optional) Key zur Idenfikation des Benutzer |
@param date: (optional) Version die zum Zeitpunkt date gueltig war |
@param date: (optional) Version die zum Zeitpunkt date gueltig war |
""" |
""" |
# TODO: Die ganze Lsung |
# TODO: Die ganze Loesung |
def sortP(x,y): |
def sortP(x,y): |
"""sort by sorting number""" |
"""sort by sorting number""" |
#print x.xdata_05,y.xdata_05 |
#print x.xdata_05,y.xdata_05 |
Line 1573 class MPIWGProject(CatalogAware,Folder):
|
Line 1617 class MPIWGProject(CatalogAware,Folder):
|
meta_type='MPIWGProject' |
meta_type='MPIWGProject' |
default_catalog='ProjectCatalog' |
default_catalog='ProjectCatalog' |
|
|
|
def decode(self,str): |
|
"""return unicode object""" |
|
return unicodify(str) |
|
|
def sortedByPlace(self,metatype): |
def sortedByPlace(self,metatype): |
"""find metatype and sort by place""" |
"""find metatype and sort by place""" |
Line 2259 class MPIWGProject(CatalogAware,Folder):
|
Line 2306 class MPIWGProject(CatalogAware,Folder):
|
if (text5=="<br>") or (text5=="<br/>"): |
if (text5=="<br>") or (text5=="<br/>"): |
text5="" |
text5="" |
|
|
return text5.encode('utf-8') |
logging.debug("getcontent: field=%s filter=%s -> %s"%(field,filter,repr(text5))) |
|
#return unicodify(text5) |
|
return utf8ify(text5) # return as utf-8 byte string |
|
|
|
|
def showImagesOfPage(self,imageUrl=None): |
def showImagesOfPage(self,imageUrl=None): |
"""show Images of project""" |
"""show Images of project""" |