--- ZSQLExtend/ZSQLExtend.py 2005/02/10 16:18:15 1.60 +++ ZSQLExtend/ZSQLExtend.py 2005/04/27 19:36:01 1.63 @@ -11,6 +11,8 @@ from Products.PageTemplates.ZopePageTemp from Products.PageTemplates.PageTemplateFile import PageTemplateFile from Products.ZSQLMethods.SQL import SQLConnectionIDs +from xml.sax.saxutils import escape +from types import * import Shared.DC.ZRDB.DA import zLOG import os.path @@ -201,7 +203,7 @@ class ZSQLExtendFolder(Folder,Persistent return ret def ZSQLSelectionFromCRList(self,fieldname,listField,boxType="checkbox",checked=None): - """generate select oprions form a cr seperated list""" + """generate select options from a cr seperated list""" fields=listField.split("\n") ret="" for field in fields: @@ -211,18 +213,45 @@ class ZSQLExtendFolder(Folder,Persistent ret+="""%s"""%(fieldname,boxType,field.encode('utf-8'),field.encode('utf-8')) return ret + def ZSQLSelectionFromSearchList(self,fieldname,results,fieldnameResult,boxType="checkbox",checked=None): + """generate select options from a cr seperated list""" + + ret="" + if not results: return "" + + for result in results: + field=getattr(result,fieldnameResult) + if field: + if checked and (getattr(result,fieldnameResult) in checked.split("\n")): + ret+="""%s"""%(fieldname,boxType,field.encode('utf-8'),field.encode('utf-8')) + else: + ret+="""%s"""%(fieldname,boxType,field.encode('utf-8'),field.encode('utf-8')) + return ret + - def ZSQLOptionsFromCRList(self,fieldname,listField, multiple=''): + def ZSQLOptionsFromCRList(self,fieldname,listField, multiple='',start=None,startValue=None,size=None): """generate select oprions form a cr seperated list""" fields=listField.split("\n") - ret=""" + """%(fieldname,multiple,size) + + else: + ret="""""" return ret - def ZSQLOptionsFromSearchList(self,fieldname,results,fieldName,valueName=None,start=None, multiple='',startValue=None,additionalSelect=""): + def ZSQLOptionsFromSearchList(self,fieldname,results,fieldName,valueName=None,start=None, multiple='',startValue=None,additionalSelect="",size=None,linelen=None): """generate select options form a search list es wird + if size: + ret=""" """%(fieldname,multiple,additionalSelect) if start: if start==' ': @@ -253,7 +285,13 @@ class ZSQLExtendFolder(Folder,Persistent field=getattr(result,fieldName) fieldValue=getattr(result,valueName) if fieldValue: - ret+=""""""%(field,fieldValue) + if not linelen: + ret+=""""""%(field,fieldValue) + else: + mist = """%s"""%(fieldValue) + if len(mist) > string.atoi(linelen): + mist = mist[:string.atoi(linelen)] + ret+=""""""%(field,mist) ret+="""""" return ret @@ -821,7 +859,7 @@ class ZSQLExtendFolder(Folder,Persistent if storename and (not NoQuery): query2="SELECT count(*) FROM %s %s"%(table,where) - + #print "QUERYSTRING:",self.REQUEST.SESSION[storename]['queryString2'] if not self.REQUEST.SESSION.has_key(storename): self.REQUEST.SESSION[storename]={} @@ -833,8 +871,10 @@ class ZSQLExtendFolder(Folder,Persistent if not self.REQUEST.SESSION[storename]['queryString2']==query2: #print "HOOOOO",storename self.REQUEST.SESSION[storename]['queryString2']=query2 - self.REQUEST.SESSION[storename]['count']=self.ZSQLSimpleSearch(query2)[0].count - + try: + self.REQUEST.SESSION[storename]['count']=self.ZSQLSimpleSearch(query2)[0].count + except: + self.REQUEST.SESSION[storename]['count']=0 #print "QUERY",query2,"::::",self.REQUEST.SESSION[storename]['queryString2'] else: @@ -1256,20 +1296,28 @@ class ZSQLBibliography(Folder,ZSQLExtend return retdata,fieldlist - def createRDFTag(self,tag,content,namespace="ns"): + def createRDFTag(self,tag,content,namespace="cdli"): """create RDF""" if content: tag=namespace+":"+tag - ret=""" <%s>%s"""%(tag,content,tag) + if (type(content) is StringType) or (type(content) is UnicodeType): + ret=""" <%s>%s"""%(tag,escape(content),tag) + else: + ret=""" <%s>%s"""%(tag,content,tag) return ret.decode('latin-1') else: return "" def createIndexTag(self,tag,content): """create tag""" + if content: - ret="""<%s>%s"""%(tag,content,tag) - return ret + if (type(content) is StringType) or (type(content) is UnicodeType): + ret=""" <%s>%s"""%(tag,escape(content),tag) + else: + ret=""" <%s>%s"""%(tag,content,tag) + return ret.decode('latin-1') + else: return ""