#TO DO author_semi_kolon etc. ersetzen durch Funktionen
def formatBibliography(self,found):
ret=""
if found.id_institutsbibliographie and (not found.id_institutsbibliographie==''):
ret+=formatBiblHelp(self,found,table='institutsbiblio',id=found.id_institutsbibliographie)
else:
ret+=formatBiblHelp(self,found,table='bibliography',id=found.id_gen_bib)
return ret
def CRListToSemicolon(self,listStr,showall=False):
if listStr:
listStr.replace(";","\n")
list=listStr.split("\n")
if not showall: #filter eigentuemer der hoempage
for x in list:
if x==self.title: # loesche den Eigentuemer der Hoempage aus der Liste
del(list[list.index(x)])
if len(list)==0: # kein anderer Autor
return None
elif showall:
return "; ".join(list)
else:
return "(joint with %s)"%"; ".join(list)
else:
return None
def getBib(value):
if value:
return value
else:
return ""
return ret
def cleanPunctuation(teststr):
"""clean up punktuation"""
ret=""
signs="!:;.,?"
for x in teststr:
if x in signs:
if (len(ret)>0) and (ret[-1]==' '):
ret=ret[0:-1]
ret+=x
return ret
def formatBiblHelp(self,found,table,id,foundIB=None):
ret=""
if not foundIB:
try:
foundIB=self.ZSQLInlineSearch(_table=table,id=id)[0]
except:
return ret
if foundIB.reference_type.lower()=='journal article':
if CRListToSemicolon(foundIB.author):
ret+=getBib(CRListToSemicolon(foundIB.author))+". ""
ret+=getBib(foundIB.title)+". " "+"<i>%s</i>"%getBib(foundIB.secondary_title)+" "+getBib(foundIB.volume)+" ("
if not self.ZSQLisEmpty(foundIB.number):
ret+=foundIB.number+" "
if foundIB.year:
ret+=getattr(foundIB,'year','')
ret+=")"
if foundIB.pages and (not foundIB.pages)=='':
ret+=": "+foundIB.pages+"."
elif foundIB.reference_type.lower()=='edited book':
if CRListToSemicolon(self,foundIB.author):
ret+=CRListToSemicolon(self,foundIB.author)+" (Editor/s). ""
if foundIB.title and (not foundIB.title==""):
ret+="<i>"+foundIB.title+"</i>."
if foundIB.place_published and (not foundIB.place_published==''):
ret+=foundIB.place_published+": "
if foundIB.publisher and (not foundIB.publisher==''):
ret+=foundIB.publisher+", "
ret+=getBib(foundIB.year)+"."
elif foundIB.reference_type.lower()=='book section' or foundIB.reference_type.lower()=='in book':
if CRListToSemicolon(self,foundIB.author):
ret+=getBib(CRListToSemicolon(self,foundIB.author))+". ""
ret+=getBib(foundIB.title)+"." In: <i>"+getBib(foundIB.secondary_title)+"</i>"
if (CRListToSemicolon(self,foundIB.secondary_author,showall=True)) and (not CRListToSemicolon(self,foundIB.secondary_author,showall=True)==''):
ret+=", eds.: "+CRListToSemicolon(self,foundIB.secondary_author,showall=True)
ret+=". "
if foundIB.pages and (not foundIB.pages)=='':
ret+=foundIB.pages+". "
if foundIB.place_published and (not foundIB.place_published==''):
ret+=foundIB.place_published+": "
if foundIB.publisher and (not foundIB.publisher==''):
ret+=foundIB.publisher+", "
ret+=getBib(foundIB.year)+"."
elif foundIB.reference_type.lower()=='book':
if CRListToSemicolon(self,foundIB.author):
ret+=getBib(CRListToSemicolon(self,foundIB.author))+". "
ret+="<i>"+getBib(foundIB.title)+"</i>. "
if foundIB.pages and (not foundIB.pages==''):
ret+=foundIB.pages+". "
if foundIB.place_published and (not foundIB.place_published==''):
ret+=foundIB.place_published+": "
if foundIB.publisher and (not foundIB.publisher==''):
ret+=foundIB.publisher+", "
ret+=getBib(foundIB.year)+"."
elif foundIB.reference_type.lower()=='newspaper article':
if CRListToSemicolon(self,foundIB.author):
ret+=CRListToSemicolon(self,foundIB.author)+". ""
ret+=foundIB.title+"." <i>"+foundIB.secondary_title+"</i>, "
ret+=foundIB.date+"."+foundIB.year+","
if foundIB.pages and (not foundIB.pages==''):
ret+=foundIB.pages+". "
return cleanPunctuation(ret)
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>