--- basket/basket.py 2006/04/07 17:44:40 1.11 +++ basket/basket.py 2007/08/15 15:49:03 1.14 @@ -22,9 +22,10 @@ from Globals import Persistent, package_ from Acquisition import Implicit from Products.ZCatalog.CatalogPathAwareness import CatalogAware - from groups import manage_addGroupFolder +from Products.ECHO_content.ECHO_helpers import unicodify + refBasis="http://vlp.mpiwg-berlin.mpg.de/references?id=%s" basketMetatypes=['BasketXRef','BasketInternalLink','BasketExternalLink','BasketText','BasketFile'] @@ -141,9 +142,11 @@ class BasketBasis(OrderedFolder): def getOwner(self): """get Owner as string""" - return self.owner + return unicodify(self.owner) - + def getTitle(self): + """get title""" + return unicodify(self.title) def getActualUserName(self): """get username of actual user""" @@ -151,11 +154,13 @@ class BasketBasis(OrderedFolder): def getObjects(self): """"get objects""" - return [getattr(self,x['id']) for x in self._objects] + return self.objectValues() + #return [getattr(self,x['id']) for x in self._objects] def numberOfObjects(self): """anzahl der elemente im basket""" return len(self._objects) + class BasketFolder(BasketBasis): """Folder for Baskets""" @@ -177,9 +182,7 @@ class BasketFolder(BasketBasis): elif mode=='open_intern': print "open_intern" if self.checkPermission('authorized'): - print "---public" for object in self.getObjects(): - print object.getId(),object.publicationStatus if object.publicationStatus=='open_intern' or object.publicationStatus=='open': ret.append(object) return ret @@ -212,8 +215,8 @@ class BasketFolder(BasketBasis): #check if user has right for other modi if hasattr(self,"BasketFolder_template"): - obj=getattr(self,"BaskeFolder_template") - return obj() + obj=getattr(self,"BasketFolder_template") + return obj(mode=mode) else: pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','BasketFolder_template_standard.zpt')).__of__(self) pt.content_type="text/html" @@ -306,13 +309,14 @@ class Basket(BasketBasis): def getBasketObjects(self): """get all basket objects""" - - objs=self.getObjects() - ret=[] - for x in objs: - if x.meta_type in basketMetatypes: - ret.append(x) - return ret +# objs=self.getObjects() +# ret=[] +# for x in objs: +# if x.meta_type in basketMetatypes: +# ret.append(x) +# return ret + return self.objectValues(basketMetatypes) + def checkRef(self,xref): """check if XRef is already in Basket""" @@ -341,11 +345,16 @@ class Basket(BasketBasis): self.publicationStatus=publicationStatus self.shortDescription=shortDescription + + def getComment(self): + """get the comment""" + return unicodify(self.title) - - def getTitle(self): - """print name""" - return self.title + + def getShortDescription(self): + """get the short description""" + return unicodify(self.shortDescription) + security.declareProtected('Manage','changeBasketForm') def changeBasketForm(self): @@ -506,6 +515,15 @@ class BasketObject(SimpleItem): self.id=id self.title=title self.comment=comment + + def getTitle(self): + """get the title""" + return unicodify(self.title) + + def getComment(self): + """get the comment""" + return unicodify(self.comment) + def changeBasketBasisForm(self): """form for changing the basket""" @@ -554,13 +572,19 @@ class BasketFile(BasketObject,File): def download(self): """download the file""" + self.REQUEST.RESPONSE.setHeader("Content-Disposition","""attachement; filename=%s"""%self.title) self.REQUEST.RESPONSE.setHeader("Content-Type","application/octet-stream") self.content_type="application/octet-stream" - self.REQUEST.RESPONSE.write(self.data) - - + try: + self.REQUEST.RESPONSE.write(self.data) + except: + try: + self.REQUEST.RESPONSE.write(str(self.data)) + except: + self.REQUEST.RESPONSE.write(repr(self.data)) + def upDateFile(self,fileUpload=None,comment=None,title="",REQUEST=None): """update file""" @@ -732,6 +756,10 @@ class BasketExternalLink(BasketObject): manage_options=BasketObject.manage_options+( {'label':'manage internal link','action':'changeBasketExternalLinkForm'}, ) + + def getLinkText(self): + """get the link text""" + return unicodify(self.linkText) def changeBasketExternalLinkForm(self): """form for changing the basket""" @@ -797,14 +825,9 @@ def manage_addBasketTextForm(self): def manage_addBasketText(self,id,title,comment,RESPONSE=None): """add a basketXRef object""" - newObj=BasketText(id,title,comment) self._setObject(id,newObj) if RESPONSE is not None: RESPONSE.redirect('manage_main') - - - - \ No newline at end of file